微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/iOS/329870.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐