Google Maps SDK for iOS尝试在iOS 4.3上运行

我成功地集成了sdk 使用我的应用程序. 我的应用程序旨在与Google Maps sdk for iOS6, 还有苹果UIMapKit 对于iOS 4.3和5.x个. 自从我添加google maps 框架,ios 4.3将不再运行. 我改变了GLKit.frameworkGoogleMaps.framework 到"可选",我得到dyld: Symbol not found: _NSFileProtectionCompleteUntilFirstUserAuthentication 在应用程序启动之前. 需要您的帮助:-)

.

回答:1

我的应用程序在iOS 4.3上运行正常GLKit.frameworkGoogleMaps.framework 设置为可选,如果我删除对Google API的所有调用。

你能提到NSFileProtectionCompleteUntilFirstUserAuthentication 是由其他代码或其他框架引起的吗?

更新:

其实上面的说法是错误的。我忘了把-ObjC 说明第7步中的链接器标志。没有-ObjC 该应用程序可以在iOS 4.3上正常运行。没有-ObjC 在iOS 6上标记呼叫[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。你在测试什么?

更新2:

这感觉像是一个可怕的黑客攻击,但添加了以下内容之一。项目中的m文件允许它在iOS 5.0上工作:

这不是似乎 在iOS 6.0上引发问题,尽管符号将被定义两次,但我不确定它是否可信。

对于iOS 4.3,我尝试了做同样的事情,添加了:

这就停止了关于_NSFileProtectionCompleteUntilFirstUserAuthentication, 但我得到了以下错误:

我不确定是否有办法欺骗链接器在iOS 4.3上看到NSMutableOrderedSet的虚拟版本。

更新3:

SDK文档表示,支持的最低平台是iOS 5.1。

谷歌已经以WontFix的名义关闭了该漏洞报告,因此似乎没有办法让它在5.0或更低版本上运行。

更新4:

作为一种增强,谷歌重新开启了这个漏洞。

更新5:

最新版本的SDK 1.1.0现在不再在iOS 5.0上启动时崩溃。

然而,谷歌不会修复iOS 4上的崩溃。十、

由于SDK仅正式支持iOS 5.1+,尽管它在iOS 5.0上启动时不再崩溃,如果您尝试创建GMSMapView 然后它崩溃并显示一条错误消息:

Google Maps SDK for iOS仅支持iOS 5.1+

如果你使用的黑客技术是用来让它在5.0启动时不崩溃的,即:

然后SDK将在iOS 5.0上运行。这似乎可行,但可能不是一个好主意,因为它没有得到谷歌的官方支持。

回答:2

我是基金会的。框架和UIKit。框架(UIActivityViewController也在1.5 GMSdk中崩溃了…)在模式"选项"中设置(组合框中没有显示弱a).NSMutableOrderSet和NSURLIsExcludedFromBackupKey位于该框架组件中。我没有检查这个解决方案在ios less 5.0上是如何工作的,但是从5.0到6.0没有崩溃,或者请不要使用Google Map SDK从5到6而不是这个MKMapView!

抱歉我的英语不好!