自iOS 7发布以来,已添加到配置文件的设备无法安装临时iOS .ipa文件。

17

我有一个iOS应用程序,已经开发了一段时间。最初,在iOS开发帐户中有大约8台设备,通过Hockey App准备并分发构建,没有问题。最近,我们添加了更多的设备,但由于某种原因,adhoc版本无法安装在这些设备上(但仍然可以在原始设备上正常安装)。

我已经反复检查了iOS Dev Center中的证书、设备和配置文件。我已经三次检查了XCode中的所有Build设置。该应用程序仅适用于iOS 6和iOS 7,并使用XCode 5构建。我已经尝试通过HockeyApp和iTunes直接安装该应用程序。

当尝试在设备上安装该应用程序时,控制台会输出以下内容:

Sep 24 21:45:02 Micks-iPad itunesstored[88] : LaunchServices: updating placeholder for com.purifier.ios with icons
Sep 24 21:45:02 Micks-iPad installd[62] : 0x304000 handle_install_for_ls: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/3119681654421541181.app" requested by itunesstored
Sep 24 21:45:02 Micks-iPad installd[62] : 0x304000 MobileInstallationInstall_Server: Installing app com.purifier.ios
Sep 24 21:45:02 Micks-iPad installd[62] : 0x304000 install_application: Installing placeholder
Sep 24 21:45:03 Micks-iPad installd[62] : 0x304000 MobileInstallationInstall_Server: Staging: 0.01s; Waiting: 0.00s; Installation: 0.14s; LS Sync: 0.00s; Overall: 0.15s
Sep 24 21:45:06 Micks-iPad itunesstored[88] : LaunchServices: Creating installProgressForApplication:LSApplicationProxy: com.purifier.ios (Placeholder) withPhase:0
Sep 24 21:45:06 Micks-iPad lsd[74] : LaunchServices: Updating installState for parent  to LSInstallStateWaiting

Sep 24 21:45:06 Micks-iPad lsd[74]: LaunchServices: 将父级的installPhase更新为0 Sep 24 21:45:19 Micks-iPad SpringBoard[33]: 为应用程序安装杀死com.purifier.ios Sep 24 21:45:19 Micks-iPad itunesstored[88]: LaunchServices: 为现有占位符LSApplicationProxy:com.purifier.ios(占位符)安装应用程序 Sep 24 21:45:19 Micks-iPad itunesstored[88]: LaunchServices: 使用阶段1为Application:LSApplicationProxy创建installProgress:com.purifier.ios(占位符) Sep 24 21:45:19 Micks-iPad lsd[74]: LaunchServices: 将父级的installPhase更新为1 Sep 24 21:45:19 Micks-iPad installd[62]: 0x304000 handle_install_for_ls:由itunesstored请求安装“/var/mobile/Media/Downloads/3119681654421541181/-915963357124799252”的应用程序 Sep 24 21:45:20 Micks-iPad installd[62]: 0x304000 MobileInstallationInstall_Server:正在安装应用程序com.purifier.ios Sep 24 21:45:20 Micks-iPad installd[62]: 配置文件无效:0xe8008012 Sep 24 21:45:20 Micks-iPad installd[62]: 0x304000 install_embedded_profile:无法安装嵌入式配置文件:0xe8008012 Sep 24 21:45:21 Micks-iPad securityd[77]: OCSPResponse:现在> latestNextUpdate Sep 24 21:45:22 Micks-iPad installd[62]: 0x304000 verify_signer_identity:对于/var/tmp/install_staging.AFwPty/foo_extracted/Payload/Purifier.app/Purifier的MISValidateSignatureAndCopyInfo验证签名者身份失败:0xe8008015Sep 24 21:45:22 Micks-iPad installd[62] : 0x304000 do_preflight_verification: 未能验证应用程序的可执行文件,位于 /var/tmp/install_staging.AFwPty/foo_extracted/Payload/Purifier.app Sep 24 21:45:22 Micks-iPad installd[62] : 0x304000 install_application: 无法预先安装应用程序 Sep 24 21:45:22 Micks-iPad itunesstored[88] : 0x441000 MobileInstallationInstallForLaunchServices: 安装失败,错误代码:-1 Sep 24 21:45:22 Micks-iPad itunesstored[88] : 错误:MobileInstallationInstallForLaunchServices 返回空值 Sep 24 21:45:22 Micks-iPad lsd[74] : LaunchServices: 应用程序 com.purifier.ios 安装失败 Sep 24 21:45:22 Micks-iPad itunesstored[88] : LaunchServices: 安装进程已结束,com.purifier.ios.Installing - 被调用,从缓存中删除进度信息 Sep 24 21:45:22 Micks-iPad installd[62] : 0x304000 handle_install_for_ls: API 失败 Sep 24 21:45:31 Micks-iPad SpringBoard[33] : 终止应用程序 com.purifier.ios 的安装过程

相关:https://dev59.com/JGMk5IYBdhLWcg3wxAvy - cregox
6个回答

22

问题在于UDID(设备唯一标识符)是错误的(感谢@neilco)。 UDID是错误的原因是我正在使用的UDID应用程序在iOS7中提供了错误的UDID。

我检查了大量其他UDID应用程序,它们在iOS7中都提供了错误的UDID。似乎以一堆FFFFFFFF...开头的任何内容都是错误的。

回到该死的iTunes...


2
我花了几天时间来解决我们其中一位员工的新iPhone 5S无法加载我们的应用程序的问题。它们都是按需分配的,并且我们也使用了Hockyapp。我从未意识到UDID会成为一个问题,直到我尝试另一个新的iOS7设备,并且辅助应用程序给出了一个以FFFFFFF开头的虚假UDID。这是一个相当大的问题,迫使我们通过苹果审核才能进入App Store。(没关系,只是还没有准备好这样做)如果用户远程操作,并且在3G iPad上没有iTunes怎么办?我知道他们就没戏了! - gregthegeek
2
emonster UDID+也给我了FFFFFF的UDID,这个问题让我疯掉了! - drfence
3
苹果公司在iOS7中基本上禁用了使用UDID的应用程序 - 参见https://dev59.com/pnfZa4cB1Zd3GeqPWdOb#19363844。 - Chris
我创建了一个临时的ipa文件。当我通过iTunes安装它时,在iPhone上可以正常使用。但是我无法直接安装它。我的问题可能是什么? - user3237750

13
这是您问题的根源:
Sep 24 21:45:20 Micks-iPad installd[62] : profile not valid: 0xe8008012
0xE8008012是“设备的 UUID 与正在加载的预配文件中的任何 UUID 不匹配”。
请检查并仔细核对预配门户中与配置文件相关联的 UUID,并确保使用正确和当前的配置文件签署应用程序。还要检查您的钥匙串中是否只有当前开发者证书。删除以前的证书。

4
这是问题所在。证书和配置文件都没问题,但设备的UDID错误了。我正在使用UDID应用程序获取UDID(而不是iTunes),但在iOS7中这不再提供正确的UDID。 - Mick Byrne
你也可以在.ipa文件中检查有多少个UDID已添加到配置文件中。你可以查看我的博客并按照步骤进行检查。http://buildipaudid.blogspot.in/ - Hardik Bar
@hardikbar 现在embedded.mobileprovision文件已经加密了。所以很遗憾,您的解决方案将无法让您查看与IPA相关联的配置文件。 - timgcarlson
@timgcarlson 我的解决方案是检查您的配置文件中添加了多少个UDID,您可以在安装到设备上之前进行交叉验证,或者将其发送给客户进行测试。有时我们会将应用程序发送给客户进行测试,但UDID未被添加或更新到配置文件中,或者我们没有刷新证书,因此您可以从您的.ipa文件中检查添加了多少设备ID...如果您有任何相关问题,请随时问我,我全天候都可用。 - Hardik Bar

8

在将新设备添加到配置文件中后,请确保重新下载配置文件。

您需要编辑配置文件并在列表中勾选新设备,然后重新下载它。


这是一个好建议。我正在更新我的一个测试人员的 UDID,因为它无法加载(由于 ffffff 问题),并且我没有想到要这么做。感谢您节省了一些烦恼时间! - ctlockey
没问题。如果你有任何困难,请告诉我。 - CW0007007
这正是我遇到的确切问题。我只是假设xCode足够聪明,可以为我获取更新的配置文件。我不得不手动从会员中心下载配置文件,并双击安装更新的配置文件。 - KyleT
1
是的,假设Xcode很聪明总是让我失败。很高兴你解决了它。 :-) - CW0007007
请确保在向配置文件中添加新设备后重新下载配置文件... 您还可以在 .ipa 文件中检查已添加到配置文件的 UDID 数量。您可以查看我的博客并按照步骤进行检查 http://buildipaudid.blogspot.in/ - Hardik Bar
CW0007007和@KyleT,这不是关于Xcode是否聪明的问题,而是一个安全问题。手动过程是有意为之的,以便在分发之前,恶意软件不能在未经作者充分了解您的特定设备的情况下安装到您的设备上。 - Michael Ozeryansky

2
请注意,由于隐私问题,苹果已经更改了UDID检索API。因此,我认为您可能无法使用一些旧应用程序来获取UDID。您可以将设备连接到PC / Mac并使用iTunes(或XCODE)获取UDID。在iTunes中,单击序列号,它将更改为UDID(一旦手机连接到计算机并在iTunes中单击设备)。

2

xcode打开组织者 -> 选择设备 -> 在左侧窗格中从顶部选择配置文件,删除当前的配置文件。 从你的开发者账户下载更新后的配置文件,现在尝试为新设备构建你的.ipa

不要忘记在设备中更新配置文件。


0

如果您需要将Swift 4安装为开发测试,请编辑配置文件。如果您没有此应用程序的配置文件,则无法在设备上安装,请创建新的配置文件并选择所有设备,然后重新构建IPA并进行简单安装。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接