如何在Xcode中构建iOS框架的发布版本?

Ana*_*Ana 25 xcode frameworks release ios

假设我做了以下事情:

  1. 打开Xcode 7
  2. 档案| 新的| 项目| Cocoa Touch Framework
  3. 使用Swift语言创建"TestFramework"
  4. 使用public func hello(){print("Hello")}创建一个Hello.swift文件.

从这里开始,我可以构建一个框架的调试版本(在Debug-iphoneos文件夹中),但我无法弄清楚如何构建框架的发布版本(在Release-iphoneos中).我以为Archive可能会这样做,但事实并非如此.指针好吗?

Bea*_*lle 54

要获得发布版本,您需要更改方案设置:

在此输入图像描述 或者,为发布版本创建新方案.

确保选择了设备.不是模拟器.

在此输入图像描述

构建您的项目,您应该看到它被添加到此位置:(单击箭头在finder中导航) 在此输入图像描述

在向下钻取之后,您应该能够找到包含发布框架的release文件夹. 在此输入图像描述

  • 这似乎是构建库的发布版本的一种糟糕方式.你必须改变方案.这是因为一个错误还是这个用途? (5认同)
  • 我同意@Ana,应该依赖存档功能而不是涉及运行方案.但是,归档后,我不知道最终产品在哪里. (4认同)

Les*_*ary 24

这对我有用:

选择您的框架目标,然后单击产品 - >存档.如果在成功构建框架后没有弹出组织窗口,则转到框架目标的"构建设置",查找"跳过安装"选项并将其更改为"否"(再次在该存档之后).


Adi*_*ain 5

通过 Xcode IDE 构建框架的另一种方法是从命令行构建它。

iphoneos您可以使用以下命令为设备生成框架的发布版本:

xcodebuild -workspace TestSDK.xcworkspace -scheme TestSDK -configuration Release -sdk iphoneos
Run Code Online (Sandbox Code Playgroud)

将参数值-configuration从更改ReleaseDebug以便生成调试版本。将参数值-sdk从更改iphoneosiphonesimulator以便生成模拟器设备的版本。

请注意,如果您的目标仅属于 Xcode 项目而不属于 Xcode 工作区,则您可能需要提供参数-project-workspace运行xcodebuild -help命令以获得完整的选项列表xcodebuild

如果您喜欢存档,也可以从命令行执行此操作,如下所示:

xcodebuild archive -workspace TestSDK.xcworkspace -scheme TestSDK -configuration Release -sdk iphoneos -archivePath "TestSDK_Release_iphoneos.xcarchive" SKIP_INSTALL=NO
Run Code Online (Sandbox Code Playgroud)

请注意,如果您愿意,可以将其指定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"
Run Code Online (Sandbox Code Playgroud)

请参阅此处了解创建 XCFramework 的官方指南。