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

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

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

- canopenurl: failed for URL: "kindle://home" -错误:"此应用程序是 不允许查询计划kindle"

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


当前回答

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

这给出了所有的日志语句

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

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

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

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

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

canOpenUrl:方法的文档 canOpenUrl:

关于LSApplicationQueriesSchemes键的文档

其他回答

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

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

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

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

免责声明:这是针对那些支持需要自动化流程的持续集成工作流的人。如果你没有,请按照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测试的,并且作为Cordova 4.0项目的一部分。

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

用比特代码更新你的库, 在目标构建设置中说“不”以启用比特码

和库构建设置删除警告。

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

2015年全球开发者大会第102场:“平台国情咨文”


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

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

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