使用 "Automatically manage signing"/allowProvisioningUpdates 时何时更新配置文件?

When are profiles renewed when using "Automatically manage signing"/allowProvisioningUpdates?

我有一个企业分布式应用程序,它是使用 xcodebuild 在构建服务器上构建的。去年我们进行了更改,使用带有“-allowProvisioningUpdates”标志的 "Automatically manage signing" 功能。使用此技术可以很好地生成供应配置文件,但我们将使用此配置文件长达一年,并将在 31 天后过期。

最初我的印象是使用 "allowProvisioningUpdates" 会导致在每个新版本上重新生成供应配置文件,但如果是这样的话,它就不会过期。我们需要使用更新的配置文件进行新构建,这样我们的用户就不会在几个月内留下一个损坏的应用程序。但是,生成的配置文件未显示在 Apple 开发人员中心的 "Certificates, Identifiers & Profiles" 部分,我找不到任何方法强制 Xcode 或 xcodebuild 生成新的配置文件。我怎样才能强制这种情况发生以确保我们的用户没有停机时间?当配置文件最终到期时会发生什么?

尝试在 Dev 门户手动创建第二个配置文件,从构建服务器的 ~/Library/MobileDevice/Provisioning Profiles 中删除旧配置文件,下载并安装新配置文件。

我联系了 Apple,他们是这样说的:

Automatically manage signing on Xcode only creates a new provisioning profile after the expiration date of the previous.

That is the best option for new builds that needs to be submitted to App Store because there is no downtime from current users when the provisioning profile.

As you are developing in-house apps, if you let the provisioning profile expire to automatically sign for your new build (with new provisioning profile auto-created) your users will not be able to access you app.

因此答案似乎是我们不应该为 in-house/enterprise 分发使用自动签名,而应该仅用于 App Store 部署。

我在内部分发的一些应用程序中遇到了同样的问题...最终对我有用的解决方案是从开发人员中心删除应用程序 ID,然后让 Xcode 重新- 创建它和任何随附的配置文件。不过要记住的一件事是,如果您的开发人员中心只有 1 个应用程序 ID,那么删除它也会删除您的签名证书以及配置文件。我们有几个应用程序依赖于我们的证书,所以它没有被删除。但是,有关即将过期的配置文件的主要问题已解决。

虽然对于我们这些更喜欢所有项目都带有脚本的人来说很烦人,但事实证明手动 运行 在 'device' 不在自动配置文件中的机器上构建将更新个人资料。

无论我是使用脚本从命令行 运行 archive/export 还是从 xcode GUI 运行 archive/export,这对我都有效。

没有给出任何提示,它只是默默地更新和工作。

由于 Apple 在上面回复了我们,所以这可能是一个新的 feature/fix Xcode 10.1,这就是我今天使用的。