web-dev-qa-db-ja.com

IOS 9での新しい警告:「すべてのビットコードは破棄されます」

私のアプリでは、Google Frameworkに関するこの新しい警告があります。

(null):緊急: '/ Users/myname/Library/Mobile Documents/com〜Apple〜CloudDocs/foldername/appname/GoogleMobileAds.framework/GoogleMobileAds(GADSlot + AdEvents.o)'はビットコードなしで作成されたため、すべてのビットコードが削除されます。ビットコードを有効にして(Xcode設定ENABLE_BITCODE)再構築するか、ベンダから最新のライブラリを入手するか、このターゲットのビットコードを無効にする必要があります。注:これは将来エラーになります。

Xcode 7は、これと同じ概念について204の警告を出していますが、これを回避することはできませんでした。私のアプリからネットワークへのアクセスに問題があります。これはデバッグ領域からのエラーです。

-canOpenURL:URLに失敗しました: "Kindle:// home" - エラー: "このアプリはスキームKindleのクエリを許可されていません"

これらの問題はすべてiOS 8にはありませんでした。

383
C.Farrugia

ライブラリはビットコードなしでコンパイルされましたが、プロジェクト設定でビットコードオプションが有効になっています。ターゲットのビルド設定とライブラリのビルド設定でNOからEnable Bitcodeと言って警告を削除します。

ビットコードを有効にする必要があるかどうか疑問に思う人のために:

IOSアプリの場合、ビットコードがデフォルトですが、オプションです。 watchOSおよびtvOSアプリの場合、ビットコードが必要です。ビットコードを提供する場合は、アプリバンドル内のすべてのアプリとフレームワーク(プロジェクト内のすべてのターゲット)にビットコードを含める必要があります。

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

1019
Zia

Xcode 7以降、ビットコードオプションはデフォルトで有効になります。ライブラリがビットコードなしでコンパイルされたが、プロジェクト設定でビットコードオプションが有効になっている場合は、次のことができます。

  1. ライブラリをビットコードで更新してください。
  2. NOにする - ビットコードを有効にする あなたのターゲットで ビルド設定

Enter image description here

そして、警告を削除するためのLibrary Build Settings。

詳細については、 開発者ライブラリのビットコードのドキュメント を参照してください。

そしてWWDC 2015セッション102: 「プラットフォームの連合の状態」

Enter image description here

109
ElonChan

その問題を回避するための私の場合:

  1. あなたが Xcode 7 を扱っていることを確認してください、より低いバージョンではありません。より低いバージョンではこのフラグは存在しません。

  2. セットアップ: プロジェクト>ビルド設定>すべて>ビルドオプション>ビットコードを有効にする= NO

enter image description here

メソッドcanOpenUrlはiOS 9(プライバシーのため)で変更され、もう自由に使用できません。バナープロバイダはインストール済みのアプリをチェックして、既にインストールされているアプリのバナーが表示されないようにします。

それはすべてのログステートメントを以下のように与えます。

-canOpenURL:URLに失敗しました: "Kindle:// home" - エラー: "このアプリはスキームKindleのクエリを許可されていません"

プロバイダはこれに関するロジックを更新する必要があります。

インストールされているアプリや利用可能なスキームを問い合わせる必要がある場合は、それらをinfo.plistファイルに追加する必要があります。

キーとしてLSApplicationQueriesSchemesを配列としてplistに追加します。次に、その配列に「Kindle」のような文字列を追加します。

もちろん、これはバナー広告のための実際のオプションではありません(それらが動的であるので)、あなたはまだあなた自身のアプリやTwitterやFacebookのような特定の他のアプリのためにそのようにクエリできます。

CanOpenUrl:メソッドのドキュメント canOpenUrl:

LSApplicationQueriesSchemesキーに関するドキュメント

15
Saren Inden

CocoaPods を使用していて、すべてのライブラリに対してビットコードを無効にしたい場合は、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
11
Eike

免責事項:これは自動化されたプロセスを必要とする 継続的な統合 ワークフローをサポートする人を対象としています。そうでなければ、 Javier's answer で説明されているように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プロジェクトの一部としてテストされました。

8
miraculixx

CanOpenURLの失敗に関する問題を解決するため。これはiOS9の新しいApp Transport Security機能のためです。

この問題を解決するには、この記事を読んでください http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/ /

2
Phil