ビルドを新しいApple所有およびiTunes Connect統合TestFlightにアップロードすると、次のログが表示されます。
警告ITMS-90191:「ベータエンタイトルメントがありません。アプリにbeta-reports-activeエンタイトルメントが含まれていません。ベータテスト用にこのビルドをTestFlight経由で配布する場合は、新しく生成されたプロビジョニングプロファイルでこのアプリを再ビルドしてください。」
ITunes Connectでビルドを見ると、次の警告も表示されます。
TestFlight Beta Testingを使用するには、ビルドX.Y.Zに正しいベータ資格が含まれている必要があります。詳細については、FAQを参照してください。
リンクされたFAQ=状態:
プレリリースビルドに正しいベータ資格が含まれていない場合はどうすればよいですか?
TestFlightアプリを使用してプレリリースビルドをテストするには、ベータ版の資格を含むApp Store Distribution Provisioningプロファイルで署名する必要があります。 iOS Developer Centerで生成された新しい配布プロビジョニングプロファイルには、ベータ版の資格が自動的に含まれます。
TestFlight Beta Testingの起動前に生成された既存のディストリビューションプロビジョニングプロファイルがある場合、プロファイルを再生成する必要があります。
問題は、新しく作成されたApp Store Distribution Provisioning Profileを使用するIamです。私はそれを次のように作成しました:
ダウンロードしたプロビジョニングプロファイルのソースを調べると、次のように表示されます。
<key>Entitlements</key>
<dict>
// ...
<key>aps-environment</key>
<string>production</string>
<key>beta-reports-active</key>
<true/>
// ...
したがって、プロビジョニングプロファイルはproduction
に設定され、doesにはbeta-reports-active
資格。
ただし、このビルドがTestFlightにアップロードされると、iTunes Connectは引き続き文句を言います。
この問題を修正する方法についてのアイデアはありますか?これはAppleバグですか?
rdar:// 20128048
まず、App Store Distribution Provisioning Profileを使用していることを確認してください。これはおそらく、Apple TestFlight以前のビルドに署名するために使用していたアドホックディストリビューションプロビジョニングプロファイルのdifferentプロビジョニングプロファイルです。
エラーITMS-90191afterをヒットし続けましたApp Store Distribution Provisioning Profileに切り替えました。 Xcodeプロジェクトのターゲットのbeta-reports-active
ファイルにEntitlements.plist
キーを追加して問題を修正しました。
beta-reports-active
キーはプロビジョニングプロファイルに含める必要があります[〜#〜] and [〜#〜]ターゲットの資格。
TargetName.entitlements
:
<?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>beta-reports-active</key>
<true/>
// ...
</dict>
</plist>
ターゲットに資格を追加した後、ITMS-90191
警告なしでビルドをiTunes Connect TestFlightに正常にアップロードできます。
AppStoreプロビジョニングプロファイルを使用してこれを解決しました。デバイス上で正常に配布およびインストールできました。通常どおりAdHocプロビジョニングプロファイルを使用していて、突然このエラーが発生し始めました。本当にイライラするもの。
Plistファイルを手動で編集してもうまくいきませんでした。
既存のプロファイルの編集とファイルの生成も今回は機能しませんでした。
しかし、joehlと同じように、新しいプロビジョニングプロファイルを作成すると、実際に修正されました。したがって、まったく新しいプロビジョンプロファイルを作成すれば、ビジネスに戻ることができます。これはTestFlightの不具合のように見えます。
これをxcodebuildスクリプトに追加することで修正できました。
xcodebuild ... PROVISIONING_PROFILE=<Provisioning Profile Id>
コードサインID in ビルド設定を設定すると、この問題も手動で修正できるように見えます。
簡単な解決策:以前のプロビジョニングプロファイルを削除し、新しいプロファイルを作成します。私の問題を解決します。 :)
次のコマンドでentitlements.plist
を編集しました:/usr/libexec/PlistBuddy -c "Add :beta-reports-active bool true" entitlements.plist
Fastlaneを使用している場合は、sigh
ステップでad-hocをfalseに設定してください。そうしないと、TestFlight配布に適さないad-hocプロファイルが生成されます。すなわち:
sigh(
adhoc: false,
team_id: "XXXXXXXXX"
)