ios – 是否可以仅在使用设备而非模拟器进行测试时使用静态库?

前端之家收集整理的这篇文章主要介绍了ios – 是否可以仅在使用设备而非模拟器进行测试时使用静态库?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有外部封闭的库,只能用armv7s(等)编译.当我尝试编译模拟器时,显然它没有运行并显示一些错误.
我不想将此库插入到我的代码中,除非我可以将 Xcode配置为仅在我使用设备进行测试时才使用此库.
不幸的是,我试图用cocoapods做这个没有成功,我想知道有没有办法做到这一点?

解决方法

是的,这可以做到.我有一个类似的问题,框架只在模拟器中导致链接错误,所以我设置我的项目只在构建设备时使用框架.

以下假设您没有使用可可豆荚链接库.如果你是的话,我不确定需要改变什么.

>选择目标并转到“构建阶段”选项卡.
>在“使用库链接二进制”部分下,从列表中删除静态库.
>转到“构建设置”选项卡.
>找到“其他链接器标志”设置.
>双击Debug值.点击并输入-lsomelibrary
>代替“somelibrary”输入库的实际名称减去前导“lib”.不要包含扩展名.
>选择Debug值并注意一点圈出.点击 .
>单击新的“任何架构|任何SDK”部分并将其更改为“任何iOS模拟器SDK”.
>现在双击“Any iOS Simulator SDK”右侧的值并删除添加的-lsomelibrary条目.

现在做一个调试版本.

上述更改基本上意味着除了iOS模拟器构建之外,所有构建都链接了库.

您可能还需要进行一些代码更改.任何对库中的头文件或其他符号的引用的代码都应该包装如下:

#if !TARGET_IPHONE_SIMULATOR
#import "somelibrary.h"
#endif

#if !TARGET_IPHONE_SIMULATOR
    // Use stuff from the library
#endif
原文链接:https://www.f2er.com/iOS/329870.html

猜你在找的iOS相关文章