and*_*asv 17 ios xcode6 ios9 xcode7 bitcode
我正在构建一个iOS静态库,我想为bitcode提供支持.为了实现这一点,我转到Build settings,搜索"custom compiler flags"并添加-fembed-bitcode.这使用bitcode构建库,在XCode 7下一切正常.
然而,按照上面的方法,我放松了与XCode 6的向后兼容性.据说我必须向我的用户发送2个不同的库版本,一个带有bitcode标志,一个没有,因为不是每个人都升级到XCode 7.
有没有办法让bitcode启用库并具有向后兼容性,而无需发送2个不同的版本?
您好@Vinicius Jarina感谢您的留言.我知道你可以创建一个胖库,我想这是一种常见的做法.到目前为止我所做的是为两种架构构建:
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdK iphoneos
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator
Run Code Online (Sandbox Code Playgroud)
然后调用lipo打包在胖库中,如:
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"
Run Code Online (Sandbox Code Playgroud)
但是,我现在该怎么办呢?我根据这个链接尝试了类似的东西,但没有运气:
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
Run Code Online (Sandbox Code Playgroud)
然后像这样创建一个胖lib:
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"
Run Code Online (Sandbox Code Playgroud)
我如何在我的scipt中包含两者,然后将它们打包到一个胖库中?
我终于成功完成了这项工作,我在这里列出了可能面临同样问题的其他人的解决方案:
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
Run Code Online (Sandbox Code Playgroud)
然后像这样创建一个胖lib:
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用不同的库创建fat-library.
lipo -create -output libAndreasv.a libAndreasvBitcode.a libAndreasvARMv7.a libAndreasvARM64.a
这对于胖库(x86,x64,ARMv7,ARM64)来说也适用于bitcode.
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |