iOS 9中的新警告

我的应用程序中有关于Google框架的新警告:

(null):URGENT:所有bitcode将被丢弃,因为'/ Users / myname / Library / Mobile Documents / com〜apple〜CloudDocs / foldername / appname / GoogleMobileAds.framework / GoogleMobileAds(GADSlot + AdEvents.o)'没有bitcode 。 您必须使用位代码重新启动(Xcode设置ENABLE_BITCODE),从供应商获取更新的库,或者禁用此目标的位代码。 注意:这将是一个错误。

Xcode 7给了我大约204个关于这个概念的警告,我无法解决这个问题。 另外我有一个问题,从我的应用程序访问networking。 这是debugging区域的错误:

-canOpenURL:url失败:“kindle:// home” – 错误:“此应用程序不允许查询schemekindle”

所有这些问题都没有出现在iOS 8中。

您的库是在没有bitcode的情况下编译的,但是在您的项目设置中启用了bitcode选项。 在目标“生成设置”和“库生成设置”中select“ NOEnable Bitcode ,以删除警告。

对于那些想知道是否需要启用位代码的人来说:

注意:对于iOS应用,bitcode是默认的,但是可选的。 如果你提供位码,应用程序包中的所有应用程序和框架都需要包含位码。 对于watchOS应用程序,位码是必需的。

https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html

在Xcode 7之后,位代码选项将被默认启用。 如果您的库是在没有bitcode的情况下编译的,但是在您的项目设置中启用了bitcode选项,您可以:

  1. 用位代码更新你的库,
  2. 在您的目标版本设置中 ,select“否”以启用位码

在这里输入图像说明

并在Library Build Settings中删除警告。

有关更多信息,请参阅开发人员库中的bitcode文档 。

而WWDC 2015会议102: “平台状态​​”

在这里输入图像说明

在我的情况下,为了避免这个问题:

  1. 确保你正在处理Xcode 7 ,而不是更低的版本。 在较低版本中,此标志不存在。

  2. 设置: 项目>生成设置>全部>生成选项>启用位代码=否

在这里输入图像描述

方法canOpenUrl是在iOS 9(由于隐私)更改,并不是免费使用更多。 您的横幅提供商检查已安装的应用程序,以便它们不显示已安装的应用程序的横幅。

这给出了所有的日志语句

-canOpenURL:URL失败:“kindle:// home” – 错误:“此应用程序不允许查询schemekindle”

提供者应该更新他们的逻辑。

如果您需要查询已安装的应用程序/可用scheme,则需要将其添加到您的info.plist文件中。

将“LSApplicationQueriesSchemes”键作为数组添加到plist中。 然后在该数组中添加string,如'kindle'。

当然,这不是横幅广告的select(因为这些广告是dynamic的),但是您仍然可以为您自己的应用程序或特定的其他应用程序(如Twitter和Facebook)进行查询。

canOpenUrl:方法的文档canOpenUrl:

有关LSApplicationQueriesSchemes项的文档

如果您正在使用CocoaPods并且想要为所有库禁用Bitcode,请在Podfile中使用以下命令

 post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ENABLE_BITCODE'] = 'NO' end end end 

免责声明:这是为那些支持需要自动化过程的持续集成工作stream程而devise的。 如果你不这样做,请按Javier的回答所述使用Xcode。

这对我来说通过命令行设置ENABLE_BITCODE = NO

 find . -name *project.pbxproj | xargs sed -i -e 's/\(GCC_VERSION = "";\)/\1\ ENABLE_BITCODE = NO;/g' 

请注意,这在Xcode版本中可能不稳定。 它使用Xcode 7.0.1进行testing,并作为Cordova 4.0项目的一部分。

解决canOpenURL失败的问题。 这是因为iOS9中新的App Transport Securityfunction

阅读这篇文章来解决这个问题http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/

这个问题最近已经由Google解决(2010年11月),请参阅https://code.google.com/p/analytics-issues/issues/detail?id=671 。 但请注意,作为一个很好的修复它会带来更多的bug

您还必须按照此处列出的初始化方法: https : //developers.google.com/analytics/devguides/collection/ios/v2 。

最新的指令会给你一个头痛的问题,因为它引用了不包含在该pod中的实用程序。 以下将与cocoapod失败

 // Configure tracker from GoogleService-Info.plist. NSError *configureError; [[GGLContext sharedInstance] configureWithError:&configureError]; NSAssert(!configureError, @"Error configuring Google services: %@", configureError);