0导出企业分发应用程序时的权利

时间:2015-01-19 22:32:23

标签: ios xcode ipa enterprise-distribution

在尝试导出我的几个iOS应用程序进行企业分发时,我遇到组织者正在展示的问题" 0权利"对于我的应用程序,而不是选择配置文件。

Redacted Entitlements

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

  

无法下载应用程序 - " 我的应用名称"目前无法安装。

可选择重试。

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

enter image description here

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

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

  • 修复1:我没有在清单中包含图片,所以我知道它们并不正确。
  • 修复2:问题应用程序只有几个月的时间了,我在自出现之日起就已经安装了iOS 8的设备上进行了测试。
  • 修复3:我已确认我的配置文件已激活
  • 修复4:我没有在控制台中收到Verification Stage Failed错误
  • 其他:尝试从@ thomas的回答中手动创建我的.ipa
  • 其他:我没有在控制台中收到重复的bundleID错误
  • 其他:我试过设置我的" Team"在我的目标的常规选项卡上,我的实际开发帐户,以及"无"

我想知道为什么我的Entitlements不会出现在主办方的第一位,所以我非常欢迎任何建议。在我的设备控制台无法安装我的应用程序(有些编辑)时,我已经把我认为的相关日志放在了我的位置:

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

2 个答案:

答案 0 :(得分:2)

就像不久前SSL的变化那样盲目支持我们,在Xcode 6中,我可以通过重新阅读文档确认,然后调用apple支持进行验证。您无法再使用通配符App ID分发企业应用程序。 在配置文件中查找告诉故事XC:com.company。*。

from apple online docs

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

答案 1 :(得分:0)

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

仍然不确定为什么我的某些应用程序会选择通配符配置文件而不是其他应用程序,但至少可以使用解决方案。