5

sdkをアプリに正常に統合しました。私のアプリは、 、および4.3 および 5.xのGoogle Maps sdk for iOS6AppleUIMapKitで実行することを目的としています。iOSフレームワークを追加したためgoogle maps、ios 4.3 は動作しなくなりました。GLKit.frameworkandGoogleMaps.frameworkを「オプション」に変更したところdyld: Symbol not found: _NSFileProtectionCompleteUntilFirstUserAuthentication、アプリが起動する前に取得できました。君の力が必要 :-)

4

2 に答える 2

3

私のアプリは iOS 4.3 で正常に動作し、オプションGLKit.frameworkGoogleMaps.framework設定されており、Google API へのすべての呼び出しを削除すると、.

参照NSFileProtectionCompleteUntilFirstUserAuthenticationは、他のコードまたは他のフレームワークによって引き起こされる可能性がありますか?

アップデート:

実は上記は間違っています。手順-ObjC7 でリンカー フラグを含めるのを忘れていました。アプリがなくても、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 ではまだ失敗します。

-ObjCor-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 によって公式にサポートされていないため、おそらく良い考えではありません。

于 2012-12-28T05:12:31.020 に答える
0

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申し訳ありません私の悪い英語!

于 2013-09-27T10:54:18.460 に答える