加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Cocoa Touch Framework无法在嵌入式项目中的模拟器上进行

发布时间:2020-12-15 01:54:50 所属栏目:百科 来源:网络整理
导读:我有一个可以用XCode 6构建的Cocoa Touch框架,针对iOS = iOS8。 这个框架的目标架构设置是默认的,这意味着我没有改变任何东西。 架构设置为标准(不包括x86_64,稍后更多)。 框架本身包含Swift和Objective-C代码,因此使用Ray Wenderlich的静态库解决方法构
我有一个可以用XCode 6构建的Cocoa Touch框架,针对iOS> = iOS8。
这个框架的目标架构设置是默认的,这意味着我没有改变任何东西。
架构设置为标准(不包括x86_64,稍后更多)。
框架本身包含Swift和Objective-C代码,因此使用Ray Wenderlich的静态库解决方法构建它将不起作用。

现在,如果我创建一个新项目并添加框架项目,该项目将为设备和模拟器构建,这是很好的。

但是,如果我把.framework文件添加到不同的项目中,就像添加任何其他框架一样,该项目不会为模拟器构建。那么它确实构建,但是它因为找不到相关类而崩溃。它在设备上工作正常,归档工作也如预期一样。

框架项目本身已经给了我一个警告;
“Apple Mach-O链接器警告 – 找不到选项….(Debug-ophoneos)”目录。

任何帮助将高度赞赏!

解决方法

我终于找到了解决这个问题的办法。
事实证明,XCode不再创建开箱即用的胖二进制文件。不知道苹果在这个背后的推理可能是什么,我也好像有时候,负责XCode的人喜欢让开发者使用他们的产品的乐趣…

无论如何,您可以找到关于如何为模拟器和所有iOS设备创建胖二进制文件的确定性指南(是的,您甚至必须使用不同的架构来获得适用于较新和旧设备的框架):https://kodmunki.wordpress.com/2015/03/04/cocoa-touch-frameworks-for-ios8-remix/

简而言之;

>创建可可触摸框架
>将架构设置为arm64,armv7和armv7s
>将“构建活动架构”设置为“否”
>将“有效架构”设置为arm64,armv1和armv7s
>将以下脚本添加到框架的构建方案作为归档后期操作;

设置

DEVICE_BIN = “$ {} OBJROOT / UninstalledProducts / $ {} TARGET_NAME .framework”
SIMULATOR_BIN =“$ {SYMROOT} /../../../../产品/ Debug- iphonesimulator / $ {TARGET_NAME} .framework”

ARCHIVE_PATH = “$ {} SRCROOT / _归档”
rm -rf“$ {ARCHIVE_PATH}”
mkdir“$ {ARCHIVE_PATH}”

if [“$ {CONFIGURATION}”=“Release”];然后

如果[-d“$ {DEVICE_BIN}”];然后
DEVICE_PATH = “$ {} ARCHIVE_PATH /释放”
mkdir“$ {DEVICE_PATH}”
cp -r“$ {DEVICE_BIN}”“$ {DEVICE_PATH}”
科幻
如果[-d“$ {SIMULATOR_BIN}”];然后
SIMULATOR_PATH = “$ {} ARCHIVE_PATH /调试”
mkdir“$ {SIMULATOR_PATH}”
cp -r“$ {DEVICE_BIN}”“$ {SIMULATOR_PATH}”
“{DEVICE_BIN} / $ {TARGET_NAME}”“$ {SIMULATOR_BIN} / $ {TARGET_NAME}” – 输出“$ {SIMULATOR_PATH} / $ {TARGET_NAME}”.framework / $ {TARGET_NAME}“

科幻

科幻

退出0;

这将在您的项目目录中创建一个_Archive目录,您可以在其中找到调试和发布的框架。

重要提示:截至今天(2015年5月22日),您必须先使用模拟器构建项目,然后使用设备进行归档。否则你不会得到一个通用的二进制文件!

为了避免死链接错误,为了避免死链接错误,为了避免死链接错误,请务必仔细阅读kodmunki网站上发布的步骤,因为这篇文章中的步骤可能已经过时了!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读