iOS 9的新警告:“所有比特码将被删除”;

我在我的应用程序中有这个关于谷歌框架的新警告:

(null): URGENT:所有位代码将被删除,因为 ' / /名字/图书馆/移动用户 文档/ com ~苹果~ CloudDocs foldername /浏览器名称/ GoogleMobileAds.framework / GoogleMobileAds (GADSlot + AdEvents.o)” 没有比特码。您必须在启用位码的情况下重新构建它 (Xcode设置ENABLE_BITCODE),从 供应商,或禁用此目标的位码。注意:这将是一个

Xcode 7给了我大约204个关于这个概念的警告,我无法绕过这个。我也有一个问题,从我的应用程序访问网络。这是来自调试区域的错误:

- canopenurl: failed for URL: "kindle://home" - error: "This app is

.

.

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

186050 次浏览

您的库是在没有位码的情况下编译的,但在项目设置中启用了位码选项。在目标构建设置和库构建设置中输入NOEnable Bitcode以删除警告。

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

对于iOS应用程序,bitcode是默认值,但可选。对于watchOS和tvOS应用程序,位码是必需的。如果你提供位码,应用程序包中的所有应用程序和框架(项目中的所有目标)都需要包含位码。

https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f

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

  1. 用比特代码更新你的库,
  2. 在你的目标建立设置中对使Bitcode说NO

Enter image description here

和库构建设置删除警告。

有关更多信息,请访问开发人员库中的位代码文档

和WWDC 2015会议102:《国情咨文》;

< p > Enter image description here
子> < /

方法canOpenUrl在iOS 9中(由于隐私)已更改,不能再自由使用。你的广告条提供商检查已安装的应用,这样他们就不会为已经安装的应用显示广告条。

这给出了所有的日志语句

- canopenurl: failed for URL: "kindle://home" -错误:"This app is not allowed to query for scheme kindle"

提供者应该为此更新它们的逻辑。

如果你需要查询已安装的应用程序/可用的方案,你需要将它们添加到你的info.plist文件中。

将键'LSApplicationQueriesSchemes'作为数组添加到plist中。然后在数组中添加字符串,比如'kindle'。

当然,这不是横幅广告的一个选项(因为它们是动态的),但你仍然可以用这种方式查询你自己的应用程序或特定的其他应用程序,如Twitter和Facebook。

canOpenUrl方法文档 canOpenUrl: < / p >

LSApplicationQueriesSchemes key的相关文档

修复canOpenURL失败的问题。这是因为iOS9中新的应用程序传输安全功能

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

在我的例子中,为了避免这个问题:

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

  2. 设置:Project>Build Settings>所有>Build Options>Enable Bitcode = NO

enter image description here

免责声明:这是为那些支持需要自动化流程的持续集成工作流的人准备的。如果没有,请按照哈维尔的回答中的描述使用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测试的,并且作为Cordova 4.0项目的一部分。

如果你正在使用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