iOS 应用企业部署:库的配置文件

Posted

技术标签:

【中文标题】iOS 应用企业部署:库的配置文件【英文标题】:iOS App Enterprise Deployment: Provisioning Profile for Libraries 【发布时间】:2015-08-20 12:11:29 【问题描述】:

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

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

从 Debugger 启动时应用运行良好,但在通过移动设备管理签名和部署后启动后立即崩溃。 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

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

我们怀疑这可能是签名问题。归档产品并导出(“保存为企业部署”)后,我们注意到没有为所述库选择配置文件(见下面的屏幕截图)

长话短说,问题是: iOS 应用程序中的库是否必须具有 Provisioning Profile?如果是这样,我该如何分配?

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

    确保在 Build Settings 中将 Runpath Search Paths 设置为 @executable_path/Frameworks 确保在构建阶段将您的框架置于嵌入框架之下。 在 Link Binary With Libraries 下添加您的框架。

如果您的框架是在同一个项目下开发的,请确保您在 Build Phases 下的 Copy File 下拥有它。

【讨论】:

嗨,亚历克斯,感谢您的贡献。您的所有建议都已实施,但同样的错误仍然存​​在。你知道框架通常是否有自己的配置文件吗?我对应用程序本身和共享扩展有不同的配置文件,但没有框架文件的配置文件(参见原始问题中的屏幕截图)。我不确定这是否是个问题。

以上是关于iOS 应用企业部署:库的配置文件的主要内容,如果未能解决你的问题,请参考以下文章

即将到期的配置文件 - 企业部署

删除 iOS 配置文件时会发生啥

ios 企业:配置文件和证书到期 - 应用程序何时停止工作?

iOS - 验证私有应用商店的企业配置文件

使用持续时间超过 1 年的配置文件部署 iOS 应用程序 [重复]

iOS 配置文件(内部)企业