簡體   English   中英

如何在 Xcode 中構建 iOS 框架的發布版本?

[英]How to build a release version of an iOS framework in Xcode?

假設我執行以下操作:

  1. 打開 Xcode 7
  2. 檔案 | 新 | 項目 | 可可觸摸框架
  3. 使用 Swift 語言創建“TestFramework”
  4. 使用 public func hello() { print("Hello") } 創建一個文件 Hello.swift。

從這里,我可以構建框架的調試版本(在 Debug-iphoneos 文件夾中),但我無法弄清楚如何構建框架的發布版本(在 Release-iphoneos 中)。 我認為 Archive 可能會這樣做,但事實並非如此。 請指點?

要獲得發布版本,您需要更改方案設置:

在此處輸入圖片說明 或者,為發布版本創建一個新方案。

確保您選擇了設備。 不是模擬器。

在此處輸入圖片說明

構建你的項目,你應該看到它被添加到這個位置:(單擊箭頭在查找器中導航) 在此處輸入圖片說明

向下鑽取后,您應該能夠找到包含您的發布框架的發布文件夾。 在此處輸入圖片說明

這對我有用:

選擇您的框架目標,然后單擊產品 -> 存檔。 如果在成功構建框架后沒有彈出管理器窗口,則轉到框架目標的“構建設置”,查找選項“跳過安裝”並將其更改為“否”(然后再次存檔)。

當您將框架添加到其他 Xcode 項目時,您必須將“$(BUILT_PRODUCTS_DIR)”添加到構建設置 -> 框架搜索路徑。 這將在您運行項目(使用 Debug)時創建 Debug,並在您歸檔項目時創建 Release 版本。 存檔不會在 Products 目錄下創建 Release 版本,但會在“Intermediates.noindex”文件夾中創建 Release。

通過 Xcode IDE 構建框架的另一種方法是從命令行構建它。

您可以使用以下命令為iphoneos設備生成框架的發布版本:

xcodebuild -workspace TestSDK.xcworkspace -scheme TestSDK -configuration Release -sdk iphoneos

您可以將-configuration參數的值從Release更改為Debug以生成調試版本,或者將-sdk參數的值從iphoneosiphonesimulator以生成 Simulator 設備的版本。

請注意,您可能需要提供-project的論證,而不是-workspace如果你的目標是一個Xcode項目,而不是一個Xcode工作區的一部分的一部分。 運行xcodebuild -help命令以獲取xcodebuild選項的完整列表。

如果您更喜歡存檔,也可以從命令行執行此操作,如下所示:

xcodebuild archive -workspace TestSDK.xcworkspace -scheme TestSDK -configuration Release -sdk iphoneos -archivePath "TestSDK_Release_iphoneos.xcarchive" SKIP_INSTALL=NO

請注意,如果您願意,您可以將SKIP_INSTALL=NO指定為項目或目標的構建設置的一部分。

最后,如果您想將iphoneosiphonesimulator構建合並為一個二進制文件,您可以使用xcodebuild -create-xcframework命令執行以下操作:

xcodebuild -create-xcframework \
    -framework "TestSDK_Release_iphoneos.xcarchive/Products/Library/Frameworks/TestSDK.framework" \
    -framework "TestSDK_Release_iphonesimulator.xcarchive/Products/Library/Frameworks/TestSDK.framework" \
    -output "TestSDK.xcframework"

有關創建 XCFramework 的官方指南,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM