Share via


iOS ビルドのトラブルシューティング

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

詳細については、サポートタイムラインと代替手段に関するページを参照してください。

Xcode スキームが見つかりません

または を xcworkspace ビルドするには、 xcproject 共有 Xcode スキームが必要です。 Xcode スキームはローカルに保存されるため、Xcode はそれらにアクセスできます。 既定では、スキームは他のユーザーと共有されず、ソース管理に含まれません。

Xcode でスキームを共有するには、次の手順に従います。

  1. [ 製品 > スキーム] [スキーム > の管理] の順に選択します
  2. xcproject/xcworkspace のスキームを 共有として設定します。
  3. スキームのコンテナーは、ビルドする Xcode プロジェクトまたはワークスペースに設定する必要があります。
  4. ファイルを.xcschemeソース管理に追加し、App Center からアクセスできるようにリモート リポジトリにプッシュします。

スキームを共有としてする

警告

フォルダーが xcshareddata/xcschemes/ ファイル内にないことを確認します .gitignore 。 これは、Xcode によってファイルが格納される場所 .xcscheme です。 App Center は、これらのファイルを使用してプロジェクトを適切にビルドします。 を別の .xcscheme フォルダーにエクスポートするだけでは機能しません。

iOS ビルドが "clang: error: linker command failed with exit code 1" で失敗する

このエラーは、ワークスペースではなく xcodeproj を使用して App Center をビルドすることによって発生する可能性があります。 プロジェクトに CocoaPods を追加する場合は、App Center でビルドするときにワークスペースの使用に切り替えます。

インジケーター: ビルド ログで次の行を探します。

ld: library not found for -lPods-GarageController
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** ARCHIVE FAILED **

このエラーを修正するには、プロジェクトのビルド構成を開き、[ 保存] をクリックします。 App Center では、今後のビルドに合わせてワークスペースが自動的に正しく選択されます。

iOS 署名に関する問題の説明

注意

ascii 以外の文字を使用する署名 ID は、ビルドではサポートされていません。

プロビジョニング プロファイルと証明書の処理は、困難なプロセスになる可能性があります。 次のヒントは、iOS アプリに正常に署名するのに役立ちます。

  1. 署名の変更をプロジェクトにプッシュした後、App Center でビルド構成を保存します。 App Center では、任意のブランチのビルド構成に Xcode プロジェクトの 2 つの値が格納されますCODE_SIGN_STYLE。 と DEVELOPMENT_TEAM (フォルダー内のファイルに.xcodeprojproject.pbxproj設定されます)。 手動署名と自動署名を変更したり、開発チームを切り替えたりするたびに、変更をプッシュした後にビルド構成を App Center に保存してください。 プッシュ後に保存しないと、ビルドが署名エラーで失敗する可能性があります。

  2. 自動署名を使用する場合は、正しいプロビジョニング プロファイルをドラッグ アンド ドロップします。 Xcode の [ 署名] の下にあるターゲットの [全般] タブで、[ Xcode マネージド プロファイル] の横にある情報アイコンをクリックします。 その後、プロファイル情報を含むポップオーバーが表示されます。 左上の PROV アイコンをクリックして、目的の場所にドラッグします (以下に示すように)。

  3. 手動署名と自動署名を使用する場合は、App Center で現在サポートされているオプションをメモしておきます。 App Center では、手動の iOS アプリ署名が完全にサポートされているため、任意の種類のプロファイルまたは証明書を使用できます。 App Center にアップロードするプロビジョニング プロファイルと証明書が、プロジェクトで指定した内容と一致することを確認します。 [Xcode でのサインインの 自動管理 ] を有効にした場合、App Center では、開発者証明書とプロファイルを使用したアプリ署名がサポートされます (ディストリビューションを使用しない)。 App Center にアップロードする場合は、Xcode から自動生成されたプロビジョニング プロファイルを使用する必要があります。

まだ問題が発生していますか?

トラブルシューティングを行い、ビルドのサインアップと実行を行うには、次の手順をお勧めします。

  1. Xcode プロジェクトで手動署名を設定し、ローカルで動作していることを確認します。
  2. 検証が完了したら、変更をコミットしてリポジトリにプッシュします。
  3. Xcode ターゲットで選択したプロビジョニング プロファイルと証明書を準備し、App Center ビルド構成にアップロードします。
  4. 最も重要なのは、新しい証明書とプロファイルをビルド構成に保存する前に、プロジェクトの最新の状態をプッシュしたことを確認することです。

ipa ファイルはどこにありますか?

Xcodebuild は、xcrun とは異なり、ビルドが署名されていない場合、ファイルの生成 .ipa を許可しません。 署名されていないビルドでは、代わりに が .xcarchive 生成されます。 署名されていないビルドの成果物を .ipa 含むファイルを生成する場合は、 ファイルを .xcarchive 使用して生成できます。

xcode を使用した xcarchive ファイル

Xcode を使用する iOS アプリが無効なビットコード バージョン エラーで失敗する

でビルドが失敗した error: Invalid bitcode version (Producer: '802.0.38.0_0' Reader: '800.0.42.1_0')場合は、プロジェクトよりも新しいバージョンの Xcode によってビルドされたライブラリまたはポッドを使用しています。 新しいバージョンの Xcode を使用するように App Center でプロジェクトとビルド構成を更新するか、問題のあるライブラリの代替バージョンに切り替えることができます。これは、一致するバージョンの Xcode でコンパイルされます。

iOS アプリでテストを実行できない

テストが失敗する一般的な理由は、リンカー コマンドが次のようなエラーに達した場合です。

 ld: directory not found for option iPhoneSimulator10.3.sdk/Developer/Library/Frameworks 
  ❌ ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XCTest.framework/XCTest) for architecture x86_64 
  ❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)  

このエラーの原因として考えられるのは、 Apple Mach-O リンカー のリンクの種類が 静的ライブラリに設定されていないことです。 アプリを正常にビルドしてテストするには、テスト ターゲットApple Mach-O リンカーのリンクの種類が静的ライブラリに設定されていることを確認します。

Apple Mach-O リンカー

Xcode 9 で CocoaPods を使用して iOS ビルドが失敗し続けています。どうすればよいですか?

これは、Pods プロジェクトの署名構成がメイン プロジェクトの署名構成と異なるためである可能性があります。 ポッドはリポジトリにチェックインされていますか? その場合、Pods プロジェクトは Main プロジェクトと同じ署名方法を使用する必要があります。

ポッドがチェックインされていない場合は、異なる問題が発生する可能性があります。 ビルド前スクリプトに関するこの GitHub イシューでは、いくつかの回避策を使用できます。

プロジェクトを Xcode 10 ベータ版にアップグレードしたので、ターゲット間の依存関係のエラー Cycle でアプリのビルドに失敗する

Xcode 10 の新しいビルド システムは、ビルド内の依存関係サイクルを検出し、存在する場合はビルドに失敗します。

ビルドを修正する方法の詳細については、 一般的な種類の依存関係サイクルの解決に関する Apple のドキュメントを参照してください