IOS用のGoogleMaps SDKをビルドすると、これらのエラーが発生しました。
*** Terminating app due to uncaught exception 'GMSException', reason: 'Google Maps SDK for iOS requires GoogleMaps.bundle to be part of your target under 'Copy Bundle Resources''
しかし、GoogleMaps.frameworkはコピーバンドルresources.soにありますので、この問題の原因を教えてください。
指示はちょっと欠けています。これが役立つことを願っています...
GoogleMaps.frameworkバンドルをプロジェクトのFrameworksグループにドラッグします。プロンプトが表示されたら、アイテムのコピーを宛先グループのフォルダに選択します。
プロジェクトでGoogleMaps.frameworkを右クリックし、「Finderで表示」を選択します。 それが言っていないのは...それからResourcesという子フォルダに入ります
GoogleMaps.bundleをResourcesフォルダーからプロジェクトにドラッグします。 Frameworksグループに入れることをお勧めします。プロンプトが表示されたら、コピー先グループのフォルダへのアイテムのコピーが選択されていないことを確認します。
SOで検索する2017年の人々にとって、最も簡単な方法は、もちろんpod install
およびpod update
。最後に、次の2つのコマンドでプロジェクトとビルドをクリーンアップします。
Command + alt option + Shift + K
Command + Shift + K
出来上がり!クラッシュは二度と起こりません。
2017年にXcode 9(最初のリリース)と新しいビルドシステムでこれを試してみた人のために、以下がこれを解決しました。
注:基本的な問題は、新しいビルドシステムが正しくクリーニングされていないため、古いシステムに切り替える必要があるようです。また、9/25/17の時点で、Google Place PickerはメインスレッドからUIを呼び出しており、Xcodeでエラーをスローしています。
-古いビルドシステムに切り替える
-プロジェクトファイル「My App Name」をクリック
-「ターゲット」の下でアプリ名をクリックします(テストやUITestではありません!)
-ビルド段階
-[CP] Podリソースのコピー
-$ {PODS_ROOT}/GoogleSomethingが表示され、それらを選択してヒットします-
-Xcodeを閉じ、ポッドインストールを実行します。
-Xcode、Command-Shift-Kを開きます(クリーンで、古いビルドシステムにいることを確認してください!)
-ビルド/実行、今すぐ動作するはずです
このフレームワークの最新バージョンでこの問題が発生し、CocoaPodsデプロイメントを使用している場合は、「Copy Pods Resources」セクションを確認してください。 「ビルドフェーズ」:
このセクションが欠落しているようですので、Podsディレクトリを削除して「pod install」を再実行するだけでは修正できません。代わりに、 this 便利なツールを入手する必要があります。
https://github.com/CocoaPods/cocoapods-deintegrate
このことを実行してから、pod installと「ポッドリソースのコピー )」セクションに戻る必要があります。マップをインスタンス化しても、この例外は発生しません。
「pod install」を実行すると、この問題は修正されました。
私は同じ問題に直面していました、次のことをしてください:
1. Go to derived folder and delete the project folder
2. Clean build and run
問題を修正しました
私にとっては、手動インストールでも同じ問題があります。
1.プロジェクトでGoogleMaps.frameworkを右クリックし、「Finderで表示」を選択します。
注:[必要に応じてアイテムをコピー]宛先グループのフォルダーが選択されていないことを確認してください。スクリーンショットもご覧ください。
今すぐCommand + Shift + KまたはXcode-> Product-> Cleanをクリーンアップします
これは誰かに役立つかもしれません。
Xcode 9 Swift 3.2に更新したら、次の行でAppDelegate内でクラッシュを続けました。
GMSServices.openSourceLicenseInfo()
私はグレンの答えを使ってプロジェクトをきれいにしましたが、それは間違いなく機能しましたが、最終的にクラッシュが起こり続けました。
それを解決するには、 Google Maps APIインストール の指示に従う必要がありました
フォロー:
ステップ2:SDKをインストールしますおよび手動でインストールします
これは非常に簡単ですが、最初は1つのことが混乱していたので、次の人のために明確にするために追加しています:
マニュアルの指示を読んで、4番に次のように書かれています:
4. Drag the following bundles into your project (when prompted, select Copy items if needed):
事はあなたがダウンロードしたZipファイルの中にあり、それを解凍すると、その中に2つのフレームワークしかありません:
GoogleMaps.framework
GoogleMapsCore.framework
GoogleMapsBase.framework
はありません。 GoogleMaps.framework
にバンドルされていると思いますか?
番号8: Open the Build Phases tab, and within Link Binary with Libraries, add the following frameworks:
に到達したら。インポートする必要がある多くのフレームワークがリストされています。
問題は、Zipファイルを解凍してプロジェクトにドラッグしたときに、追加するように指定されている最初の3つが既に追加されていることです(実際には2つが追加されました-GoogleMaps.framework
およびGoogleMapsCore.framework
)。
名前を入力し続けましたが、何も表示されませんでした。
最初から始めて、すべてのGoogleフレームワークを削除し続け、既に存在することに気付くまで再試行しました。基本的に、Accelerate.framework
-UIKit.framework
のすべての名前を入力すると、うまくいくはずです。
キャッチされない例外「GMSException」によるアプリの終了、理由:「iOS用Google Maps SDKには、「バンドルリソースのコピー」の下でターゲットの一部としてGoogleMaps.bundleが必要です。
GoogleMaps.bundle
でGoogleMap.frameword/Resources
を見つけると、GoogleMap.bundleが表示されます。GoogleMaps.bundle
をBase/Framework
にドラッグしますこれが役立つことを願っています。ありがとう