自定义框架未加载dyld:库未加载:@rpath/Custom.framework /

naz*_*naz 4 frameworks rpath dyld ios

我有一个带有几个自定义动态框架的应用程序,这意味着我在Xcode 6.2上使用iOS 8作为SDK.我的Mac在Yosemite上.框架具有Swift源和资源.

该应用程序是分布式企业,因此我只需创建一个IPA并通过用户可以下载和安装应用程序的网页进行内部分发.

该应用程序在iPhone 5(iOS 8.1.2),iPod Touch(iOS 8.2)和模拟器上安装并运行,但不适用于iPhone 6(iOS 8.1.2).错误始终是dyld:未加载库:@ rpath/Custom.framework /.每当我删除并添加框架以尝试修复它时,另一个框架会弹出,因为iPhone 6上没有加载.(为什么!!!)

设置如下:

  • @ executable_path /框架
  • 嵌入式内容包含Swift代码 - 是的
  • 嵌入式二进制文件中的框架
  • 嵌入式框架
  • 链接二进制文件库

是什么导致了这些问题,我该怎么做才能确保应用程序在所有设备和iOS 8版本上一致运行.

我发现的大多数解决方案都是试错建议.

naz*_*naz 7

在我阅读有关架构之前,我并没有停止找出问题的原因.所以它促使我在连接iPhone 6的同时构建框架.我创建了一个包含所有默认值的项目.添加了几个框架,包括Alamofire.在iPhone 6连接时构建它们.生成存档并部署和安装OTA.安装应用程序后,它运行没有问题.

我试图通过构建我的iPod(MD717ZP/A)来确认它.我不确定这是否是第五代.首先我清空派生数据文件夹,清除所有项目,包括框架.构建并部署应用程序.安装在正在运行的iPod上.我把它安装在iPhone 6上,它立即崩溃了.

我一遍又一遍地尝试了同样的过程.针对iPhone 6构建,然后在两者上安装iPod.结果刚刚确认我需要在iPhone 6上构建它,以便应用程序可以在该设备上运行并降低.

请记住,我只是将框架添加到"嵌入式二进制文件"(目标>常规>嵌入式二进制文件),然后在iPhone 6上构建,以使其工作.这可能意味着,如果您希望在某些架构要求下在所有设备上运行,则需要使用最新的设备.

更新: 除了上述知识,您可能还需要检查" 构建设置"选项卡中的" 仅构建活动体系结构 "部分.这意味着如果设置为YES,它将基于连接的硬件构建,否则它将为您支持的体系结构构建,如Valid Architectures.