derived=$(xcodebuild -showBuildSettings | grep -m 1 BUILD_DIR | grep -oE "\/.*" | sed 's|/Build/Products||')
# The above will return a folder with a name like /Users/you/Library/Developer/Xcode/DerivedData/MyProject-ehdkocavaenextdcrsaszjdmyssx
rm -rf "$derived"
xcodebuild -resolvePackageDependencies
5条答案
按热度按时间iovurdzv1#
试用
xcodebuild -resolvePackageDependencies
nvbavucw2#
xcodebuild -resolvePackageDependencies
看起来并不可靠。它经常顽固地拒绝更新到最新版本,特别是当SPM依赖项指向分支而不是版本标记时。显然Xcode在某个地方缓存了这些信息,但我无法准确地找出是哪个文件。即使在派生数据中删除SourcePackages
文件夹也没有起到作用。我发现的唯一可靠的方法是彻底删除Xcode项目的整个
DerivedData
子文件夹。删除项目的DerivedData子文件夹是完全安全的,Xcode会根据需要重新生成它。
nwwlzxa73#
如果您将规则设置为下一个次要版本,而下一个版本为主要版本,则单击更新将不起作用,您必须更改软件包设置。
jljoyd4f4#
在您的主Xcode项目中,在项目导航器的"Package dependencies"下:
swift package update
注意:您可以在此处了解有关SPM CLI的更多信息:https://github.com/apple/swift-package-manager
jucafojl5#
最后放弃了这条路线,因为理想情况下,CI测试回购协议中的GOING内容,而不是回购协议中的IS内容。
最终解决方案是指向一个伪分支,然后强制将CI生成的合并提交推送到该分支。
这是一个小的hacky,但提供了准确的反馈如何包将被消费后合并。
**更新:**能够找到更好的解决方案。https://stackoverflow.com/a/61110638/2565025