XCODE IOS 静态链接库替换升级
XCODE 版本15.2.
一个很久需求没更新的IOS 应用,近来有新需求要开发。 拉下代码运行,出现了个BAD_ACCESS错误。出错的位置位于一个调用的第三方的.a静态库内部。因为调用代码并没有修改,很容易想到可能XCODE相关升级,导致的问题。
由于是第三方的一个.a动态库,兼容问题,优先考虑去升级下这个第三方库的最新版本。 Down 下来最新的版本的第三方库,比较了下大小,果然有更新,接下来就是如何更新这些静态库文集。
这个出问题的第三方SDK 静态库,有40多个.a文件。 项目本身也还集成了其他的第三方.a文件。也有几十个。替换起来还是比较麻烦且带坑的,记录备忘下。
1. 从Finder文件系统中将旧第三方的.a文件全部删除。所以最好提前给每个第三方sdk划分独立目录。
2.从Targets 属性 的 “General”标签页下方的 “Frameworks,Libraries,and Embedded Content” 中,删除灰色的项。(灰色表示引用文件在文件系统中不存在)
3.文件系统中将新的SDK 静态库文件,复制入文件夹。
4.从Target 属性的 “Build Phases” 标签页中的 “Link Binary WIth Libraries”中,点击“”,选择添加Files,多选第3步文件夹中的全部依赖库文件点加入。
5.重新编译。
坑:注意第4步,不要通过“General”标签页下方的 “Frameworks,Libraries,and Embedded Content” 分栏添加依赖的静态库,理论上应该是等效的,但似乎Xcode 存在bug。 我第一次全选批量添加时,链接阶段找不到符号,检查确实没有将全选文件添加全。重新全选添加一次后,能够正常链接,执行阶段仍然BAC_ACCESS错误,与替换.a库文件前相同,且会存在某些链接库重复被忽略的警告。通过 “Build Phases” 则一次成功,运行正常。
XCODE IOS 静态链接库替换升级的更多相关文章
- App开发流程之数据持久化和编译静态链接库
先记录数据持久化. iOS客户端提供的常用数据持久化方案:NSUserDefaults代表的用户设置,NSKeydArchiver代表的归档,plist文件存储,SQLite数据库(包括上层使用的Co ...
- GCC 编译使用动态链接库和静态链接库
1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有 ...
- GCC 编译使用动态链接库和静态链接库的方法
1 库的分类 依据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的.所以生成的可执行文件就不受库的影响了.即使库被删除了,程序依旧能够成功执行. 有别于静态库,动态库的链接是在程 ...
- 【转】gcc 编译使用动态链接库和静态链接库
1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有 ...
- [转载]GCC 编译使用动态链接库和静态链接库--及先后顺序----及环境变量设置总结
来自http://blog.csdn.net/benpaobagzb/article/details/51364005 GCC 编译使用动态链接库和静态链接库 1 库的分类 根据链接时期的不同,库又有 ...
- linux动态链接库和静态链接库
Linux下静态链接库与动态链接库的区别 引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的.所有相关的对象文件 (object file)与牵涉到的函数库(librar ...
- vc下的静态链接库与动态链接库(一)
一.静态库与动态库的区别 目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Lib ...
- C/C++ 静态链接库(.a) 与 动态链接库(.so)
平时我们写程序都必须 include 很多头文件,因为可以避免重复造轮子,软件大厦可不是单靠一个人就能完成的.但是你是否知道引用的那些头文件中的函数是怎么被执行的呢?这就要牵扯到链接库了! 库有两种, ...
- Linux下动态链接库和静态链接库
第一部分:编译过程 先了解一下linux下C代码的编译过程,C代码的编译,一般分成四个阶段,包括:预编译,编译,汇编和链接,这四个阶段的分工是 预处理过程,负责头文件展开,宏替换,条件编译的选择,删除 ...
- 动态链接库dll,静态链接库lib, 导入库lib
转载地址:http://www.cnblogs.com/chio/archive/2008/08/05/1261296.html 目前以lib后缀的库有两种,一种为静态链接库(Static Libar ...
随机推荐
- 解读顶会CIKM'21 Historical Inertia论文
摘要:本文(Historical Inertia: An Ignored but Powerful Baseline for Long Sequence Time-series Forecasting ...
- 实践GoF的23的设计模式:SOLID原则(下)
摘要:本文将讲述SOLID原则中的接口隔离原则和依赖倒置原则. 本文分享自华为云社区<实践GoF的23的设计模式:SOLID原则(下)>,作者:元闰子. 在<实践GoF的23种设计 ...
- 云原生时代,领域驱动设计思想(DDD)如何落地?
摘要:随着数字化世界的持续演进,软件架构设计思想在碰撞中不断优化.云原生时代的到来,加速了行业对于领域驱动设计理念(Domain-Driven Design)的实践落地诉求. 本文分享自华为云社区&l ...
- LAS Spark+云原生:数据分析全新解决方案
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着数据规模的迅速增长和数据处理需求的不断演进,云原生架构和湖仓分析成为了现代数据处理的重要趋势.在这个数字化时代 ...
- 字节跳动开源数据集成引擎 BitSail 的演进历程与能力解析
导读 BitSail 是字节跳动开源数据集成引擎,支持多种异构数据源间的数据同步,并提供离线.实时.全量.增量场景下全域数据集成解决方案,目前支撑了字节内部和火山引擎多个客户的数据集成需求.经过字节跳 ...
- A/B测试助力游戏业务增长
更多技术交流.求职机会.试用福利,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 中国游戏行业发展现状及挑战 国内市场增长乏力 2021年游戏销售收入2965.13亿元,同比增长6.4% ...
- JQuery 修改用户信息
JQuery 修改用户信息,多项选择,赋值,框架: https://www.h-ui.net/v3.shtml $(data.data.roleList).each(function (i, val) ...
- PPT 商务报告:如何建立专属PPT素材库
PPT 商务报告:如何建立专属PPT素材库 为什么建立素材库? 省事:直接套用 应对紧急环境:无网络情况下,无法搜索 提升设计思路:帮助提升思路 通用型素材库 企业型素材库 模板 灵感网站 使用场景 ...
- 利用GetPrivateProfileString相关函数读取配置文件(.ini)
配置文件中经常用到ini文件,在VC中其函数分别为: 写入.ini文件: bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyN ...
- HDU - 1711:Number Sequence (KMP模板)
原题链接 KMP模板:AC,858ms,13112KB内存 消耗太大了 #include<bits/stdc++.h> using namespace std; using namespa ...