将AppStore.ipa重新签名到企业内部崩溃



在我的项目中,我们使用Apple Developer帐户中的AppStore证书创建了一个.ipa。此外,我们的客户希望我们使用他们的企业内部证书和苹果企业账户中的配置文件重新签署.ipa,以便他们能够在内部分发应用程序。然而,在没有显示任何错误的情况下将.ipa安装到设备中后,应用程序会启动,但会立即崩溃。我能够获得以下日志:

的引导失败,错误为:错误域=BKSProcessErrorDomain代码=1"无法使用bundleID com.xxxx.xxxx.xxxx引导进程"用户信息={NSLocalizedDescription=无法使用bundle ID com.xxxx.xxxx.xxxx引导进程,BKSProcessExitReason=0,NSLocalizedFailureReason=无法启动作业,NSUnderlyingError=0x282068ff0{错误域=NSPOSIXErrorDomain Code=3"没有这样的进程"UserInfo={BKLaunchdOperation=launch_get_running_pid_4SB,NSLocalizedDescription=无法获取标签UIKitApplication.com.xxxx.xxxx[0x33f][62]的pid,BKLaunchdJobLabel=UIKitApplication.com.cn.xxxx.xxx.xxxx[0x333f][62%,NSLocalizedFailureReason=没有这样的过程}},BKSProcessJobLabel=UIKitApplication.com.com.xxxx.xxxx.xxx[0x33f][62],BSErrorCodeDescription=引导失败}

我已经仔细检查了证书和配置文件的到期日期,并且相信它们被设置为Use System Defaults,而且两者看起来也匹配。此外,我正在更新Info.plist文件中的捆绑包标识符,并更新Entitlements.plist。对于代码签名,我已经使用了像iResignEasyResign这样的工具,以及这里描述的手动过程。

你知道问题出在哪里吗?

更新:在用客户的企业内部证书重新签名之前,我用Development证书而不是AppStore证书(如下所示(构建了初始的.ipa,从而解决了这个问题。问题似乎是,苹果在某种程度上对AppStore签名的应用程序的二进制文件进行了封装,使得当我们重新签名时,并不是所有的应用程序都完全重新签名。因此,根据我所了解到的情况,当需要重新签名时,当客户没有向我们提供Apple帐户,而只提供捆绑包标识符、证书和配置文件时,我建议我们使用Development或Ad Hoc(未经测试,但可能也有效(证书对.ipa进行代码签名。

如果您拥有企业证书…为什么不首先使用它构建应用程序?

如果你没有:我的经验是,最好使用与所需捆绑包标识符匹配的开发人员证书来构建应用程序,然后重新签名。

更新:我能够通过使用Development证书而不是AppStore证书(如下所示(构建初始.ipa来解决问题,然后使用客户的Enterprise In-House证书重新签名。问题似乎是,苹果在某种程度上对AppStore签名的应用程序的二进制文件进行了封装,使得当我们重新签名时,并不是所有的应用程序都完全重新签名。因此,从我所了解到的情况来看,当需要重新签名时,当客户没有向我们提供Apple帐户,而只提供捆绑包标识符、证书和配置文件时,我建议我们使用Development或Ad Hoc(未经测试,但可能也有效(证书对.ipa进行代码签名。

最新更新