メインコンテンツまでスキップ
バージョン: v8

iOS トラブルシューティングガイド

100%完璧な Native 管理ツールを作成するのはほぼ不可能です。遅かれ早かれ iOS ワークフローの一部でさまざまな問題に遭遇するでしょう。

このガイドでは、考えられる解決策とともに一般的な iOS / Xcode の問題を文書化することを試みます。

iOS Toolbox

iOS 開発者は誰でも、iOS の問題をデバッグするためのいくつかの一般的なテクニックを学んでおり、これらを自分のワークフローに組み込む必要があります。

Google, Google, Google

iOS や Xcode で何か問題が発生した場合、最初のステップは Google 検索にエラーをコピペすることです。

Capacitor は標準的な iOS ツールチェーンを使用していますので、あなたが何かに遭遇した場合、多くの iOS 開発者も同様に遭遇している可能性があり、そこには解決策があるはずです。

依存関係の更新、クリーン実行、派生データの削除などの簡単な方法があります。

Clean/Rebuild

Clean と Rebuild を行うことで、多くのビルドの問題を解決することができます。Xcode メニューの Product -> Clean Build Folder を選択して、現在のビルドをクリーンアップします。

派生データの削除

Xcode は古い、時代遅れのビルドアーティファクトに固執することがあります。新たに始めるには、ディスク上の派生データを削除する必要があります。

これを行うには、Xcode の環境設定を開き、Locations タブを選択して、Derived Data パスの横にある小さな矢印をクリックします:

Locations

これにより、Xcode の一時的な Derived Data の場所に Finder ウィンドウが開きます。

次に、そのディレクトリ内のすべてのアイテムを選択し、削除します:

Deleting Derived Data

最後に、Xcode でリビルドを行います。

Error: Sandbox not in sync with the Podfile.lock

このエラーは、CocoaPods が依存関係をインストールするために実行できなかった場合に起こります。

これを実行して Pod を更新してください。

npx cap update ios

このコマンドを実行した後、新規にビルドを行います。

Indexing FOREVER

Xcode は時々、永遠にインデックス作成に行き詰まることがあります。この不幸な状況は次のようなものです:

Xcode indexing

唯一の解決策は、アクティビティモニタを使って Xcode を強制終了し、再度起動させることです。

CocoaPods: Failed to connect to GitHub

このエラーは、古いバージョンの openssl と ruby がインストールされた Mac で発生する可能性があります。 これは、GitHub がリポジトリへのアクセス時に使用できる暗号プロトコルを制限しているためです。

解決策は、openssl をアップデートし、Ruby をアップデートすることです:

brew install openssl
brew upgrade openssl
brew install ruby
brew link --overwrite ruby

最後に、環境変数 PATH$PATH の後に /usr/local/bin を置くのではなく、その前に置くようにしてください。

この問題に対する他の可能な解決策については、 この StackOverflow の問題 を参照してください。

プラグインが実装されていない

iOSでは、Capacitorがプラグインを見つけられない場合やWebViewにコードを注入できない場合にこのエラーが発生する可能性があります。

まず、プラグインがインストールされており、package.jsonに表示されていることを確認してください。

次に、npx cap sync iosを実行します。

最後に、プラグインがios/App/Podfileに含まれていることを確認してください。プラグインがリストに表示されていない場合は、Podfileがこのファイルのようになっていることを確認し、npx cap syncを再度実行してください。

それでも「Plugin not implemented」エラーが発生する場合は、ios/App/App/Info.plistWKAppBoundDomainsキーがないことを確認してください。このキーはCapacitorとプラグインのコードの注入を妨げます。不要な場合はキーを削除するか、削除できない場合は、Capacitor設定ファイルのiosオブジェクト内にlimitsNavigationsToAppBoundDomainstrueの値で追加してください。