【发布时间】:2020-06-16 09:19:15
【问题描述】:
在我的项目中,我们使用来自 Apple 开发者帐户的 AppStore 证书创建了一个.ipa。此外,我们的客户希望我们使用他们的企业内部证书和他们 Apple 企业帐户中的配置文件重新签署 .ipa,以便他们能够在内部分发应用程序。
但是,在没有显示任何错误的设备中安装.ipa 后,应用程序启动但立即崩溃。我能够得到以下日志:
引导失败并出现错误:错误域=BKSProcessErrorDomain Code=1“无法使用 bundleID com.com.xxxx.xxxx.xxxx 引导进程”UserInfo={NSLocalizedDescription=无法使用 bundleID com.com.xxxx 引导进程。 xxxx.xxxx, BKSProcessExitReason=0, NSLocalizedFailureReason=启动作业失败,NSUnderlyingError=0x282068ff0 {错误域=NSPOSIXErrorDomain Code=3“没有这样的进程”UserInfo={BKLaunchdOperation=launch_get_running_pid_4SB, NSLocalizedDescription=无法获取标签 UIKitApplication:com 的 pid。 xxxx.xxxx.xxxx[0x333f][62], BKLaunchdJobLabel=UIKitApplication:com.com.xxxx.xxxx.xxxx[0x333f][62], NSLocalizedFailureReason=没有这样的进程}}, BKSProcessJobLabel=UIKitApplication:com.com.xxxx。 xxxx.xxxx[0x333f][62], BSErrorCodeDescription=bootstrap-failed}
我已经仔细检查了证书和配置文件的到期日期,同样信任它们被设置为Use System Defaults,并且两者看起来也相互匹配。此外,我正在更新 Info.plist 文件中的捆绑标识符并更新 Entitlements.plist 。
对于代码签名,我已经使用了iResign 或EasyResign 等工具,以及here 描述的手动过程。
知道可能是什么问题吗?
更新:我能够通过使用开发证书而不是 AppStore 证书(如@below 建议的那样)构建初始 .ipa 来解决问题,然后再使用客户的 Enterprise In-House 重新签名证书。问题似乎是 Apple 在某种程度上加密了 AppStore 签名应用程序的二进制文件,使得当我们重新签名时,并非所有应用程序都被完全重新签名。因此,据我所知,当需要重新签名并且客户没有向我们提供 Apple 帐户而只向我们提供捆绑标识符、证书和配置文件时,我建议在我们这边对 .ipa 进行代码签名开发或 Ad-Hoc(未经测试,但可能也适用)证书。
【问题讨论】:
标签: ios code-signing ipa codesign