IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2208:in `MakeFileSystemNode'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2236:in `block in MakeFileSystemNode'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2235:in `each'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2235:in `MakeFileSystemNode'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2236:in `block in MakeFileSystemNode'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2235:in `each'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2235:in `MakeFileSystemNode'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1871:in `initialize'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2957:in `new'
/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2957:in `ProcessIPA'
/Applications/Xcode.app/Conte
2022-04-01 02:18:18 +0000 ?nts/Developer/usr/bin/ipatool:3928:in `<main>'
Removing temporary directory /var/folders/f6/cf9jzw8s6lb440mfc4k6dpwc0000gn/T/ipatool20220401-53994-3xigot...
$ rm -r /var/folders/f6/cf9jzw8s6lb440mfc4k6dpwc0000gn/T/ipatool20220401-53994-3xigot
2022-04-01 02:18:18 +0000 ?/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool exited with 1
2022-04-01 02:18:18 +0000 ?ipatool JSON: {

二、问题分析

日志中并未看到明显的提示错误原因,只知道ipatool 在执行的时候失败了。于是就又在网上查找解决方案,搜索到的有的说是ios13之后不支持 32位打包之类的,需要删除某些模拟器等等,但是我这边看到的日志没有提到和那个相关的于是放弃这个思路。

不过总是觉得肯定和引入的这个sqlite库有关系,忽然有一天,不知怎地,突发奇想,改了一下xcode中对这个库的embed 方式,之前添加的时候是默认,也没在意是哪个,于是随手已改,改成了Do not Embed 状态,然后尝试了一把,居然可以了。

于是又来学习了下ios 编译链接库的知识,之前其实看过一篇介绍:

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
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:22:54  更:2022-04-04 12:26:14 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码