17

iOS スタティック ライブラリを構築しており、ビットコードのサポートを提供したいと考えています。それを達成するために、ビルド設定に移動し、「カスタム コンパイラ フラグ」を検索して、-fembed-bitcode を追加します。これにより、ビットコードでライブラリがビルドされ、XCode 7 ですべて正常に動作します。

ただし、上記のアプローチに従うと、XCode 6 との下位互換性が失われます。そうは言っても、ユーザーに 2 つの異なるライブラリ バージョンを出荷する必要があります。

2 つの異なるバージョンを出荷することなく、ビットコード対応ライブラリを使用して後方互換性を維持する方法はありますか?

アップデート:

こんにちは @Vinicius Jarina さん、メッセージありがとうございます。一般的な慣行であると思われるファットライブラリを作成できることを理解しています。私がこれまで行っていたのは、両方のアーキテクチャ用に構築することでした:

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdK iphoneos 
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator

次に、lipo を呼び出して、次のようなファット ライブラリにパッケージ化します。

lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"

しかし、どうすれば今それを行うことができますか?このリンクに基づいてこのようなことを試しましたが、運がありませんでした:

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator
xcodebuild -configuration "Release" OTHER_CFLAGS='-fembed-bitcode' -target "${FMK_NAME}" -sdk iphonesimulator
xcodebuild -configuration "Release" OTHER_CFLAGS='-fembed-bitcode' -target "${FMK_NAME}" -sdk iphoneos

次に、次のようなファット ライブラリを作成します。

lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"

scipt にビルドして両方を含めてから、fat-library にパッケージ化するにはどうすればよいですか?

更新 2:

私は最終的にこれを機能させることができました。同じ問題に直面する可能性のある他の人のための解決策をここにリストします。

xcodebuild -configuration "Release" ENABLE_BITCODE=NO -target "${FMK_NAME}" -sdK iphoneos 
xcodebuild -configuration "Release" ENABLE_BITCODE=NO -target "${FMK_NAME}" -sdk iphonesimulator
xcodebuild -configuration "Release" ENABLE_BITCODE=YES -target "${FMK_NAME}" -sdk iphonesimulator
xcodebuild -configuration "Release" ENABLE_BITCODE=YES -target "${FMK_NAME}" -sdk iphoneos

次に、次のようなファット ライブラリを作成します。

lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"
4

2 に答える 2