ios Crashlytics 的 Beta 版无法在测试人员的设备上安装构建

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30864835/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 06:27:19  来源:igfitidea点击:

Beta from Crashlytics fail to install build on testers' devices

iostestingprovisioning-profilecrashlyticscrashlytics-beta

提问by bluenowhere

I'm sending my app to testers with Beta from Crashlyticswhich is an amazing tool to do app testing.

我正在将我的应用程序发送给带有来自 Crashlytics 的 Beta 版的测试人员,这是进行应用程序测试的绝佳工具。

I had every new tester's device UDID registered in my developer account and then distribute a new build.

我在我的开发人员帐户中注册了每个新测试人员的设备 UDID,然后分发一个新版本。

My testers got email invitation and accessed app's installation which could not be completed on their device. They kept seeing an alert showing up with message:

我的测试人员收到电子邮件邀请并访问了无法在他们的设备上完成的应用程序安装。他们不断看到一条带有消息的警报:

Unable to download app - MyApp could not be installed at this time - Done / Retry

无法下载应用程序 - 此时无法安装 MyApp - 完成/重试

Testers' testing status are "installed" in my Crashlytics dashboard but they're actually not able to finish installation.

测试人员的测试状态在我的 Crashlytics 仪表板中为“已安装”,但他们实际上无法完成安装。

Please help me find any possible factor causing this problem.

请帮助我找到导致此问题的任何可能因素。

回答by tboyce12

Perhaps the provisioning profile embedded in the build has been invalidated. Use Xcode to create a new archive, then use Fabric to upload a new build with that archive.

也许嵌入在构建中的配置文件已失效。使用 Xcode 创建一个新存档,然后使用 Fabric 上传带有该存档的新构建。

Discussion:

讨论:

In my case, I had deleted the provisioning profile in the Apple Developer Member Center that had been embedded in each of my Fabric Beta builds. This caused the app testers had previously installed to immediately crash when they tried to launch it (embarrassing). It also caused the "Unable to download app - MyApp could not be installed at this time - Done / Retry" issue when testers tried to (re)install the app via Fabric Beta. Uploading a new build with my new provisioning profile embedded fixed the issue (each tester had to install the new build).

就我而言,我已经删除了嵌入在我的每个 Fabric Beta 版本中的 Apple Developer Member Center 中的配置文件。这导致之前安装的应用测试人员在尝试启动时立即崩溃(尴尬)。当测试人员尝试通过 Fabric Beta(重新)安装应用程序时,它还导致“无法下载应用程序 - 此时无法安装 MyApp - 完成/重试”问题。上传一个嵌入了我的新配置文件的新版本修复了这个问题(每个测试人员都必须安装新版本)。

回答by Stuart P.

I've run into this problem back on iOS8 and just recently saw it again for iOS9, the only thing that solved the install issue was for my users to delete any previous version that they had downloaded, restart their phone, and try again.

我在 iOS8 上遇到了这个问题,最近又在 iOS9 上看到了这个问题,解决安装问题的唯一方法是让我的用户删除他们下载的任何以前的版本,重新启动手机,然后重试。

You can also verify with them if Crashlytics properly installed on their iDevice, I've seen more than once where the configuration profile caused the issue, it's worth removing that (Settings -> General -> Configuration Profile (towards the bottom)) and retrying the install.

您还可以向他们验证 Crashlytics 是否正确安装在他们的 iDevice 上,我已经不止一次看到配置文件导致问题的地方,值得删除它(设置 -> 常规 -> 配置文件(朝底部))并重试安装。

回答by Jacek Lampart

This is usually caused by one of two problems:

这通常是由以下两个问题之一引起的:

  1. Incorrect provisioning profile/code signing settings. Double- and triple-check that the following settings are the same for the project and the provisioning profile: bundle identifier, development vs. distribution, adhoc.
  2. Caching - sometimes, even when you've done everything correctly, things still just go awry. In such cases, you can try: deleting the previous version of the app from your phone, cleaning your project, deleting and re-downloading provisioning profiles, and building the app again.
  1. 配置文件/代码签名设置不正确。双重和三次检查项目和配置文件的以下设置是否相同:包标识符、开发与分发、临时。
  2. 缓存 - 有时,即使您已正确完成所有操作,事情仍然会出错。在这种情况下,您可以尝试:从手机中删除之前版本的应用程序,清理您的项目,删除并重新下载配置文件,然后重新构建应用程序。

回答by xdeleon

enter image description here

在此处输入图片说明

I tried the normal route of checking for proper certs and also deleting the app and provisioning profile along with rebooting device. In my case it was installing on device A and not device B. Device A was older iPhone 5c running iOS 9 and device B was newer iPhone 8 running iOS 11.x. When I archived the app for distribution I was selecting device A during the archive. Once I selected "Generic Device" it worked. But I'm sure I've built in the past selecting a specific device instead of generic and it worked. I was using Xcode 8.2, but I don't believe the Xcode version matters.

我尝试了检查正确证书的正常途径,并在重新启动设备的同时删除了应用程序和配置文件。就我而言,它安装在设备 A 而不是设备 B 上。设备 A 是运行 iOS 9 的较旧的 iPhone 5c,设备 B 是运行 iOS 11.x 的较新的 iPhone 8。当我归档要分发的应用程序时,我在归档期间选择了设备 A。一旦我选择了“通用设备”,它就起作用了。但我确信我过去选择了特定设备而不是通用设备并且它有效。我使用的是 Xcode 8.2,但我认为 Xcode 版本并不重要。

回答by thekingoftruth

RubyMotion Solution

RubyMotion 解决方案

For me, it was because I was using a development distribution profile, but with the wrong entitlements. Well, entitlement, singular.

对我来说,这是因为我使用的是开发分发配置文件,但权限错误。好吧,权利,单数。

I still had the 'beta-report-active' entitlement enabled, which was not included with the development distribution profile I am using. It is instead included with the production distribution profile (which is needed to distribute to TestFlight). However, I just wanted to deploy to my local phone, and not air my dirty app laundry to my entire internal test group, so this is where I found myself.

我仍然启用了“beta-report-active”权利,但我正在使用的开发分发配置文件中并未包含该权利。它包含在生产分发配置文件中(需要分发到 TestFlight)。然而,我只是想部署到我的本地电话,而不是将我脏的应用程序洗衣房传播给我的整个内部测试组,所以这就是我发现自己的地方。

In any case, removing the 'beta-report-active' entitlement fixed my issue.

无论如何,删除“beta-report-active”权利解决了我的问题。