xcodebuild -create-framework 错误:无法读取文件

Posted

技术标签:

【中文标题】xcodebuild -create-framework 错误:无法读取文件【英文标题】:xcodebuild -create-framework error: unable to read the file 【发布时间】:2019-06-15 11:03:03 【问题描述】:

我看过“快速二进制框架”并尝试使用 xcodebuild -create-framework 构建 xcframework 但它无法正常工作。

我启用了“为分发构建库”,然后我存档并使用了命令 xcodebuild -create-framework -framework /path/sample.xarchive -output sample.xcframework

但它显示错误“无法读取 /path/sample/sample 中的文件”。 我不确定我错过了什么。

系统信息:

MacOS:Catalina beta 1

Xcode 11

【问题讨论】:

【参考方案1】:

以下是分步说明,我认为您可能缺少第 2 步:

1) 将目标框架的构建设置中的Build Library for Distribution设置为YES

2) 再次在构建设置中,将Skip Install 设置为NO,否则框架将不会显示在存档输出文件夹中。

3) 选择 Generic ios Device 后,从 Xcode 产品菜单存档,输出将出现在管理器中。 Control-单击存档。选择Show in Finder 将其拖到终端以获取存档路径并附加路径(黄色部分为拖动路径,灰色在子文件夹中导航)。在这种情况下,它看起来像这样,我使用 ~ 来避免显示整个路径。

~/Library/Developer/Xcode/Archives/2019-06-22/Output\ 6-22-19,\ 11.50\ AM.xcarchive/Products/Library/Frameworks/MyFramework.framework

4) 然后通过在上述路径前插入命令来创建XCFramework:

xcodebuild -create-xcframework -output Output.xcframework -framework ~/Library/Developer/Xcode/Archives/2019-06-22/Output\ 6-22-19,\ 11.50\ AM.xcarchive/Products/Library/Frameworks/MyFramework.framework 

5) 然后你应该看到输出:

xcframework successfully written out to: ~/Project/Output.xcframework

我希望不久的将来 Xcode 会添加一个无需命令行直接创建 XCFramework 的功能。

【讨论】:

我犯的错误是将路径放入 .xcarchive 文件而不是存档中包含的 .framework 文件。 是否有可能Build Libraries for Distribution必须在项目设置中设置,不能用作xcodebuild的参数?我见过有人提到使用BUILD_LIBRARIES_FOR_DISTRIBUTION=YES,但它对我没有用。我必须在项目设置中设置它 请注意,“Build Library for Distribution”选项仅在 Xcode 11 中可用。【参考方案2】:

您必须通过命令行执行两步过程。

    xcodebuild 存档

这会将框架归档并可能将其粘贴到项目的构建目录中。

    xcodebuild -create-xcframework -output FrameworkName.xcframework -framework build/Release-iphoneos/ArchivedFramework.framework

这应该会成功生成 XCFramework。

【讨论】:

【参考方案3】:

你输入了错误的命令:

xcodebuild -create-xcframework -framework /path/sample.xarchive -output sample.xcframework

【讨论】:

以上是关于xcodebuild -create-framework 错误:无法读取文件的主要内容,如果未能解决你的问题,请参考以下文章

xcodebuild 比 Xcode 慢得多?

xcodebuild 仅打印错误

使用 xcodebuild 分离构建目录

xcodebuild - 设置构建目录不会生成 dSYM

带有变音符号的 xcodebuild 目标名称

xcodebuild:“未找到适用的设备。”导出存档时