將Swift軟件包構(gòu)建為通用二進(jìn)制文件
?
因此,在蘋果在WWDC 2020期間宣布他們將把Mac從英特爾處理器過渡到蘋果硅之后,現(xiàn)在是時(shí)候讓每個(gè)人都準(zhǔn)備好他們的軟件了。
對大多數(shù)人來說,這次過渡可能更容易一些,特別是那些已經(jīng)在iOS上支持arm64的人,但仍有工作要做,以確保工具和預(yù)編譯的發(fā)行版支持使用Apple Silicon的Mac公開時(shí)準(zhǔn)備好的兩種架構(gòu)。如果您還沒有看到它,其中許多內(nèi)容都包含在將Mac應(yīng)用程序移植到Apple Silicon?WWDC會話視頻中。
如果您使用Xcode編譯命令行工具,那么只要您將ARCHS
構(gòu)建設(shè)置設(shè)置為$(ARCHS_STANDARD)
默認(rèn)值),事情就非常簡單。在Xcode 12中,此值被描述為標(biāo)準(zhǔn)架構(gòu)(64位英特爾和ARM),但如果您使用Swift軟件包管理器來構(gòu)建和分發(fā)二進(jìn)制文件或庫,則沒有此類選項(xiàng)。
相反,從Swift 5.3的Swift Package Manager(Xcode 12)開始,swift-build
執(zhí)行文件現(xiàn)在引入了--arch
選項(xiàng)(apple/swift-package-manager#2787)。
構(gòu)建通用二進(jìn)制
首先,確保您使用的是正確版本的Xcode/Swift:
$ xcrun swift build --version
Swift Package Manager - Swift 5.3.0
注意:如果這不是Swift 5.3或更高版本,請使用xcode-select -s
切換到Xcode 12測試版。
現(xiàn)在,在編譯軟件包時(shí),請指定兩個(gè)架構(gòu)來編譯通用二進(jìn)制文件:
$ xcrun swift build -c release --arch arm64 --arch x86_64
$ xcrun swift build -c debug --arch arm64 --arch x86_64
要驗(yàn)證您構(gòu)建的二進(jìn)制文件是否包含兩種架構(gòu),您可以使用lipo -info
命令檢查二進(jìn)制文件并確認(rèn):
$ lipo -info .build/apple/Products/Release/swiftlint
Architectures in the fat file: .build/apple/Products/Release/swiftlint are: x86_64 arm64
$ lipo -info .build/apple/Products/Debug/swiftlint
?文章來源:http://www.zghlxwxcb.cn/news/detail-667517.html
就這樣,將您的Swift軟件包構(gòu)建為通用二進(jìn)制文件就這么簡單!文章來源地址http://www.zghlxwxcb.cn/news/detail-667517.html
到了這里,關(guān)于將Swift Package構(gòu)建為通用二進(jìn)制文件 Universal Binary的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!