sdk
をアプリに正常に統合しました。私のアプリは、 、および4.3 および 5.xのGoogle Maps sdk for iOS6
AppleUIMapKit
で実行することを目的としています。iOS
フレームワークを追加したためgoogle maps
、ios 4.3 は動作しなくなりました。GLKit.framework
andGoogleMaps.framework
を「オプション」に変更したところdyld: Symbol not found: _NSFileProtectionCompleteUntilFirstUserAuthentication
、アプリが起動する前に取得できました。君の力が必要 :-)
2 に答える
私のアプリは iOS 4.3 で正常に動作し、オプションGLKit.framework
にGoogleMaps.framework
設定されており、Google API へのすべての呼び出しを削除すると、.
参照NSFileProtectionCompleteUntilFirstUserAuthentication
は、他のコードまたは他のフレームワークによって引き起こされる可能性がありますか?
アップデート:
実は上記は間違っています。手順-ObjC
7 でリンカー フラグを含めるのを忘れていました。アプリがなくても、iOS 4.3 で問題なく動作します。iOS 6 でフラグがないと、 への呼び出しは成功しますが、 への呼び出しは暗黙のうちに失敗する (nil を返す) ため、これはオプションではありません。-ObjC
-ObjC
[GMSServices provideAPIKey]
[GMSMapView mapWithFrame:camera:]
フラグを設定する-ObjC
と、iOS 4.3 で同じエラーが発生し_NSFileProtectionCompleteUntilFirstUserAuthentication
ます。
に変更-ObjC
して-force_load $(PROJECT_DIR)/GoogleMaps.framework/GoogleMaps
、Google Maps API のみを強制的にロードし、他のライブラリは強制的にロードしないようにしましたが、iOS 4.3 ではまだ失敗します。
-ObjC
or-force_load
が設定をオーバーライドしてGoogleMaps.framework
オプションにしていると思います。
また、iOS 5.0 でも同様のエラーが発生し_NSURLIsExcludedFromBackupKey
ます。ただし、iOS 5.1 でも動作すると思います。@ tomeron11、5.x のどのバージョンでテストしましたか?
更新 2:
恐ろしいハックのように感じますが、プロジェクトの .m ファイルの 1 つに次を追加すると、iOS 5.0 で動作するようになります。
NSString* const NSURLIsExcludedFromBackupKey = @"NSURLIsExcludedFromBackupKey";
iOS 6.0 では、シンボルが 2 回定義されているにもかかわらず、信頼できるかどうかはわかりませんが、これによって問題が発生することはないようです。
iOS 4.3 の場合、以下を追加して、同等のことを試みました。
NSString* const NSFileProtectionCompleteUntilFirstUserAuthentication =
@"NSFileProtectionCompleteUntilFirstUserAuthentication";
これにより、 に関するエラーが停止しますが_NSFileProtectionCompleteUntilFirstUserAuthentication
、代わりに次のエラーが発生します。
dyld: Symbol not found: _OBJC_CLASS_$_NSMutableOrderedSet
iOS 4.3 で NSMutableOrderedSet のダミー バージョンをリンカに表示させる方法があるかどうかはわかりません。
更新 3:
SDK のドキュメントによると、サポートされる最小プラットフォームは iOS 5.1です。
Google はバグ レポートを WontFix としてクローズしたため、5.0 以下で動作させる方法はないようです。
更新 4:
Google はこのバグを機能強化として再度オープンしました。
更新 5:
SDK の最新バージョン 1.1.0 は、iOS 5.0 の起動時にクラッシュしなくなりました。
ただし、Google は iOS 4.x でのクラッシュを修正しません。
SDK は iOS 5.1+ のみを公式にサポートしているため、iOS 5.0 での起動時にクラッシュすることはなくなりましたが、作成しようとするGMSMapView
とエラー メッセージが表示されてクラッシュします。
Google Maps SDK for iOS は iOS 5.1 以降のみをサポートします
5.0 で起動時にクラッシュしないようにするハックを使用すると、次のようになります。
NSString* const NSURLIsExcludedFromBackupKey = @"NSURLIsExcludedFromBackupKey";
その後、SDK は iOS 5.0 で実行されます。動作しているように見えますが、Google によって公式にサポートされていないため、おそらく良い考えではありません。
I Foundation.framework と UIKit.framework (UIActivityViewController も 1.5 GMSdk でクラッシュしました.....) モード "option" に設定されています (コンボボックスに表示されない弱い)。NSMutableOrdererSet と NSURLIsExcludedFromBackupKey は、このフレームワーク コンポーネントにあります。このソリューションが 5.0 未満の iOS でどのように機能するかは確認していませんが、5.0 から 6.0 まではクラッシュしませんでした。または、この MKMapView の代わりに 5 から 6 までの Google Map SDK を使用しないでください!
PS申し訳ありません私の悪い英語!