gpt4 book ai didi

ios - 适用于 iOS 的 Google Maps SDK 试图在 iOS 4.3 上运行

转载 作者:可可西里 更新时间:2023-11-01 04:44:26 25 4
gpt4 key购买 nike

我成功地将 sdk 与我的应用集成。我的应用旨在与 适用于 iOS6 的 Google Maps sdk 一起运行,以及适用于 iOS 4.3 和 5.x 的 Apple UIMapKit。由于我添加了 google maps 框架,ios 4.3 将不再运行。我将 GLKit.frameworkGoogleMaps.framework 更改为“可选”,在应用程序启动之前,我得到 dyld: Symbol not found: _NSFileProtectionCompleteUntilFirstUserAuthentication。需要你的帮助:-)

最佳答案

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

NSFileProtectionCompleteUntilFirstUserAuthentication 的引用是否是由您的某些其他代码或其他框架引起的?

更新:

其实上面是错误的。我忘记在 the instructions 的第 7 步中包含 -ObjC 链接器标志| .如果没有 -ObjC,该应用程序可以在 iOS 4.3 上正常运行。如果 iOS 6 上没有 -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-force_load 覆盖了使 GoogleMaps.framework 可选的设置。

此外,在 iOS 5.0 上,我收到关于 _NSURLIsExcludedFromBackupKey 的类似错误。不过,我假设它可以在 iOS 5.1 上运行。 @tomeron11,您测试的是哪个版本的 5.x?

更新 2:

感觉像是一个可怕的 hack,但是将以下内容添加到项目中的一个 .m 文件中可以让它在 iOS 5.0 上工作:

NSString* const NSURLIsExcludedFromBackupKey = @"NSURLIsExcludedFromBackupKey";

似乎不会在 iOS 6.0 上引起问题,即使该符号将被定义两次,但我不确定它是否可信。

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

NSString* const NSFileProtectionCompleteUntilFirstUserAuthentication = 
@"NSFileProtectionCompleteUntilFirstUserAuthentication";

这会停止有关 _NSFileProtectionCompleteUntilFirstUserAuthentication 的错误,但随后我会收到以下错误:

dyld: Symbol not found: _OBJC_CLASS_$_NSMutableOrderedSet

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

更新 3:

SDK 文档说 minimum supported platform is iOS 5.1 .

谷歌有closed the bug report as WontFix , 所以似乎没有办法让它在 5.0 或更低版本上工作。

更新 4:

谷歌有reopened the bug as an Enhancement .

更新 5:

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

然而,Google will not be fixing the crash on iOS 4.x .

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

Google Maps SDK for iOS only supports iOS 5.1+

如果你使用了在 5.0 上启动时不会崩溃的 hack,即:

NSString* const NSURLIsExcludedFromBackupKey = @"NSURLIsExcludedFromBackupKey";

然后 SDK 将在 iOS 5.0 上运行。它似乎可行,但它可能不是一个好主意,因为它不受 Google 的正式支持。

关于ios - 适用于 iOS 的 Google Maps SDK 试图在 iOS 4.3 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14030418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com