mbm*_*414 10 xcode static objective-c ios
我正在努力创建一个我希望销售的iOS静态库.我已经完成了初始构建的步骤并生成了.a/.h输出.
当我将这些文件包含在一个单独的项目中时,我看不到任何方法来浏览.a文件中的内容.
但是,当我的库中的一行代码崩溃应用程序时(就像我说的那样,它仍处于开发阶段),调试器向我显示整个类(.m)文件.怎么了?
我真的不明白静态库的内容是什么,我不确定我是否为模拟器和设备编译了该版本.这可能与它有关吗?如果是这样,有人可以解释原因吗?
谢谢!!!
ben*_*ado 18
别担心,您的源代码不包含在存档(.a)文件中.
Xcode非常智能,可以根据文件中嵌入的调试信息在您的计算机上查找源代码文件.如果使用"Release"配置构建库(或以其他方式修改构建设置以便剥离调试符号)并且在计算机上的任何位置都没有源,则开发人员将不得不求助于他们对x86或ARM的了解汇编以确定代码的工作方式.
顺便说说:
由于在运行时处理了大量的Objective-C,因此在库中可以看到许多类名和选择器名.这就是它的工作原理.您可以尝试对其进行模糊处理,但我认为您花时间编写更有用的代码来进行销售.
如果你想为人们提供一个用于iOS开发的静态库,你需要为iOS模拟器(x86)和iOS设备(arm)构建版本,然后使用lipo它们将它们组合成一个胖的静态库.以不同的方式搜索"lipo xcode fat static library".有些解决方案比其他解决方案更复杂.
我遇到过同样的问题。@benzado 关于他提到的内容是正确的。但我不得不剥离调试符号来解决这个问题。为此,我必须在构建之前更改项目库的构建设置,如下所述。
选择您的目标并转到Build Settings。放
要了解它们的用途,请参阅Apple 构建设置参考
并使用“发布”配置构建库。这对我有用。
| 归档时间: |
|
| 查看次数: |
3857 次 |
| 最近记录: |