| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> ios 编译链接库问题 -> 正文阅读 |
|
[移动开发]ios 编译链接库问题 |
一、场景 最近在集成数据库sqlite开发,在集成的过程中,需要加入库文件支持libsqlite3,? 在添加这个库的时候也遇到过一个坑: 在usr/lib 目录下: ? ? 千万不要被上面那个3.0.dylib 的快捷方式给欺骗了,切记切记,不然链接的时候各种报错。 在集成完之后,直接真机调试功能正常。忽然有一天,用了一下archive 打包ipa ,出现如下问题: ? ? ? /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2122:in `GetMachOImagesFromOToolInfoForFile' 二、问题分析 日志中并未看到明显的提示错误原因,只知道ipatool 在执行的时候失败了。于是就又在网上查找解决方案,搜索到的有的说是ios13之后不支持 32位打包之类的,需要删除某些模拟器等等,但是我这边看到的日志没有提到和那个相关的于是放弃这个思路。 不过总是觉得肯定和引入的这个sqlite库有关系,忽然有一天,不知怎地,突发奇想,改了一下xcode中对这个库的embed 方式,之前添加的时候是默认,也没在意是哪个,于是随手已改,改成了Do not Embed 状态,然后尝试了一把,居然可以了。 于是又来学习了下ios 编译链接库的知识,之前其实看过一篇介绍: xcode 上面选择编译库有三种方式: Do not embeded 不嵌入, embed 嵌入, embed & sign 嵌入并且签名。 .framework 既可能是静态库,也可能是动态库。 判断方法,使用file 命令: file GTSDK.framework/GTSDK current ar archive 静态库 GTSDK.framework/GTSDK: Mach-O universal binary with 4 architectures: [arm_v7:current ar archive] [i386] [x86_64] [arm64] GTSDK.framework/GTSDK (for architecture armv7): current ar archive GTSDK.framework/GTSDK (for architecture i386): current ar archive GTSDK.framework/GTSDK (for architecture x86_64): current ar archive GTSDK.framework/GTSDK (for architecture arm64): current ar archive Mach-O dynamically? 动态库 file HikVideoPlayer.framework/HikVideoPlayer? HikVideoPlayer.framework/HikVideoPlayer: Mach-O universal binary with 2 architectures: [arm_v7:Mach-O dynamically linked shared library arm_v7] [arm64] HikVideoPlayer.framework/HikVideoPlayer (for architecture armv7): Mach-O dynamically linked shared library arm_v7 HikVideoPlayer.framework/HikVideoPlayer (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64 sign 签名只用于动态库 codesign -dv HikVideoPlayer.framework/ HikVideoPlayer.framework/: code object is not signed at all 所以对于这个动态库,需要配置 embed & sign 模式 ? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 20:22:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |