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

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

概述我有外部封闭的库,只能用armv7s(等)编译.当我尝试编译模拟器时,显然它没有运行并显示一些错误. 我不想将此库插入到我的代码中,除非我可以将 Xcode配置为仅在我使用设备进行测试时才使用此库. 不幸的是,我试图用cocoapods做这个没有成功,我想知道有没有办法做到这一点? 是的,这可以做到.我有一个类似的问题,框架只在模拟器中导致链接器错误,所以我设置我的项目只在构建设备时使用框架. 以 我有外部封闭的库,只能用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
总结

以上是内存溢出为你收集整理的ios – 是否可以仅在使用设备而非模拟器进行测试时使用静态库?全部内容,希望文章能够帮你解决ios – 是否可以仅在使用设备而非模拟器进行测试时使用静态库?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1096697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存