Swift Package Manager归档疑问:如何生成含产物的归档包?
Swift Package静态库归档无产物问题解决
问题原因
你的问题确实和SKIP_INSTALL构建设置直接相关。Swift Package Manager(SPM)默认会给库类型的Target设置SKIP_INSTALL = YES,这个配置会让Xcode在归档流程中跳过将产物安装到归档包的指定目录,因此本地编译正常,但导出的归档包中找不到静态库文件。
解决方法
要在SPM中禁用SKIP_INSTALL,需在Package.swift的Target配置里添加settings字段,显式将该设置改为NO。修改后的完整配置代码如下:
let package = Package( name: "SPMBasedA", products: [ .library( name: "SPMBasedA", type: .static, targets: ["SPMBasedA"]), ], targets: [ .target( name: "SPMBasedA", settings: [ .buildSetting("SKIP_INSTALL", "NO") ] ) ] )
后续操作步骤
- 修改配置后,重新在Xcode中打开该Swift Package
- 清理构建缓存(快捷键:
Cmd+Shift+K) - 重新执行归档操作,导出归档包后,即可在对应平台的产物目录(如iOS平台的
Products/Library/Frameworks)找到静态库文件
关于操作是否有误
你之前的操作本身没有错误,问题根源是SPM的默认构建设置导致归档时不包含产物,只需调整配置即可解决。
内容的提问来源于stack exchange,提问作者Isaaс Weisberg
相关产品推荐
相关产品推荐

