tom*_*n11 5 ios google-maps-sdk-ios
我成功整合了sdk我的应用程序.我的应用程序旨在Google Maps sdk for iOS6与Apple UIMapKit和iOS4.3和5.x一起运行.由于我添加了google maps框架,ios 4.3将不再运行.我改变了GLKit.framework,并GoogleMaps.framework为"可选",我也得到dyld: Symbol not found: _NSFileProtectionCompleteUntilFirstUserAuthentication了应用,甚至开始之前.需要你的帮助 :-)
如果我删除对 Google API 的所有调用,并且将GLKit.framework和设置为可选,我的应用程序可以在 iOS 4.3 上正常运行。GoogleMaps.framework
该引用是否是NSFileProtectionCompleteUntilFirstUserAuthentication由您的某些其他代码或其他框架引起的?
更新:
其实上面的说法是错误的。我忘记在说明-ObjC的第 7 步中包含链接器标志。如果没有该应用程序,则可以在 iOS 4.3 上正常运行。如果没有iOS 6 上的标志,调用会成功,但是调用-ObjC-ObjC[GMSServices provideAPIKey][GMSMapView mapWithFrame:camera:]默默失败(返回 nil),因此这不是一个选项。
有了该-ObjC标志,在 iOS 4.3 上我得到了关于 的相同错误_NSFileProtectionCompleteUntilFirstUserAuthentication。
我尝试更改-ObjC为-force_load $(PROJECT_DIR)/GoogleMaps.framework/GoogleMaps, 仅强制加载 Google Maps API 而不是其他库,但在 iOS 4.3 上仍然失败。
我认为-ObjC或-force_load正在覆盖设置以使其成为GoogleMaps.framework可选。
另外,在 iOS 5.0 上我遇到了类似的错误_NSURLIsExcludedFromBackupKey。不过,我认为它可以在 iOS 5.1 上运行。@tomeron11,您使用什么版本的 5.x 进行测试?
更新2:
这感觉像是一个可怕的黑客攻击,但将以下内容添加到项目中的一个 .m 文件中可以使其在 iOS 5.0 上运行:
NSString* const NSURLIsExcludedFromBackupKey = @"NSURLIsExcludedFromBackupKey";
Run Code Online (Sandbox Code Playgroud)
这似乎不会在 iOS 6.0 上引起问题,尽管该符号已被定义两次,但我不确定它是否可信。
对于 iOS 4.3,我尝试做同样的事情,添加:
NSString* const NSFileProtectionCompleteUntilFirstUserAuthentication =
@"NSFileProtectionCompleteUntilFirstUserAuthentication";
Run Code Online (Sandbox Code Playgroud)
这会停止有关 的错误_NSFileProtectionCompleteUntilFirstUserAuthentication,但随后我收到以下错误:
dyld: Symbol not found: _OBJC_CLASS_$_NSMutableOrderedSet
Run Code Online (Sandbox Code Playgroud)
我不确定是否有办法欺骗链接器在 iOS 4.3 上看到 NSMutableOrderedSet 的虚拟版本。
更新3:
SDK文档说最低支持的平台是iOS 5.1。
谷歌已将错误报告关闭为 WontFix,因此似乎无法让它在 5.0 或更低版本上工作。
更新4:
谷歌已重新开放该错误作为增强功能。
更新5:
SDK 的最新版本 1.1.0 现在在 iOS 5.0 上启动时不再崩溃。
由于 SDK 仅正式支持 iOS 5.1+,尽管它在 iOS 5.0 上启动时不再崩溃,但如果您尝试创建一个,GMSMapView则会崩溃并显示错误消息:
适用于 iOS 的 Google 地图 SDK 仅支持 iOS 5.1+
如果你使用 hack 来让它在 5.0 上启动时不会崩溃,即:
NSString* const NSURLIsExcludedFromBackupKey = @"NSURLIsExcludedFromBackupKey";
Run Code Online (Sandbox Code Playgroud)
然后该SDK将在iOS 5.0上运行。它似乎可行,但可能不是一个好主意,因为它没有得到谷歌的官方支持。
| 归档时间: |
|
| 查看次数: |
1901 次 |
| 最近记录: |