无法安装企业应用

时间:2021-05-14 20:41:19

Our company has an app that can be downloaded through a website using Enterprise Distribution.

我们公司有一个应用程序,可以通过企业发行版的网站下载。

无法安装企业应用

In iOS 8 Beta 5, tapping the download link brings up the expected pop-up "(website) would like to install (App Name)". Tapping 'install' on that dialog first causes the app to get stuck "Waiting..."

在ios8 Beta 5中,点击下载链接会弹出“(网站)想要安装(应用程序名称)”。在对话框中点击“install”,首先会让应用程序卡住“等待…”

无法安装企业应用

Until it finally indicates: "Unable to Download App (app name) could not be downloaded at this time."

直到最后提示:“此时无法下载App (App名称)。”

无法安装企业应用

Installing works as expected using iOS 7.

使用iOS 7安装工作正常。

Running the app from Xcode under iOS 8 works.

在ios8系统下运行Xcode应用程序。

How do we support Enterprise Distribution iOS 8?

我们如何支持企业分配ios8 ?

Perhaps a change needs to be made to the Manifest file? When I tried building the app in Xcode 6 Beta 7, the Enterprise Archival process did not prompt me to make a manifest file...

可能需要对清单文件进行更改?当我尝试在Xcode 6 Beta 7中构建应用程序时,企业归档过程并没有提示我生成一个manifest文件……

15 个解决方案

#1


57  

Looking through the console of the phone whist attempting to install one of my apps, I discovered:

通过手机的控制台,惠斯特试图安装我的一个应用,我发现:

Sep  9 12:16:56 iPhone misagent[94] <Error>: attempt to install invalid profile: 0xe8008011
Sep  9 12:16:56 iPhone installd[40] <Error>: 0x100484000 -[MIInstallableBundle _installEmbeddedProfileInBundle:]: Could not install embedded profile: 0xe8008011 (Expired)

Reasons unbeknown to me, apple invalidated half of my profiles and failed to alert me. After going into developer.apple.com find any invalid profiles:

我不知道的原因是,苹果让我的一半资料无效,也没能提醒我。在进入developer.apple.com后,发现任何无效的个人资料:

Hit Edit - > Generate -> Download Rebuild the application with the new profile.

点击编辑->生成->下载重建应用程序与新的配置文件。

However - The bad news still at least one of my apps is failing to install. Looking through the console gives me nothing. I am convinced this is an apple bug so have filed a radar: 17622725

然而,坏消息是我至少有一个应用程序没有安装。从控制台往里看什么也没有。我确信这是苹果的一个漏洞,所以我已经提交了一个雷达:17622725

I hope your issue is a profile problem otherwise we may have to wait until tonight 1800GMT to see if apple have fixed it.

我希望你的问题是一个侧面的问题,否则我们可能要等到晚上1800GMT才能知道苹果公司是否解决了这个问题。

EDIT

编辑

With iOS8 GM - I just get Waiting... - I will keep you informed with the bug report progress.

使用iOS8 GM -我只是等待…-我会让你知道bug报告的进展情况。

EDIT

编辑

After troubleshooting a few of fixes have been found:

在故障排除之后,找到了一些修复程序:

Fix 1

解决1

As of iOS8, if the images you are linking to in the manifest plist do not exist - Apple will not install the application on the phone - The manifest being the file that you link to on the download page: itms-services://?action=download-manifest&url={url}

在iOS8中,如果您在manifest plist中链接的图像不存在——苹果不会在手机上安装应用程序——那么manifest就是您在下载页面上链接到的文件:itms-services://?action=download-manifest&url={url}

Make sure both full-size-image and display-image exist:

确保全尺寸图像和显示图像都存在:

<dict>
    <key>kind</key>
    <string>full-size-image</string>
    <key>needs-shine</key>
    <true/>
    <key>url</key>
    <string>https://{path_to_real_image}</string>
</dict>
<dict>
    <key>kind</key>
    <string>display-image</string>
    <key>needs-shine</key>
    <true/>
    <key>url</key>
    <string>https://{path_to_real_image}</string>
</dict>

Fix 2

修复2

Enterprise applications will not install if they existed previously on iOS7 due to a bug with iOS8. An error appears in the console:

由于iOS8存在错误,如果以前iOS7上存在企业应用程序,则不会安装它们。控制台出现错误:

Ignore manifest download, already have bundleID: {bundle_id}

This can be fixed by temporarily changing the bundleID in the manifest file, but apple are aware as they marked the bug report as duplicated. After internal tests you an also fix the problem by resting the home screen layout General -> Reset -> Reset Home Screen Layout

这可以通过临时更改清单文件中的bundleID来解决,但是苹果注意到他们将错误报告标记为重复。在内部测试之后,你也可以通过休眠主屏幕布局一般->复位->复位主屏幕布局来修复问题

Fix 3

修复3

If you see the application get into the installing... stage as opposed to loading... almost certainly the problem is the embedded provisioning profile has expired, to fix the download you will need to re-archive you application with a new, updated provisioning profile.

如果您看到应用程序进入安装…与装载相反的阶段……几乎可以肯定的是,嵌入式配置文件已经过期,要修复下载,需要使用新的、更新的配置文件重新归档应用程序。

Fix 4

修复4

If you see the application get to the installing... stage and your provisioning profile is valid - Download the application whilst attached to your console. (Xcode 6 > Window > Devices > Bottom Left Button [v]), You will probably find that the install failed with Verification Stage Failed a little below will be the error message. In my case (Entitlements found that are not permitted by provisioning profile) - For this error goto developer.apple.com and update your App Identifier to include the correct service. For me App Groups needed to be enabled. Then regenerate your provisioning profile

如果您看到应用程序安装……stage和您的配置文件是有效的-下载应用程序同时附加到您的控制台。(Xcode 6 > Window > Devices > Bottom Left Button [v]),您可能会发现,安装失败,验证阶段失败,下面是错误消息。在我的例子中(提供配置文件不允许的权利)——对于这个错误,goto developer.apple.com并更新应用程序标识符以包含正确的服务。对于me,需要启用应用程序组。然后重新生成配置文件

#2


7  

I got the same problem today: I couldn't install one of my Enterprise app on IOs8 (but on IOs7). After many hours of search, I finally read this message on the device console :

今天我遇到了同样的问题:我无法在IOs8上(但在IOs7上)安装我的企业应用。经过几个小时的搜索,我终于在设备控制台看到了这个消息:

<Warning>: LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.ecaste.Crew-Desk

After a long time of searching, I finally read this post : http://support.hockeyapp.net/discussions/problems/26683-not-able-to-download-apps-ios8-beta-5-autoupdate-manually-etc

经过长时间的搜索,我终于读到了这篇文章:http://support.hockeyapp.net/discussions/26683(不能下载的应用)ios8-beta-5- autoupdate手册等

And by the end I just changed the name of the plist and the link to download the ipa (probably the second is not needed), and finally the app gets installed.

最后我更改了plist的名称和下载ipa的链接(可能不需要第二个),最后安装了应用程序。

Finally it seems that it was a Cache problem in IOs8 that considers the app was already installed (and that was not the case, I uninstalled it previously).

最后,IOs8中似乎存在缓存问题,认为应用程序已经安装(但我之前没有安装)。

Hope this help

希望这有助于

#3


7  

Same error here, I have tried changing bundle-id, bundle-version, plist... but the error remains.

同样的错误,我尝试过修改bundll -id、bundll -version、plist…但错误仍然存在。

I know that this is a bit tricky, but this is the only thing that works for me:

我知道这有点棘手,但这是唯一对我有用的东西:

http://support.hockeyapp.net/discussions/problems/30194-ios8-workaround-can-break-today-extension?full_site=1#comment_35141099

http://support.hockeyapp.net/discussions/problems/30194-ios8-workaround-can-break-today-extension?full_site=1 comment_35141099

  1. Connect the device to a Mac or PC
  2. 将设备连接到Mac或PC上
  3. Create a backup in iTunes

    在iTunes中创建一个备份

  4. Install iExplorer: http://www.macroplant.com/iexplorer/

    安装iExplorer:http://www.macroplant.com/iexplorer/

  5. Start iExplorer, then select the demo mode

    启动iExplorer,然后选择演示模式

  6. In the left sidebar, select Media, then open the Downloads folder, and delete all files in it

    在左侧边栏中,选择媒体,然后打开下载文件夹,并删除其中的所有文件。

  7. Restart the device

    重新启动设备

  8. Open the download page and install the latest version of your app

    打开下载页面并安装最新版本的应用程序

Indeed I omit the first two steps and it works perfect :)

事实上,我省略了前两步,它运行得非常完美:)

I hope this helps

我希望这有助于

#4


6  

Set Deployment Target Lower in

设置部署目标较低

Project > Build Setting > iOS Deployment Target

项目>构建设置> iOS部署目标

Targets > Build Setting > iOS Deployment Target

目标>构建设置> iOS部署目标

#5


3  

I just had this problem right now and it was caused by the mainfest plist (keys: full-size-image + display-image) are pointing at url image locations that do not exist.

我刚刚遇到这个问题,它是由mainfest plist(键:全尺寸图像+显示图像)指向不存在的url图像位置引起的。

It looks like that iOS6/iOS7 are able to handle if the images do not exist but iOS8 is more restrictive about this.

看起来iOS6/iOS7可以处理图像不存在的情况,但是iOS8对此有更多的限制。

#6


3  

Based on previous comments on the "ignore manifest download" message, we tried changing the bundle ID (ie com.companyName.AppName) in the .plist to have a unique name, to force iOS 8 to download/install it anyway. After it gets installed, it correctly replaces the existing copy.

基于之前关于“忽略清单下载”消息的评论,我们尝试更改.plist中的bundle ID(即com.companyName.AppName),使其具有唯一的名称,以强制iOS 8下载/安装它。安装后,它将正确地替换现有的副本。

I believe there are 2 problems going on here. If the .plist on the https website pointing to the enterprise certificate signed .ipa file has a bundle-identifier matching an application that's already installed, it won't overwrite it. The bundle-version is different on all our .plist files, so it should install it anyway. iOS 7 doesn't seem to have this issue. We plan to work around this issue by messing up the bundle-identifier in the plist so it's always unique to the build.

我相信这里有两个问题。如果https网站上的.plist指向已签名的企业证书。ipa文件有一个bundle标识符匹配已经安装的应用程序,它不会覆盖它。绑定版本在我们所有的.plist文件上都是不同的,所以无论如何都应该安装它。iOS 7似乎没有这个问题。我们计划通过将plist中的bundle标识符弄乱,从而解决这个问题,因此它总是惟一的构建。

The second issue is that when it is successfully installing the application, it doesn't switch to the home screen or indicate it's doing anything at all. In iOS 7, after selecting the "Install" button at the prompt, would switch to the Home screen where the icon would be dark, and a progress indicator would show downloading progress. Then the application would have a blue dot next to it indicating it was new. With iOS 8, it doesn't switch to the Home screen so it appears to be not working. You can manually go to the home screen, and you should see a dark icon with a progress indicator (now at a new location, because it doesn't know it will be replacing an existing application). After it downloads/installs successfully, it doesn't place the blue dot on the replaced application.

第二个问题是,当它成功安装应用程序时,它不会切换到主屏幕,也不会显示它在做任何事情。在ios7中,当在提示符处选择“Install”按钮后,会切换到主屏幕上,图标将是黑色的,一个进度指示符将显示下载进度。然后,应用程序的旁边会有一个蓝点,表示它是新的。在iOS 8系统中,它不会切换到主屏幕,因此看起来不工作。您可以手动进入主屏幕,您应该会看到一个带有进度指示的黑色图标(现在在一个新的位置,因为它不知道它将替换一个现有的应用程序)。在成功下载/安装之后,它不会将蓝色的点放在被替换的应用程序上。

Hope this helps.

希望这个有帮助。

#7


2  

This caused me huge pain. I needed to install a new app OTA on just employee phones outside of an MDM solution. I seemed to try every possible solution I could find on the internet and nothing worked. The closest I could get was for the app to get to the ‘loading’ stage. My solution has taken a week of work, trying different things. I’m not sure which worked in which order and which would have worked anyway, but here’s what I did:

这给我带来了巨大的痛苦。我需要在一个MDM解决方案之外的员工手机上安装一个新的应用OTA。我似乎尝试了在互联网上找到的所有可能的解决方案,但都没有成功。我能得到的最接近的是应用程序进入“加载”阶段。我的解决方案花了一个星期的时间,尝试不同的东西。我不确定哪种顺序和哪种顺序会起作用,但我所做的是:

In my case, I had previously built this app with a provisioning profile from a developer (as opposed to an Enterprise) account. In Xcode, I changed the Bundle Identifier to give it a new name, for example, it was originally com.mydomain.myapp and became com.mydomain.mysuperapp.

在我的例子中,我之前构建了这个应用程序,它提供了一个来自开发人员(而不是企业)帐户的配置文件。在Xcode中,我更改了Bundle标识符以给它一个新名称,例如,它最初是com.mydomain。myapp,成为com.mydomain.mysuperapp。

Ensured code signing in the app was valid and included the distribution certificate for the Enterprise account

确保应用程序中的代码签名有效,并包含企业账户的分发证书

I had used the wrong provisioning profile (one with no identities associated) so, because I chose ‘automatic’ it built fine but was never going to install. So, I changed code signing for Release to my distribution profile (rather than development profile)

我使用了错误的配置文件(没有关联的身份),因为我选择了“自动”,它构建良好,但永远不会安装。因此,我将发布的代码签名更改为发布配置文件(而不是开发配置文件)

Made sure the app was set with a deployment target low enough for the devices that will download it

确保该应用程序设置的部署目标足够低,可以下载它。

Archived the file & exported for Enterprise deployment

归档文件并导出用于企业部署

Manifest must contain the 57x57 png and the 512x512 png image otherwise the install doesn’t get past the ‘waiting’ stage

Manifest必须包含57x57 png和512x512 png图像,否则安装不会通过“等待”阶段

I created an index.html file that looked like this:

我创建了一个索引。像这样的html文件:

<html>
    <body>
        <a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/dw80wahlwupkyd5/MyApp.plist">
            Install Learning Chunks App from Dropbox</a>
    </body>
</html>

I had used a plist sample that I found online and it included some optional settings. When I left these in, the download didn’t work. I took those out. My manifest plist file was named: MyApp.plist and looked like this:

我使用了我在网上找到的plist示例,其中包含一些可选设置。当我把这些放进去的时候,下载没有效果。我把这些。我的清单plist文件被命名为:MyApp。看起来是这样的:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
        <array>
            <dict>
                <key>assets</key>
                <array>
                    <dict>
                        <key>kind</key>
                        <string>software-package</string>
                        <key>url</key>
                        <string>https://dl.dropboxusercontent.com/s/r1bljbkcows7sje/mysuperapp.ipa</string>
                    </dict>
                    <dict>
                        <key>kind</key>
                        <string>display-image</string>
                        <key>needs-shine</key>
                        <true/>
                        <key>url</key>
              <string> https://dl.dropboxusercontent.com/s/ujk9ipcv2naltut/logo57.png</string>
                    </dict>
                    <dict>
                        <key>kind</key>
                        <string>full-size-image</string>
                        <key>needs-shine</key>
                        <true/>
                        <key>url</key>
                  <string>https://dl.dropboxusercontent.com/s/gpebomok83mp9d5/logo512.png</string>
                    </dict>
            </array>
            <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>com.mydomain.mysuperapp</string>
                    <key>bundle-version</key>
                    <string>1.0</string>
                    <key>kind</key>
                    <string>software</string>
                    <key>title</key>
                    <string>My Super App</string>
                    <key>subtitle</key>
                    <string>My Super App</string>
                </dict>
        </dict>
        </array>
    </dict>
</plist>

I uploaded the MyApp.plist, index.html, logo57.png, logo512.png and MyApp.ipa to DropBox. I shared the index.html with those who need to download the app.

我上传了MyApp。plist,指数。html,logo57。png、logo512。png和MyApp。异丙醇DropBox。我共享索引。和那些需要下载的人一起使用html。

The user can then click on the shared link in the email and the app should install.

用户可以点击电子邮件中的共享链接,应用程序就应该安装了。

#8


1  

EDIT: The issue below is a red herring. As Dylan Hand mentioned above, the problem for me was that I had broken image links in the manifest file. Apparently this didn't matter for ios7 but ios8 won't finish the install if this is true. When I removed those reference, it worked perfectly.

编辑:下面的问题是转移注意力。正如上面迪伦•汉德(Dylan Hand)提到的,对我来说,问题在于我破坏了manifest文件中的图像链接。显然,这对ios7来说并不重要,但如果这是真的,ios8将无法完成安装。当我删除这些引用时,它运行得很好。


I have the same set of symptoms as OP (ie. "Unable to download app" message but only on iOS 8). When I try to validate (ie Organizer -> Validate), I receive the following message.

我有和OP一样的症状。“无法下载应用”消息,但只能在ios8上)。当我尝试验证(ie Organizer -> validate)时,我收到如下消息。

无法安装企业应用

This led me to this post: https://*.com/a/25757196/751136

这让我想到了这个帖子:https://*.com/a/25757196/751136。

It claims that re-generating your provisioning profiles should result in a new entitlement called beta-reports-active. When I try to do this on in my enterprise account, the new profiles DO NOT have the new entitlement. However, when I regenerate provisioning profiles in another non-enterprise account, the new profiles DO have that field.

它声称重新生成配置文件应该产生一个新的权限,称为beta报告-active。当我尝试在我的企业账户中这样做时,新的概要文件没有新的授权。但是,当我在另一个非企业帐户中重新生成配置文件时,新的配置文件确实有这个字段。

#9


1  

If you build your iOS apps with a build script and you were previously using PackageApplication with the --sign flag then that may be causing problems. The --sign flag doesn't work any longer when building on 10.10 and removing it got all of our iOS apps installing again.

如果你用一个构建脚本构建你的iOS应用,而你之前使用的是带有-sign标志的PackageApplication,那么这可能会引起问题。当在10.10上构建并删除它时——标志不再工作,我们所有的iOS应用程序再次安装。

see: https://devforums.apple.com/thread/251624?tstart=0

参见:https://devforums.apple.com/thread/251624?tstart=0

#10


1  

This issue drove me crazy, Only this helped for Enterprise Distribution: Perform all the required build settings and click on “Archive”. Perform the Enterprise Distribution Process. You will be shown Organizer window. On Mac machine locate the .xcacrchive file by selecting KRelease and choosing “Show in finder”.

这个问题让我抓狂,但这对企业发行版有帮助:执行所有必需的构建设置并单击“Archive”。执行企业分发流程。你将被显示为组织者的窗口。在Mac机器上,通过选择KRelease和选择“Show in finder”找到.xcacrchive文件。

User is navigated to the folder where the .xcarchive file is located. Right-click the .xcarchive file and select “Show Package Contents” option.

用户被导航到.xcarchive文件所在的文件夹。右键单击.xcarchive文件并选择“显示包内容”选项。

In the opened finder window go to Products/Applications Select and copy the .app file

在打开的finder窗口中,转到Products/应用程序,选择并复制.app文件

Create a new folder somewhere on your disk with the name “Payload” Note: The folder name is case-sensitive. Paste the copied .app file into “Payload” folder. Compress the Payload folder to get Payload.zip file Rename the Payload.zip file to .ipa and bundle it with your .plist Done !!! the .ipa file is ready to be installed on the devices registered in the provisioning profile used in the .xcarchive generation.

在磁盘的某个地方创建一个名为“有效负载”的新文件夹注意:文件夹名称区分大小写。将复制的.app文件粘贴到“有效负载”文件夹中。压缩有效载荷文件夹以获得有效载荷。压缩文件重命名有效负载。将文件压缩到。ipa,并将它与你的。plist捆绑完成!!ipa文件可以安装在.xcarchive生成中使用的配置文件中注册的设备上。

#11


0  

I have sovled this problem.

我解决了这个问题。

  1. Since Apple has changed provisioning profiles, please RENEW the provisioning profiles (File 1) and copy it into the "Payload/".
  2. 由于苹果已经更改了配置文件,请更新配置文件(文件1)并将其复制到“有效负载/”中。
  3. Make sure there's a Entitlements.plist (File 2) in the "Payload/", and this plist file MUST be PLAIN TEXT which is created by a text editor.
  4. 确保有权利。plist(文件2)在“有效负载/”中,这个plist文件必须是纯文本,由文本编辑器创建。
  5. Make sure there's a Info.plist (File 3) in "Payload/", and this is created by XCode;
  6. 确保有信息。plist(文件3)在“有效载荷/”中,由XCode创建;
  7. Copy the Entitlements.plist (File 4) anywhere else except the "Payload/".
  8. 复制权利。plist(文件4)除了“有效载荷/”之外的任何地方。
  9. Be sure "Bundle identifier" in File 1-4 should be the same.
  10. 确保文件1-4中的“Bundle identifier”相同。
  11. Use this Entitlements.plist (File 4) to Re-Sign the IPA file.
  12. 使用这种权利。plist(文件4)重新签署IPA文件。

You can resign it like this

你可以这样辞职

codesign -fs "iPhone Distribution: Your Company Name" --entitlements=/Users/SenTR/Downloads/codesign/Entitlements.plist /Users/SenTR/Downloads/codesign/Payload/Your_Project_name.app

Entitlements.plist sample

福利。plist样本

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>application-identifier</key>
        <string>PREFIX.yourappBundleID</string>
        <key>aps-environment</key>
        <string>production</string>
        <key>get-task-allow</key>
        <false/>
        <key>keychain-access-groups</key>
        <array>
            <string>PREFIX.yourappBundleID</string>
        </array>
    </dict>
</plist>

If you know Chinese, this will be helpful.

如果你懂中文,这将会很有帮助。

http://hennry.com/2015/03/fail-to-resign-ipa-since-ios8/

http://hennry.com/2015/03/fail-to-resign-ipa-since-ios8/

#12


0  

These answers are valid things to check, but in case anyone else has tried them like I did and STILL had problems, make sure your app contains the proper plist setting that allows the exported archive to be compressed correctly. This is what bit us, even after following all the steps above. Also of note, the answer that talks about ensuring the web site's plist contains valid image links doesn't seem to affect anything, at least for us using XCode 6.3 to export archives. It worked/didn't work irrespective of those links being correct. It's obviously a good idea to have that info correct though. Another interesting note is if we exported using XCode 5, the ipa's were ALWAYS in the correct format (see linked SO article above); it seems XCode 6+ now is picky about it.

这些答案是有效的,但如果其他人像我一样尝试过,并且仍然有问题,请确保您的应用程序包含适当的plist设置,允许导出的归档文件被正确地压缩。这就是我们所需要的,即使遵循了上面所有的步骤。同样值得注意的是,关于确保web站点的plist包含有效的图像链接的答案似乎并没有影响任何东西,至少对于我们使用XCode 6.3来导出存档是如此。不管那些链接是否正确,它都可以工作。很明显,有这个信息是正确的。另一个有趣的注意是,如果我们使用XCode 5导出,ipa的格式总是正确的(请参阅上文的链接SO文章);XCode 6+现在似乎很挑剔。

#13


0  

My problem was corrected by removing all built outut, then rebuilding completely.

我的问题通过移除所有的建造,然后完全重建得到了纠正。

#14


0  

Yet another possible source of this installation issue is a case mismatch between the project and the provisioning profile (especially likely with automated or other command-line builds). The bundle IDs are case-sensitive. For example, if app bundle identifier in the provisioning profile is com.example.MyApp and the project configuration and/or Info.plist uses com.Example.Myapp, Xcode 7.1 will fail with a code signing error or fall back to a generic provisioning profile (one with * bundle id, which might itself be an issue) but xcodebuild command will succeed. Jenkins will also upload the erroneously signed build to Hockeyapp for example. The build will download to client devices but won't install because of the case mismatch.

然而,这个安装问题的另一个可能来源是项目和供应配置文件之间的情况不匹配(特别是对于自动化或其他命令行构建)。bundle id是区分大小写的。例如,如果配置文件中的app bundle标识符是com.example。MyApp以及项目配置和/或信息。plist com . example。使用Myapp, Xcode 7.1将会在代码签名错误中失败,或者退回到一个通用配置文件(有* bundle id,这本身可能是一个问题),但是xcodebuild命令会成功。Jenkins还会将错误签名的构建上传至Hockeyapp。构建将下载到客户端设备,但由于案例不匹配而不会安装。

Therefore,

因此,

Fix 0

Check that the application bundle identifier is set up the same way both in the project and on Apple Developer portal.

检查应用程序包标识符在项目中和在Apple Developer portal中以相同的方式设置。

The simplest way to avoid this particular issue is to always use lower-case characters in your bundle identifiers. Copying bundle id from Apple Developer portal and pasting it into the project build settings (PRODUCT_BUNDLE_IDENTIFIER) also helps of course.

避免这个特殊问题的最简单方法是始终在包标识符中使用小写字符。从Apple Developer portal复制bundle id并将其粘贴到项目构建设置(PRODUCT_BUNDLE_IDENTIFIER)当然也有帮助。

Though I had the issue with an enterprise account, it might in fact be not specific to this type of distribution.

虽然我有一个企业帐户的问题,但它可能不是特定于这种类型的发行。

Fix 0´

Make sure to check out Apple's technical note called Installation Failure Troubleshooting for iOS.

请务必查看苹果的技术说明,即iOS的安装故障排除。

#15


0  

My issue was that I had a space both in my ipa filename, and the reference to that ipa in my plist. Removing the space in both allowed the installation

我的问题是,我的ipa文件名中都有一个空格,plist中也有对ipa的引用。删除两者中的空间都允许安装

#1


57  

Looking through the console of the phone whist attempting to install one of my apps, I discovered:

通过手机的控制台,惠斯特试图安装我的一个应用,我发现:

Sep  9 12:16:56 iPhone misagent[94] <Error>: attempt to install invalid profile: 0xe8008011
Sep  9 12:16:56 iPhone installd[40] <Error>: 0x100484000 -[MIInstallableBundle _installEmbeddedProfileInBundle:]: Could not install embedded profile: 0xe8008011 (Expired)

Reasons unbeknown to me, apple invalidated half of my profiles and failed to alert me. After going into developer.apple.com find any invalid profiles:

我不知道的原因是,苹果让我的一半资料无效,也没能提醒我。在进入developer.apple.com后,发现任何无效的个人资料:

Hit Edit - > Generate -> Download Rebuild the application with the new profile.

点击编辑->生成->下载重建应用程序与新的配置文件。

However - The bad news still at least one of my apps is failing to install. Looking through the console gives me nothing. I am convinced this is an apple bug so have filed a radar: 17622725

然而,坏消息是我至少有一个应用程序没有安装。从控制台往里看什么也没有。我确信这是苹果的一个漏洞,所以我已经提交了一个雷达:17622725

I hope your issue is a profile problem otherwise we may have to wait until tonight 1800GMT to see if apple have fixed it.

我希望你的问题是一个侧面的问题,否则我们可能要等到晚上1800GMT才能知道苹果公司是否解决了这个问题。

EDIT

编辑

With iOS8 GM - I just get Waiting... - I will keep you informed with the bug report progress.

使用iOS8 GM -我只是等待…-我会让你知道bug报告的进展情况。

EDIT

编辑

After troubleshooting a few of fixes have been found:

在故障排除之后,找到了一些修复程序:

Fix 1

解决1

As of iOS8, if the images you are linking to in the manifest plist do not exist - Apple will not install the application on the phone - The manifest being the file that you link to on the download page: itms-services://?action=download-manifest&url={url}

在iOS8中,如果您在manifest plist中链接的图像不存在——苹果不会在手机上安装应用程序——那么manifest就是您在下载页面上链接到的文件:itms-services://?action=download-manifest&url={url}

Make sure both full-size-image and display-image exist:

确保全尺寸图像和显示图像都存在:

<dict>
    <key>kind</key>
    <string>full-size-image</string>
    <key>needs-shine</key>
    <true/>
    <key>url</key>
    <string>https://{path_to_real_image}</string>
</dict>
<dict>
    <key>kind</key>
    <string>display-image</string>
    <key>needs-shine</key>
    <true/>
    <key>url</key>
    <string>https://{path_to_real_image}</string>
</dict>

Fix 2

修复2

Enterprise applications will not install if they existed previously on iOS7 due to a bug with iOS8. An error appears in the console:

由于iOS8存在错误,如果以前iOS7上存在企业应用程序,则不会安装它们。控制台出现错误:

Ignore manifest download, already have bundleID: {bundle_id}

This can be fixed by temporarily changing the bundleID in the manifest file, but apple are aware as they marked the bug report as duplicated. After internal tests you an also fix the problem by resting the home screen layout General -> Reset -> Reset Home Screen Layout

这可以通过临时更改清单文件中的bundleID来解决,但是苹果注意到他们将错误报告标记为重复。在内部测试之后,你也可以通过休眠主屏幕布局一般->复位->复位主屏幕布局来修复问题

Fix 3

修复3

If you see the application get into the installing... stage as opposed to loading... almost certainly the problem is the embedded provisioning profile has expired, to fix the download you will need to re-archive you application with a new, updated provisioning profile.

如果您看到应用程序进入安装…与装载相反的阶段……几乎可以肯定的是,嵌入式配置文件已经过期,要修复下载,需要使用新的、更新的配置文件重新归档应用程序。

Fix 4

修复4

If you see the application get to the installing... stage and your provisioning profile is valid - Download the application whilst attached to your console. (Xcode 6 > Window > Devices > Bottom Left Button [v]), You will probably find that the install failed with Verification Stage Failed a little below will be the error message. In my case (Entitlements found that are not permitted by provisioning profile) - For this error goto developer.apple.com and update your App Identifier to include the correct service. For me App Groups needed to be enabled. Then regenerate your provisioning profile

如果您看到应用程序安装……stage和您的配置文件是有效的-下载应用程序同时附加到您的控制台。(Xcode 6 > Window > Devices > Bottom Left Button [v]),您可能会发现,安装失败,验证阶段失败,下面是错误消息。在我的例子中(提供配置文件不允许的权利)——对于这个错误,goto developer.apple.com并更新应用程序标识符以包含正确的服务。对于me,需要启用应用程序组。然后重新生成配置文件

#2


7  

I got the same problem today: I couldn't install one of my Enterprise app on IOs8 (but on IOs7). After many hours of search, I finally read this message on the device console :

今天我遇到了同样的问题:我无法在IOs8上(但在IOs7上)安装我的企业应用。经过几个小时的搜索,我终于在设备控制台看到了这个消息:

<Warning>: LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.ecaste.Crew-Desk

After a long time of searching, I finally read this post : http://support.hockeyapp.net/discussions/problems/26683-not-able-to-download-apps-ios8-beta-5-autoupdate-manually-etc

经过长时间的搜索,我终于读到了这篇文章:http://support.hockeyapp.net/discussions/26683(不能下载的应用)ios8-beta-5- autoupdate手册等

And by the end I just changed the name of the plist and the link to download the ipa (probably the second is not needed), and finally the app gets installed.

最后我更改了plist的名称和下载ipa的链接(可能不需要第二个),最后安装了应用程序。

Finally it seems that it was a Cache problem in IOs8 that considers the app was already installed (and that was not the case, I uninstalled it previously).

最后,IOs8中似乎存在缓存问题,认为应用程序已经安装(但我之前没有安装)。

Hope this help

希望这有助于

#3


7  

Same error here, I have tried changing bundle-id, bundle-version, plist... but the error remains.

同样的错误,我尝试过修改bundll -id、bundll -version、plist…但错误仍然存在。

I know that this is a bit tricky, but this is the only thing that works for me:

我知道这有点棘手,但这是唯一对我有用的东西:

http://support.hockeyapp.net/discussions/problems/30194-ios8-workaround-can-break-today-extension?full_site=1#comment_35141099

http://support.hockeyapp.net/discussions/problems/30194-ios8-workaround-can-break-today-extension?full_site=1 comment_35141099

  1. Connect the device to a Mac or PC
  2. 将设备连接到Mac或PC上
  3. Create a backup in iTunes

    在iTunes中创建一个备份

  4. Install iExplorer: http://www.macroplant.com/iexplorer/

    安装iExplorer:http://www.macroplant.com/iexplorer/

  5. Start iExplorer, then select the demo mode

    启动iExplorer,然后选择演示模式

  6. In the left sidebar, select Media, then open the Downloads folder, and delete all files in it

    在左侧边栏中,选择媒体,然后打开下载文件夹,并删除其中的所有文件。

  7. Restart the device

    重新启动设备

  8. Open the download page and install the latest version of your app

    打开下载页面并安装最新版本的应用程序

Indeed I omit the first two steps and it works perfect :)

事实上,我省略了前两步,它运行得非常完美:)

I hope this helps

我希望这有助于

#4


6  

Set Deployment Target Lower in

设置部署目标较低

Project > Build Setting > iOS Deployment Target

项目>构建设置> iOS部署目标

Targets > Build Setting > iOS Deployment Target

目标>构建设置> iOS部署目标

#5


3  

I just had this problem right now and it was caused by the mainfest plist (keys: full-size-image + display-image) are pointing at url image locations that do not exist.

我刚刚遇到这个问题,它是由mainfest plist(键:全尺寸图像+显示图像)指向不存在的url图像位置引起的。

It looks like that iOS6/iOS7 are able to handle if the images do not exist but iOS8 is more restrictive about this.

看起来iOS6/iOS7可以处理图像不存在的情况,但是iOS8对此有更多的限制。

#6


3  

Based on previous comments on the "ignore manifest download" message, we tried changing the bundle ID (ie com.companyName.AppName) in the .plist to have a unique name, to force iOS 8 to download/install it anyway. After it gets installed, it correctly replaces the existing copy.

基于之前关于“忽略清单下载”消息的评论,我们尝试更改.plist中的bundle ID(即com.companyName.AppName),使其具有唯一的名称,以强制iOS 8下载/安装它。安装后,它将正确地替换现有的副本。

I believe there are 2 problems going on here. If the .plist on the https website pointing to the enterprise certificate signed .ipa file has a bundle-identifier matching an application that's already installed, it won't overwrite it. The bundle-version is different on all our .plist files, so it should install it anyway. iOS 7 doesn't seem to have this issue. We plan to work around this issue by messing up the bundle-identifier in the plist so it's always unique to the build.

我相信这里有两个问题。如果https网站上的.plist指向已签名的企业证书。ipa文件有一个bundle标识符匹配已经安装的应用程序,它不会覆盖它。绑定版本在我们所有的.plist文件上都是不同的,所以无论如何都应该安装它。iOS 7似乎没有这个问题。我们计划通过将plist中的bundle标识符弄乱,从而解决这个问题,因此它总是惟一的构建。

The second issue is that when it is successfully installing the application, it doesn't switch to the home screen or indicate it's doing anything at all. In iOS 7, after selecting the "Install" button at the prompt, would switch to the Home screen where the icon would be dark, and a progress indicator would show downloading progress. Then the application would have a blue dot next to it indicating it was new. With iOS 8, it doesn't switch to the Home screen so it appears to be not working. You can manually go to the home screen, and you should see a dark icon with a progress indicator (now at a new location, because it doesn't know it will be replacing an existing application). After it downloads/installs successfully, it doesn't place the blue dot on the replaced application.

第二个问题是,当它成功安装应用程序时,它不会切换到主屏幕,也不会显示它在做任何事情。在ios7中,当在提示符处选择“Install”按钮后,会切换到主屏幕上,图标将是黑色的,一个进度指示符将显示下载进度。然后,应用程序的旁边会有一个蓝点,表示它是新的。在iOS 8系统中,它不会切换到主屏幕,因此看起来不工作。您可以手动进入主屏幕,您应该会看到一个带有进度指示的黑色图标(现在在一个新的位置,因为它不知道它将替换一个现有的应用程序)。在成功下载/安装之后,它不会将蓝色的点放在被替换的应用程序上。

Hope this helps.

希望这个有帮助。

#7


2  

This caused me huge pain. I needed to install a new app OTA on just employee phones outside of an MDM solution. I seemed to try every possible solution I could find on the internet and nothing worked. The closest I could get was for the app to get to the ‘loading’ stage. My solution has taken a week of work, trying different things. I’m not sure which worked in which order and which would have worked anyway, but here’s what I did:

这给我带来了巨大的痛苦。我需要在一个MDM解决方案之外的员工手机上安装一个新的应用OTA。我似乎尝试了在互联网上找到的所有可能的解决方案,但都没有成功。我能得到的最接近的是应用程序进入“加载”阶段。我的解决方案花了一个星期的时间,尝试不同的东西。我不确定哪种顺序和哪种顺序会起作用,但我所做的是:

In my case, I had previously built this app with a provisioning profile from a developer (as opposed to an Enterprise) account. In Xcode, I changed the Bundle Identifier to give it a new name, for example, it was originally com.mydomain.myapp and became com.mydomain.mysuperapp.

在我的例子中,我之前构建了这个应用程序,它提供了一个来自开发人员(而不是企业)帐户的配置文件。在Xcode中,我更改了Bundle标识符以给它一个新名称,例如,它最初是com.mydomain。myapp,成为com.mydomain.mysuperapp。

Ensured code signing in the app was valid and included the distribution certificate for the Enterprise account

确保应用程序中的代码签名有效,并包含企业账户的分发证书

I had used the wrong provisioning profile (one with no identities associated) so, because I chose ‘automatic’ it built fine but was never going to install. So, I changed code signing for Release to my distribution profile (rather than development profile)

我使用了错误的配置文件(没有关联的身份),因为我选择了“自动”,它构建良好,但永远不会安装。因此,我将发布的代码签名更改为发布配置文件(而不是开发配置文件)

Made sure the app was set with a deployment target low enough for the devices that will download it

确保该应用程序设置的部署目标足够低,可以下载它。

Archived the file & exported for Enterprise deployment

归档文件并导出用于企业部署

Manifest must contain the 57x57 png and the 512x512 png image otherwise the install doesn’t get past the ‘waiting’ stage

Manifest必须包含57x57 png和512x512 png图像,否则安装不会通过“等待”阶段

I created an index.html file that looked like this:

我创建了一个索引。像这样的html文件:

<html>
    <body>
        <a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/dw80wahlwupkyd5/MyApp.plist">
            Install Learning Chunks App from Dropbox</a>
    </body>
</html>

I had used a plist sample that I found online and it included some optional settings. When I left these in, the download didn’t work. I took those out. My manifest plist file was named: MyApp.plist and looked like this:

我使用了我在网上找到的plist示例,其中包含一些可选设置。当我把这些放进去的时候,下载没有效果。我把这些。我的清单plist文件被命名为:MyApp。看起来是这样的:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
        <array>
            <dict>
                <key>assets</key>
                <array>
                    <dict>
                        <key>kind</key>
                        <string>software-package</string>
                        <key>url</key>
                        <string>https://dl.dropboxusercontent.com/s/r1bljbkcows7sje/mysuperapp.ipa</string>
                    </dict>
                    <dict>
                        <key>kind</key>
                        <string>display-image</string>
                        <key>needs-shine</key>
                        <true/>
                        <key>url</key>
              <string> https://dl.dropboxusercontent.com/s/ujk9ipcv2naltut/logo57.png</string>
                    </dict>
                    <dict>
                        <key>kind</key>
                        <string>full-size-image</string>
                        <key>needs-shine</key>
                        <true/>
                        <key>url</key>
                  <string>https://dl.dropboxusercontent.com/s/gpebomok83mp9d5/logo512.png</string>
                    </dict>
            </array>
            <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>com.mydomain.mysuperapp</string>
                    <key>bundle-version</key>
                    <string>1.0</string>
                    <key>kind</key>
                    <string>software</string>
                    <key>title</key>
                    <string>My Super App</string>
                    <key>subtitle</key>
                    <string>My Super App</string>
                </dict>
        </dict>
        </array>
    </dict>
</plist>

I uploaded the MyApp.plist, index.html, logo57.png, logo512.png and MyApp.ipa to DropBox. I shared the index.html with those who need to download the app.

我上传了MyApp。plist,指数。html,logo57。png、logo512。png和MyApp。异丙醇DropBox。我共享索引。和那些需要下载的人一起使用html。

The user can then click on the shared link in the email and the app should install.

用户可以点击电子邮件中的共享链接,应用程序就应该安装了。

#8


1  

EDIT: The issue below is a red herring. As Dylan Hand mentioned above, the problem for me was that I had broken image links in the manifest file. Apparently this didn't matter for ios7 but ios8 won't finish the install if this is true. When I removed those reference, it worked perfectly.

编辑:下面的问题是转移注意力。正如上面迪伦•汉德(Dylan Hand)提到的,对我来说,问题在于我破坏了manifest文件中的图像链接。显然,这对ios7来说并不重要,但如果这是真的,ios8将无法完成安装。当我删除这些引用时,它运行得很好。


I have the same set of symptoms as OP (ie. "Unable to download app" message but only on iOS 8). When I try to validate (ie Organizer -> Validate), I receive the following message.

我有和OP一样的症状。“无法下载应用”消息,但只能在ios8上)。当我尝试验证(ie Organizer -> validate)时,我收到如下消息。

无法安装企业应用

This led me to this post: https://*.com/a/25757196/751136

这让我想到了这个帖子:https://*.com/a/25757196/751136。

It claims that re-generating your provisioning profiles should result in a new entitlement called beta-reports-active. When I try to do this on in my enterprise account, the new profiles DO NOT have the new entitlement. However, when I regenerate provisioning profiles in another non-enterprise account, the new profiles DO have that field.

它声称重新生成配置文件应该产生一个新的权限,称为beta报告-active。当我尝试在我的企业账户中这样做时,新的概要文件没有新的授权。但是,当我在另一个非企业帐户中重新生成配置文件时,新的配置文件确实有这个字段。

#9


1  

If you build your iOS apps with a build script and you were previously using PackageApplication with the --sign flag then that may be causing problems. The --sign flag doesn't work any longer when building on 10.10 and removing it got all of our iOS apps installing again.

如果你用一个构建脚本构建你的iOS应用,而你之前使用的是带有-sign标志的PackageApplication,那么这可能会引起问题。当在10.10上构建并删除它时——标志不再工作,我们所有的iOS应用程序再次安装。

see: https://devforums.apple.com/thread/251624?tstart=0

参见:https://devforums.apple.com/thread/251624?tstart=0

#10


1  

This issue drove me crazy, Only this helped for Enterprise Distribution: Perform all the required build settings and click on “Archive”. Perform the Enterprise Distribution Process. You will be shown Organizer window. On Mac machine locate the .xcacrchive file by selecting KRelease and choosing “Show in finder”.

这个问题让我抓狂,但这对企业发行版有帮助:执行所有必需的构建设置并单击“Archive”。执行企业分发流程。你将被显示为组织者的窗口。在Mac机器上,通过选择KRelease和选择“Show in finder”找到.xcacrchive文件。

User is navigated to the folder where the .xcarchive file is located. Right-click the .xcarchive file and select “Show Package Contents” option.

用户被导航到.xcarchive文件所在的文件夹。右键单击.xcarchive文件并选择“显示包内容”选项。

In the opened finder window go to Products/Applications Select and copy the .app file

在打开的finder窗口中,转到Products/应用程序,选择并复制.app文件

Create a new folder somewhere on your disk with the name “Payload” Note: The folder name is case-sensitive. Paste the copied .app file into “Payload” folder. Compress the Payload folder to get Payload.zip file Rename the Payload.zip file to .ipa and bundle it with your .plist Done !!! the .ipa file is ready to be installed on the devices registered in the provisioning profile used in the .xcarchive generation.

在磁盘的某个地方创建一个名为“有效负载”的新文件夹注意:文件夹名称区分大小写。将复制的.app文件粘贴到“有效负载”文件夹中。压缩有效载荷文件夹以获得有效载荷。压缩文件重命名有效负载。将文件压缩到。ipa,并将它与你的。plist捆绑完成!!ipa文件可以安装在.xcarchive生成中使用的配置文件中注册的设备上。

#11


0  

I have sovled this problem.

我解决了这个问题。

  1. Since Apple has changed provisioning profiles, please RENEW the provisioning profiles (File 1) and copy it into the "Payload/".
  2. 由于苹果已经更改了配置文件,请更新配置文件(文件1)并将其复制到“有效负载/”中。
  3. Make sure there's a Entitlements.plist (File 2) in the "Payload/", and this plist file MUST be PLAIN TEXT which is created by a text editor.
  4. 确保有权利。plist(文件2)在“有效负载/”中,这个plist文件必须是纯文本,由文本编辑器创建。
  5. Make sure there's a Info.plist (File 3) in "Payload/", and this is created by XCode;
  6. 确保有信息。plist(文件3)在“有效载荷/”中,由XCode创建;
  7. Copy the Entitlements.plist (File 4) anywhere else except the "Payload/".
  8. 复制权利。plist(文件4)除了“有效载荷/”之外的任何地方。
  9. Be sure "Bundle identifier" in File 1-4 should be the same.
  10. 确保文件1-4中的“Bundle identifier”相同。
  11. Use this Entitlements.plist (File 4) to Re-Sign the IPA file.
  12. 使用这种权利。plist(文件4)重新签署IPA文件。

You can resign it like this

你可以这样辞职

codesign -fs "iPhone Distribution: Your Company Name" --entitlements=/Users/SenTR/Downloads/codesign/Entitlements.plist /Users/SenTR/Downloads/codesign/Payload/Your_Project_name.app

Entitlements.plist sample

福利。plist样本

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>application-identifier</key>
        <string>PREFIX.yourappBundleID</string>
        <key>aps-environment</key>
        <string>production</string>
        <key>get-task-allow</key>
        <false/>
        <key>keychain-access-groups</key>
        <array>
            <string>PREFIX.yourappBundleID</string>
        </array>
    </dict>
</plist>

If you know Chinese, this will be helpful.

如果你懂中文,这将会很有帮助。

http://hennry.com/2015/03/fail-to-resign-ipa-since-ios8/

http://hennry.com/2015/03/fail-to-resign-ipa-since-ios8/

#12


0  

These answers are valid things to check, but in case anyone else has tried them like I did and STILL had problems, make sure your app contains the proper plist setting that allows the exported archive to be compressed correctly. This is what bit us, even after following all the steps above. Also of note, the answer that talks about ensuring the web site's plist contains valid image links doesn't seem to affect anything, at least for us using XCode 6.3 to export archives. It worked/didn't work irrespective of those links being correct. It's obviously a good idea to have that info correct though. Another interesting note is if we exported using XCode 5, the ipa's were ALWAYS in the correct format (see linked SO article above); it seems XCode 6+ now is picky about it.

这些答案是有效的,但如果其他人像我一样尝试过,并且仍然有问题,请确保您的应用程序包含适当的plist设置,允许导出的归档文件被正确地压缩。这就是我们所需要的,即使遵循了上面所有的步骤。同样值得注意的是,关于确保web站点的plist包含有效的图像链接的答案似乎并没有影响任何东西,至少对于我们使用XCode 6.3来导出存档是如此。不管那些链接是否正确,它都可以工作。很明显,有这个信息是正确的。另一个有趣的注意是,如果我们使用XCode 5导出,ipa的格式总是正确的(请参阅上文的链接SO文章);XCode 6+现在似乎很挑剔。

#13


0  

My problem was corrected by removing all built outut, then rebuilding completely.

我的问题通过移除所有的建造,然后完全重建得到了纠正。

#14


0  

Yet another possible source of this installation issue is a case mismatch between the project and the provisioning profile (especially likely with automated or other command-line builds). The bundle IDs are case-sensitive. For example, if app bundle identifier in the provisioning profile is com.example.MyApp and the project configuration and/or Info.plist uses com.Example.Myapp, Xcode 7.1 will fail with a code signing error or fall back to a generic provisioning profile (one with * bundle id, which might itself be an issue) but xcodebuild command will succeed. Jenkins will also upload the erroneously signed build to Hockeyapp for example. The build will download to client devices but won't install because of the case mismatch.

然而,这个安装问题的另一个可能来源是项目和供应配置文件之间的情况不匹配(特别是对于自动化或其他命令行构建)。bundle id是区分大小写的。例如,如果配置文件中的app bundle标识符是com.example。MyApp以及项目配置和/或信息。plist com . example。使用Myapp, Xcode 7.1将会在代码签名错误中失败,或者退回到一个通用配置文件(有* bundle id,这本身可能是一个问题),但是xcodebuild命令会成功。Jenkins还会将错误签名的构建上传至Hockeyapp。构建将下载到客户端设备,但由于案例不匹配而不会安装。

Therefore,

因此,

Fix 0

Check that the application bundle identifier is set up the same way both in the project and on Apple Developer portal.

检查应用程序包标识符在项目中和在Apple Developer portal中以相同的方式设置。

The simplest way to avoid this particular issue is to always use lower-case characters in your bundle identifiers. Copying bundle id from Apple Developer portal and pasting it into the project build settings (PRODUCT_BUNDLE_IDENTIFIER) also helps of course.

避免这个特殊问题的最简单方法是始终在包标识符中使用小写字符。从Apple Developer portal复制bundle id并将其粘贴到项目构建设置(PRODUCT_BUNDLE_IDENTIFIER)当然也有帮助。

Though I had the issue with an enterprise account, it might in fact be not specific to this type of distribution.

虽然我有一个企业帐户的问题,但它可能不是特定于这种类型的发行。

Fix 0´

Make sure to check out Apple's technical note called Installation Failure Troubleshooting for iOS.

请务必查看苹果的技术说明,即iOS的安装故障排除。

#15


0  

My issue was that I had a space both in my ipa filename, and the reference to that ipa in my plist. Removing the space in both allowed the installation

我的问题是,我的ipa文件名中都有一个空格,plist中也有对ipa的引用。删除两者中的空间都允许安装