Xamarin.iOS のテストと展開 - トラブルシューティング

コード署名とプロビジョニング

iOS ではコード署名とプロビジョニングは非常に厄介な場合があるため、コード署名証明書とプロビジョニング プロファイルが整理されていることを確認することが重要です。

  • 大規模なチームは、Xcode で [Fix issue]\(問題の修正\) ボタン (下図) の使用は控える必要があります。

    The Fix Issues dialog

    これにより新しいプロビジョニング プロファイルと証明書が作成されます。 最良の場合でも、チーム メンバーがボタンをクリックするたびに、プロビジョニング プロファイルが作成され、プロファイルによる混乱が発生します。 最悪の場合、社内の他の人全員の証明書が無効になり、アプリの停止を引き起こします。

  • Keychain Access は整理された状態を保ち、有効期限が切れた証明書とプロファイルを削除します。 Enterprise 証明書は 3 年間有効で、他の証明書は 1 年間有効です。 証明書は更新できないため、古い証明書が期限切れになる直前に新しい証明書を作成する必要があります。 古い証明書を失効させて削除し、新しい証明書でアプリを再署名します。

  • 新しいプロビジョニング プロファイルがインストールされたら、古いプロビジョニング プロファイルを削除します。 これは Visual Studio for Mac が使用するプロファイルを決定しなければならない立場にないことを意味します。 これを実現するには、最初に、Apple Developer Center でプロファイルを削除してから、[Preferences] > [Your Account] > [View Details...] の順に移動します。プロビジョニング プロファイルを選択し、[Show in Finder]\(Finder で表示\) をクリックします。 Mac ファイル システム内のプロファイルの場所が表示されます。ここで、Finder を使用してプロファイルを削除できます。

  • 必要なすべての証明書および対応する秘密キーが使用できることを確認します。 チームごとに開発者の証明書 (独自のデバイスにアプリをインストールするため) と配布証明書 (その他のデバイスにインストールするため) が必要になります。

  • 新しいプロビジョニング プロファイルまたは証明書をインストールする場合は、Xcode と、Visual Studio for Mac または Visual Studio を再起動します。

TestFlight

ときには、テストが計画どおりにスムーズに行かない場合があります。 次の手順は、TestFlight での問題の解決に役立つ場合があります。

  • TestFlight は iOS 8 以降を対象としたアプリにのみ使用できます。

  • ベータ版の権利を持つ App Store の配布プロファイルがある必要があります。

  • [New iOS App submission]\(新規 iOS アプリの提出\) ウィンドウには、アプリの Info.plist とまったく同じ情報が含まれる必要があり、すべてのセクションが入力されている必要があります。 TestFlight にアップロードする前に、アプリのアイコンを指定する必要があります。

  • 新しいビルドをアップロードするときには、iTunes Connect にビルドが表示されるまでに 1 - 5 分程度かかります。

  • アプリの各バージョンに対し、[TestFlight Beta Testing]\(TestFlight のベータ版のテスト\) スイッチをオンにする必要があります。

  • 内部のテスト担当者でもある開発者チームの各メンバーには、[Internal Tester]\(内部のテスト担当者\) スイッチがオンになっている必要です。

  • 別の iTunes Connect アカウントに所属しているまたはアカウントを所有しているユーザーは、内部のテスト担当者になることはできません。 これらのユーザーは外部テスト担当者として追加することしかできません。

  • 内部ユーザーと外部ユーザーは、別々に追加、選択、招待されます。 各リストは個別に管理する必要があります。

  • 外部のテスト担当者に配布される各ビルドは、Apple によって承認される必要があります。 ビルドのバージョンが変更された場合は、Apple による新しいベータ版のレビューが必要です。 ビルド番号が変更された場合、レビューは省略できます。

  • メタ データは、外部のテスト担当者に配布されるビルドに追加する必要があります。 これには、[My Apps] > [Prerelease] でビルド番号をクリックしてアクセスできます。

  • 1 日にレビューのために提出できるのは、2 つのビルドだけです。 バージョンの変更にはレビューが必要になるため、バージョン番号は 1 日に 2 回しか変更できないことを意味します。

.app バンドルを自動的に Windows にコピーする

Visual Studio や Mac Build エージェントで iOS アプリをビルドするとき、.app バンドルは Windows マシンにコピーされません。 Visual Studio 7.4 用の Xamarin ツールでは新たに CopyAppBundle プロパティが加わりました。このプロパティによって CI ビルドは .app バンドルを Windows にコピーできます。

この機能を利用するには、この機能を適用するプロパティ グループの下で .csproj に CopyAppBundle プロパティを追加します。 たとえば、次の例では、iPhoneSimulator をターゲットにするデバッグ ビルドのために .app バンドルを Windows コンピューターにコピーする方法を確認できます。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    <CopyAppBundle>true</CopyAppBundle>
</PropertyGroup>