自定义框架总是包含在嵌入式系统中吗?

3

自定义框架始终包含在嵌入式部分,还有其他方法吗?

1个回答

4

您必须嵌入动态框架,因为它们基于共享库,而共享库是在运行时加载的。您可以创建一个包含静态库的静态框架。静态库在构建时链接,因此不必将其嵌入到您的应用程序中。


有没有办法在运行时加载动态框架? - Mitesh Patel
是的,您可以使用NSBundle或者更底层的dlopen(3)来加载动态框架。在iOS设备上,动态库必须经过代码签名。 - clemens
我在提交应用到应用商店时遇到以下错误:
  1. 错误 ITMS-90087: “不支持的架构。sample.app/Frameworks/customFramework.framework 的可执行文件包含不支持的架构 '[x86_64,i386]'。”
  2. 错误 ITMS-90209: “无效的段对齐。
  3. 错误 ITMS-90125: “二进制文件无效。
  4. 警告 ITMS-90080: “可执行文件 'Payload/sample.app/Frameworks/customFramework.framework' 不是位置无关可执行文件。”
- Mitesh Patel
1
动态链接需要位置无关代码(PIC),简单来说,这意味着地址是相对的而不是绝对的。您可以使用编译器开关“-fpic”和“-fPIC”来控制此功能。第一个错误意味着您已经包含了模拟器的框架二进制文件。您应该发送仅包含ARM代码的二进制文件。为什么不使用标准Xcode目标创建框架二进制文件呢? - clemens
非常感谢macmoonshine。 - Mitesh Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接