无法将企业应用安装到未注册UUID的设备上

我创build了一个通用的应用。 我正尝试使用我们的企业开发人员许可分发应用程序。

问题是这样的:如果我在安装了UUID注册的设备上的应用程序,安装正常。 如果我“尝试”将应用程序安装在没有注册UUID的设备上,安装将无法完成。 我收到消息“无法下载应用程序”“我的应用程序”目前无法安装。

这是我得到的日志:

Sep 5 10:47:07 my-iPad installd[54] <Error>: 0x2c3000 handle_install: Install of "/var/mobile/Media/PublicStaging/My App.app" requested by mobile_installation_proxy Sep 5 10:47:08 my-iPad installd[54] <Error>: 0x2c3000 MobileInstallationInstall_Server: Installing app com.mysite.My-App Sep 5 10:47:08 my-iPad installd[54] <Error>: profile not valid: 0xe8008012 Sep 5 10:47:08 my-iPad installd[54] <Error>: 0x2c3000 install_embedded_profile: Could not install embedded profile: 0xe8008012 Sep 5 10:47:08 my-iPad installd[54] <Error>: Sep 5 10:47:08 SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Sep 5 10:47:09 my-iPad installd[54] <Error>: 0x2c3000 verify_signer_identity: MISValidateSignatureAndCopyInfo failed for /var/tmp/install_staging.xjOLHU/My Appp.app/My App: 0xe8008015 Sep 5 10:47:09 my-iPad installd[54] <Error>: 0x2c3000 do_preflight_verification: Could not verify executable at /var/tmp/install_staging.xjOLHU/My App.app Sep 5 10:47:09 my-iPad installd[54] <Error>: 0x2c3000 install_application: Could not preflight application install Sep 5 10:47:09 my-iPad mobile_installation_proxy[907] <Error>: 0x3cadbb78 MobileInstallationInstall: failed with -1 Sep 5 10:47:09 my-iPad mobile_installation_proxy[907] <Error>: handle_install: Installation failed Sep 5 10:47:10 mu-iPad installd[54] <Error>: 0x2c3000 handle_install: API failed 

我已经完成了通常的故障排除:

  • 创build新的证书,确保我有一个内部分配证书
  • 创build新的分配configuration文件
  • 确保.ipa正在使用distibution / adhocconfiguration文件进行签名
  • validation我的.plist是正确的
  • 安装使用简单的网页(同样的问题)
  • 使用iPhoneconfiguration实用程序安装(同样的问题)
  • 大约一百万其他更深奥的build筑MODS基于其他人的经验等等…等等…

我很确定这个问题是分配configuration文件。 错误日志似乎指向configuration文件的问题(“configuration文件无效:0xe800812”)。 我已经与苹果的支持交谈,他们说,证书和configuration文件似乎是正确的。

我的一个支持电话让我困惑。 苹果代表表示,当使用Enterprise许可证构build应用程序进行分发时,您仍然需要注册所有设备的UUID。 我不认为这是准确的。 从我的研究中,.ipa包含已安装的embedded式configuration文件,不需要注册所有设备。

但是,正如我之前所说:如果我运行安装在分布/ adhocconfiguration文件中包含的设备,它的工作原理。 我完全困惑,拼命地需要帮助。

  1. 把你的IPA文件,重命名为一个.zip扩展名。
  2. 解压缩此文件并在Finder中打开Payload目录。
  3. 右键单击您的应用程序并单击显示包装内容。
  4. find文件embedded.mobileprovision,并在文本编辑器(如TextEdit)中打开此文件。

现在,如果在此XML文档中您看到ProvisionedDevices的关键字,那么您没有使用正确的设置configuration文件进行签名。 您需要创build一个In Houseconfigurationconfiguration文件。 如果您已使用In Houseconfiguration文件正确地签署了应用程序,则不会在embedded.mobileprovsion文件中看到ProvisionedDevices项,而是在ProvisionedDevices项中显示为true

造成这个错误的原因是因为在iOS 7.1 Beta中,到plist的链接必须是https格式。 如果URL没有以https格式提供给您,只需要将http改为https,如下所示:itms-services://?action = download-manifest&url = https://hostname.utest.com/OTA_App_Name.plist然后,将整个链接(从itms-services开始)复制并粘贴到Safari中,然后您就可以使用OTA下载和安装应用程序&#x3002;

如果这可以有任何帮助,我有同样的问题,并真正使用企业证书,但问题是来自ipa本身。

你不应该使用xcodebuild来创buildipa :

 xcodebuild \ -exportArchive \ -exportFormat IPA \ -exportPath "$BUILD_PATH/$PRODUCT_NAME.ipa" \ -archivePath "$BUILD_PATH/$PRODUCT_NAME.xcarchive 

而是使用xcrun

 xcrun -sdk iphoneos PackageApplication \ -v $BUILD_PATH/$PRODUCT_NAME.xcarchive/Products/Applications/$PROJECT_NAME.app \ -o $BUILD_PATH/$PRODUCT_NAME.ipa 

因为否则文件archived-expanded-entitlements.xcent在ipa创build期间被剥离,导致相同的错误。

我同意你的意思,没有必要为企业证书注册设备。 看来你的个人资料不是“连接”到你的企业证书,而是一个临时证书,有可能吗? (如果你有几个证书)。 您是否尝试删除并重新安装钥匙串访问中的证书?