1

在尝试为企业分发导出几个 iOS 应用程序时,我遇到了一个问题,即组织者为我的应用程序显示“0 权利”并且没有选择配置文件。

编辑的权利

这在创建 .IPA 文件时不会导致任何错误。但是,在我将 .ipa 和 .plist 放在我的网站上后,该应用程序将无法成功安装。当我尝试安装时,它开始在“正在加载...”时在应用程序图标上显示进度指示器,但随后它消失了,我收到了一般消息:

无法下载应用程序 -此时无法安装“我的应用程序名称”。

带有重试选项。

我的其他几个应用程序没有这个问题,它们在管理器中显示 4 个权利和配置文件。生产配置文件是“公司通配符”,因此它的结构com.mycompanyname.*我已经确认工作代码和非工作代码的 App ID 遵循完全相同的结构。在我选择用于配置的开发团队后,工作应用程序似乎会自动获取配置文件,在其中一个工作应用程序中可以看到:

在此处输入图像描述

即使我在目标的构建设置中专门选择了我的生产分发配置文件,在尝试分发我的应用程序时也不包括配置文件。

为了解决问题,我尝试了此处答案中列出的所有步骤,以及一些未接受的答案中的一些解决方法:iOS 8 - Can't Install Enterprise App。无需点击即可参考;

  • 修复 1:我没有在清单中包含图像,所以我知道它们不正确。
  • 修复 2:有问题的应用程序只有几个月的历史,我正在一台自 iOS 8 发布之日起就安装了 iOS 8 的设备上进行测试。
  • 修复 3:我已确认我的配置文件处于活动状态
  • 修复 4:我没有Verification Stage Failed在控制台中收到错误
  • 其他:尝试从@thomas 的回答步骤手动创建我的 .ipa
  • 其他:我没有在控制台中收到重复的 bundleID 错误
  • 其他:我尝试将我的 Target 的 General 选项卡上的“Team”设置为我的实际开发帐户和“None”

我想弄清楚为什么我的权利没有首先出现在组织者中,所以我非常欢迎任何建议。下面我在我的设备控制台安装我的应用程序失败时放置了我认为的相关日志(有些编辑):

Jan 19 10:37:47 My-Device-Name SpringBoard[48] <Warning>: Killing com.companyName.AppName for app installation
Jan 19 10:37:47 My-Device-Name itunesstored[82] <Warning>: LaunchServices: installing app for existing placeholder <LSApplicationProxy: 0x12ed94f40> com.companyName.AppName (Placeholder)
Jan 19 10:37:47 My-Device-Name itunesstored[82] <Warning>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x12ed94f40> com.companyName.AppName (Placeholder) withPhase:1
Jan 19 10:37:47 My-Device-Name lsd[74] <Warning>: LaunchServices: Updating installPhase for parent <NSProgress: 0x1345516b0> : Parent: 0x0 / Fraction completed: 0.5100 / Completed: 51 of 100   to 1
Jan 19 10:37:47 My-Device-Name installd[40] <Notice>: 0x100484000 -[MIClientConnection _doBackgroundInstallationForPath:withOptions:completion:]: Install of "/var/mobile/Media/Downloads/4200584489248642015/-6824318255463645847" type Customer requested by itunesstored (pid 82)
Jan 19 10:37:47 My-Device-Name installd[40] <Error>: 0x100484000 +[MIInstallable installablesAtURL:packageFormat:userOptions:error:]: 52: Failed to inspect package at file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.7eIGCb/extracted (Error Domain=NSPOSIXErrorDomain Code=2 "_IterateDirectory for file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.7eIGCb/extracted/Payload returned No such file or directory" UserInfo=0x15d61c6b0 {SourceFileLine=413, NSLocalizedDescription=_IterateDirectory for file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.7eIGCb/extracted/Payload returned No such file or directory, FunctionName=-[MIFileManager urlsForItemsInDirectoryAtURL:error:]})
Jan 19 10:37:47 My-Device-Name itunesstored[82] <Error>: 0x10231c000 __MobileInstallationInstallForLaunchServices_block_invoke240: Returned error Error Domain=MIInstallerErrorDomain Code=6 "Failed to inspect package at file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.7eIGCb/extracted" UserInfo=0x12ee51240 {NSLocalizedDescription=Failed to inspect package at file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.7eIGCb/extracted, LegacyErrorString=PackageInspectionFailed, FunctionName=+[MIInstallable installablesAtURL:packageFormat:userOptions:error:], SourceFileLine=52, NSUnderlyingError=0x12ef3e6f0 "_IterateDirectory for file:///private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.7eIGCb/extracted/Payload returned No such file or directory"}
Jan 19 10:37:47 My-Device-Name itunesstored[82] <Warning>: ERROR: MobileInstallationInstallForLaunchServices returned nil
Jan 19 10:37:47 My-Device-Name lsd[74] <Warning>: LaunchServices: installation failed for app com.companyName.AppName
Jan 19 10:37:47 My-Device-Name itunesstored[82] <Warning>: LaunchServices: installPhaseFinishedForProgress: com.companyName.AppName.Installing - <NSProgress: 0x13004e800> : Parent: 0x0 / Fraction completed: 0.0000 / Completed: 0 of 100   called, removing progress from cache
4

2 回答 2

2

就像不久前让我们盲目的 SSL 更改一样,在 Xcode 6 中,我可以通过重新阅读文档来确认,然后调用苹果支持进行验证。您不能再使用通配符 App ID 分发企业应用程序。在您的配置文件中寻找一个故事 XC: com.company.*。

来自苹果在线文档

根据苹果公司的说法,当我持有时,whos 技术制作了一个最小的测试应用程序,以及我自己的最小测试用例,您可以创建新的显式应用程序 ID 并编辑现有的配置文件以使用它们。因此对现有装置的影响最小。在 xCode 6 中使用该捆绑 ID 后,尚未确认是否可以恢复到 Xcode 5 存档。我希望此信息对其他企业开发人员有所帮助。 https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/DistributingEnterpriseProgramApps/DistributingEnterpriseProgramApps.html

于 2015-02-07T00:16:38.983 回答
0

我找到了解决这个问题的方法,那就是为所有应用创建明确的应用 ID。我不知道在生产应用程序中使用通配符 App ID 是否存在新问题,但是当我创建显式 ID(以及每个显式 ID 的配置文件)时,我不再遇到此问题。

仍然不确定为什么我的一些应用程序选择了通配符配置文件,但其他应用程序却没有,但至少有一个解决方案可用。

于 2015-01-22T15:01:02.007 回答