iOS App Enterprise 部署:库的配置文件

iOS App Enterprise Deployment: Provisioning Profile for Libraries

我们目前正尝试在架构发生一些变化后通过移动设备管理部署新版本的 iOS 企业应用程序。

同一个应用程序在过去已成功部署了几次,但我们最近向该应用程序添加了一个库(以便在不同的地方重用我们的一些代码)。

应用程序从调试器启动时运行良好,但通过移动设备管理签名和部署后立即崩溃。 iOS Crashlog 显示我们添加的库确实存在但未加载。

错误信息如下:

Dyld Error Message:
Library not loaded: @rpath/MYAPPLib.framework/MYAPPLib
Referenced from: /private/var/mobile/Containers/Bundle/Application/XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/MYAPP_iOS.app/MYAPP_iOS
Reason: no suitable image found.  Did find:

/private/var/mobile/Containers/Bundle/Application/XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/MYAPP_iOS.app/Frameworks/MYAPPLib.framework/MYAPPLib: mmap() error 1 at address=0xXXXXXXXX, size=0xXXXXXXXX segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/MYAPP_iOS.app/Frameworks/MYAPPLib.framework/MYAPPLib

(包标识符和应用程序名称已更改)

我们怀疑这可能是签名问题。归档产品并导出 ("Save for Enterprise Deployment") 后,我们注意到没有为所述库选择配置文件(见下面的屏幕截图)

长话短说,问题是: iOS 应用程序中的库是否有必要拥有配置文件?如果可以,我该如何分配一个?

从控制台看来,应用程序没有找到框架文件。

  1. 确保在构建设置中将运行路径搜索路径设置为 @executable_path/Frameworks
  2. 确保在构建阶段将您的框架置于嵌入框架下。
  3. 在 Link Binary With Libraries 下添加您的框架。

如果您的框架是在同一个项目下开发的,请确保您在构建阶段下的复制文件下拥有它。

好的,所以我们仍然不确定到底是什么问题。但我们可以说,通过颁发新的开发人员证书,错误已解决。所以如果你遇到同样的问题,也许你也想试试这个。