問題タブ [bitcode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - BitCode と unexported_symbols_list は一緒に使用できませんか?
iOS フレームワークの場合、フレームワークとフレームワークを使用するアプリケーションに同じサードパーティ ライブラリの異なるバージョンが含まれている場合の衝突を防ぐために、シンボルを内部に非表示にできるようにしたいと考えています。
今まで-unexported_symbols_list
はオプションで指定することで可能でした。
ただし、Xcode 7 Beta 5 では、次のエラー メッセージが...
... フレームワークの BitCode バージョンをコンパイルしようとすると発生します。
そこで、3 つの質問があります。
1) BitCode をコンパイルするときにシンボルを非表示にする簡単な方法はありますか?
2) そうでない場合、フレームワークのサードパーティ ライブラリが同じライブラリであるがバージョンが異なる場合に、アプリケーションのサードパーティ ライブラリと衝突しないようにするために他にできることはありますか?
3)一緒に使用できないのはなぜですか?-unexported_symbols_list
-bitcode_bundle
ios - アーカイブ時の Xcode 7 での UrbanAirship iOS SDK エラー: libUAirship-6.2.0.a (UAWalletAction.o)' にビットコードが含まれていません
次のように Pods 経由で UrbanAirship iOS SDK を使用して、CocoaPods を使用して Swift に iOS アプリケーションを作成しました。
Podfile.lock
ファイルにインストールされているバージョンを確認できます。
アプリケーションは、Xcode 6.4 で適切にビルド、実行、およびアーカイブされます。さらに、Xcode 7 beta 6 でも適切にビルドおよび実行されます。ただし、Xcode 7 でアーカイブすると、次のエラーが発生します。
ld: '.../Pods/UrbanAirship-iOS-SDK/Airship/libUAirship-6.2.0.a(UAWalletAction.o)' にはビットコードが含まれていません。ビットコードを有効にして再ビルドするか (Xcode 設定 ENABLE_BITCODE)、ベンダーから更新されたライブラリを入手するか、このターゲットのビットコードを無効にする必要があります。アーキテクチャ用 armv7
clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)
この SO answerに示されているように、プロジェクト レベルとターゲット レベルの両方で に設定して、ビットコードを無効にするようにプロジェクト ビルド設定を更新しましたが、エラーは解決しません。ENABLE_BITCODE
NO
どんな助けでも大歓迎です。御時間ありがとうございます。
ios - App Thinning - ビットコードの例?
iOS 9 では、App Thinning が次の 3 つの方法で導入されました。
アプリのスライス
リソースオンデマンド
Bit Code: iOS アプリ用の一種のプラグイン
1.と2.のチュートリアルとサンプルコードを見ることができますが、Bitcode の詳細は見つかりません。
ios - Xcode 7 'CrashReporter にビットコードが含まれていません' リンカー エラー
外部ツールを使用せずに iOS アプリで PLCrashReporter を直接リンクしていますが、Xcode 7 でコンパイルしようとすると、リンク エラーが発生します。
ld: '.../CrashReporter.framework/CrashReporter(libCrashReporter-iphoneos.a-armv7-master.o)' にはビットコードが含まれていません。ビットコードを有効にして再ビルドするか (Xcode 設定 ENABLE_BITCODE)、ベンダーから更新されたライブラリを入手するか、このターゲットのビットコードを無効にする必要があります。アーキテクチャ用 armv7
更新されたフレームワークまたはソースを入手して、ビットコードを有効にしてコンパイルし、プロジェクト全体でビットコードを無効にせずにエラーを取り除くにはどうすればよいですか?
ios - ビットコードを有効にするフレームワークを更新した後、IOS アプリのサイズが 2 倍になりました
先月、TestFlight 用に 2 つのビルドをアップロードしました。ItunesConnect では、1 つが 63MB のサイズで、もう 1 つが 160MB です。さらに悪いことに、TestFlight では 195MB と表示され、他の投稿に関しては、App Store では 2 倍のサイズになります!
私が使用するフレームワーク/ライブラリ:
- Facebook SDK: FBSDKCoreKit と FBSDKLoginKit をインクルードします。
.framework
(項目をプロジェクトにドラッグ アンド ドロップするだけです。 - Alamofire、両方のバージョンには、swift 2.0 プレリリース ブランチが含まれていました (Xcode 7 はまだベータ版でした)。
.xcodeproj
これをアプリにドラッグアンドドロップして含めました。 - CocoaPods 経由でダウンロードされた Google クラウド メッセージング。
regarding changes:
- FacebookSDK を最新の SDK (v4.6.0) に更新しました。これが問題かどうかを確認するために、古い SDK を再度インクルードし、ファイル サイズを確認しましたが、違いはありませんでした。
- Alamofire を更新し、cocoapods による公式リリースを含めました。cocoapods 経由で含めるとファイル サイズが 17 MB 増加するため
.xcodeproj
、プロジェクトに を含めるように切り替えました。
Regarding code:
大したことはありません。バグ修正のみです。
GCM はまだこれをサポートしていないため、アプリのビットコードを無効にしています。これは Facebook SDK と Alamofire でサポートされています。
なぜファイルサイズが劇的に変化したのか、本当に疑問に思っています。Xcode 7ベータ版を使用している間にファイルサイズの小さいバージョンが公開されたため、おそらくXcode 7のリリース前後のものです。
Itunes Connect では、次のように表示されますSupported Architectures: armv7, arm64
。Required Capabilities armv7
アプリの 32 ビット バージョンを送信することは良いことですか? これにより、ファイルサイズが縮小されますか? アプリは拒否されますか?
何か案は?
ios - -fembed-bitcode を指定して configure と make を使用して C++ スタティック ライブラリをビルドすると、リンクに失敗する
-fembed-bitcode
iOS 9 用にいくつかのオープン ソース ライブラリを再構築しています。これにはconfigure
、iPhone SDK を使用してクロスコンパイルするように構成することが含まれます。
C ベースのライブラリではすべて正常に動作しますが、2 つの C++ ライブラリ ( libprotobufとlibexiv2 ) は両方ともこの同じエラーでリンクできません。
libexiv2 の完全なリンク コマンドは次のとおりです。
違いが生じる場合に備えて、共有ではなく静的なライブラリのみを構築しています。
更新: C ベースのライブラリに関しては、リンク コマンドには、-Wl,bind_at_load
たとえばlibpng用のものが含まれていません。
PS: ビルド ログ全体はこちらから入手できます
ios - Xcode 7 でプロジェクトとココアポッドの依存関係のビットコードを無効にしますか?
プロジェクトとココアポッドの依存関係のビットコードを無効にするにはどうすればよいですか? これは、Xcode 7 でプロジェクトを実行しようとしたときに発生するエラーです。
ビットコードが含まれていません。ビットコードを有効にして再ビルドするか (Xcode 設定 ENABLE_BITCODE)、ベンダーから更新されたライブラリを入手するか、このターゲットのビットコードを無効にする必要があります。建築用 arm64
編集:もともとは、ターゲットの1つに対してのみ無効にしていました。それらをすべて無効にすると、正常にビルドできました。
ios - Xcode 7 + Dropbox Core API: Bitcode を無効にするだけですか?
iOS アプリで Dropbox Core API をかなり長い間使用しています。Xcode 7 にアップデートした後、プロジェクトをコンパイルしようとすると、次のエラーが発生しました。
ビットコードとは何か、そしてそれが何に役立つかを知っています。このエラーは、ターゲットのビルド設定でEnable Bitcode
オプションを設定するだけで解決できます。No
この後、すべてがエラーなしでコンパイルされ、アプリは問題なく実行されます。
これまでのところはうまくいっていますが、これは「正しい」解決策ですか? Dropbox ページで SDK の更新バージョンを確認しましたが、既に最新バージョンを使用しています。
プロジェクトには、Dropbox SDK を使用しないアプリ ウィジェット、Watch 拡張機能などの他のターゲットが含まれています。ここではどのオプションをEnable Bitcode
使用する必要がありますか? (何らかの理由で)No
すべてのターゲットに同じ値 (私の場合) を使用する方がよいですか? メインアプリのターゲットがビットコードを使用していない場合、ウォッチとウィジェットのターゲットでビットコードを有効にすることは意味がありますか?
ここでのベストプラクティスは何ですか?