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 错误:无法读取文件的主要内容,如果未能解决你的问题,请参考以下文章