騰訊視訊編譯優化記錄

weixin_33935777發表於2018-11-07

使用xcodebuild 命令列編譯:
xcodebuild -scheme "QNBAutomatic" -configuration Release -arch arm64 -arch armv7 -sdk "iphoneos"
xcodebuild -scheme "QNBAutomatic" -configuration Release -arch x86_64 -sdk "iphonesimulator"
分別編譯模擬器和真機版本, 當然還有其他硬體架構:-arch i386 -arch armv7s , 這些可以不用考慮。

分別編譯完成後,使用 lipo -create 合併靜態庫
使用 lipo -info libQQReader.a 檢視二進位制檔案支援的硬體架構

關於更詳細的 lipo 用法,參考另一篇文章:lipo命令

git log -- 檔案/目錄 檢視該檔案或目錄的提交改動

參考文章:
An Introduction to Creating and Distributing Embedded Frameworks in iOS
Creating and Distributing an iOS Binary Framework

注:
使用另外一種命令列編譯方式會失敗:
xcodebuild -target "${FRAMEWORK_NAME}" -configuration Release -arch arm64 -arch armv7 -arch armv7s only_active_arch=no defines_module=yes -sdk "iphoneos"
原因未明,可能是build目錄分散導致的,使用 -scheme 引數則ok

相關文章