Xcodebuildを使用してビルドサーバー上に構築されたエンタープライズ分散アプリがあります。昨年、「-allowProvisioningUpdates」フラグを使用して「署名を自動的に管理する」機能を使用するように変更しました。プロビジョニングプロファイルはこの手法を使用して正常に生成されますが、このプロファイルは最大1年で、31日で期限切れになります。
当初、「allowProvisioningUpdates」を使用すると、新しいビルドごとにプロビジョニングプロファイルが再生成されるという印象を受けましたが、その場合は有効期限が切れません。ユーザーが数か月以内に壊れたアプリを残さないように、更新されたプロファイルを使用して新しいビルドを実行する必要があります。ただし、生成されたプロビジョニングプロファイルは、Apple Developer Centerの "Certificates、Identifiers&Profiles"セクションに表示されません。また、Xcodeまたはxcodebuildに新しいプロビジョニングプロファイルを強制的に生成させる方法が見つかりません。 。ユーザーのダウンタイムを防ぐために、これを強制するにはどうすればよいですか?プロファイルが最終的に期限切れになるとどうなりますか?
私はAppleに連絡しました、そしてこれが彼らが言わなければならなかったことです:
Xcodeでのサインオンを自動的に管理すると、前の有効期限が切れた後にのみ新しいプロビジョニングプロファイルが作成されます。
これは、プロビジョニングプロファイル時に現在のユーザーからのダウンタイムがないため、AppStoreに送信する必要がある新しいビルドに最適なオプションです。
社内アプリを開発しているときに、プロビジョニングプロファイルを期限切れにして、新しいビルドに自動的に署名すると(新しいプロビジョニングプロファイルが自動作成されます)、ユーザーはアプリにアクセスできなくなります。
したがって、答えは、社内/企業の配布に自動署名を使用するのではなく、AppStoreの展開にのみ使用する必要があるということのようです。
社内で配布しているいくつかのアプリで同じ問題が発生していました...最終的に機能したソリューションは、開発者センターからアプリIDを削除し、Xcodeにそれと付随するプロビジョニングプロファイルを再作成させることでした。ただし、開発者センターにアプリIDが1つしかない場合は、それを削除すると、プロビジョニングプロファイルとともに署名証明書も削除されることに注意してください。証明書に依存するアプリがいくつかあるため、削除されませんでした。ただし、間もなく期限切れになるプロビジョニングプロファイルに関する主な問題は解決されました。
スクリプトを含むすべてのアイテムをはるかに好む私たちにとっては迷惑ですが、「デバイス」が自動プロビジョニングプロファイルにないマシンでビルドを手動で実行すると、プロファイルが更新されることがわかりました。
これは、スクリプトを使用してコマンドラインからアーカイブ/エクスポートを実行したか、xcode GUIから実行したかに関係なく、今はうまくいきました。
プロンプトは表示されず、サイレントに更新されて機能しました。
Appleは上記で私たちに返信したので、おそらくこれは私が今日取り組んでいるXcode10.1の新機能/修正です。
開発ポータルで2番目のプロビジョニングプロファイルを手動で作成し、ビルドサーバーの~/Library/MobileDevice/Provisioning Profiles
から古いプロファイルを削除し、新しいプロファイルをダウンロードしてインストールしてみてください。