Я создаю статическую библиотеку iOS, и я хочу предоставить поддержку для биткода. Чтобы добиться этого, я перехожу к настройкам сборки, поискам "пользовательских флагов компилятора" и добавлению -fembed-bitcode. Это создает библиотеку с помощью битового кода, и все отлично работает под XCode 7.
Однако, следуя вышеприведенному подходу, я теряю назад совместимость с XCode 6. После этого я должен отправить две разные версии библиотеки моим пользователям, один с флагом биткода и один без него, поскольку не все обновлены до XCode 7.
Есть ли способ иметь библиотеку с включенным битом и иметь обратную совместимость, не отправляя две разные версии?
UPDATE:
Здравствуйте @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
а затем создайте полный lib следующим образом:
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"
как я могу построить в своем scipt, чтобы включить оба, а затем упаковать их в жир-библиотеку?
ОБНОВЛЕНИЕ 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
а затем создайте полный lib следующим образом:
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"