Fastlane运行Swift包测试时依赖解析失败问题求助
问题解决:Fastlane执行Swift Package测试时依赖解析失败
问题原因
你的Package.swift中依赖路径使用了绝对路径(/Packages/ConfigManager),在Xcode中运行时,Xcode默认以项目根目录为工作目录,所以能正确找到依赖包;但Fastlane执行scan时,指定了package_path: './Packages/Package_Name',此时xcodebuild会以Package_Name所在目录为工作目录,绝对路径/Packages会指向系统根目录,自然找不到对应的依赖文件夹。
解决方案
1. 修改Package.swift中的依赖路径为相对路径
将依赖的绝对路径改为相对于当前Package的相对路径,因为Package_Name和其他依赖包都在./Packages目录下,所以路径应该是../[依赖包名]:
修改后的Package.swift依赖部分:
dependencies: [ .package(name: "ConfigManager", path: "../ConfigManager"), .package(name: "NetworkManager", path: "../NetworkManager"), .package(name: "Notifications", path: "../Notifications") ],
2. 确保Fastlane在项目根目录执行
运行Fastlane命令时,要在包含Packages文件夹的项目根目录执行,这样相对路径才能正确解析到依赖包的位置。
验证修改
重新运行Fastlane的testPackage lane,此时xcodebuild应该能正确找到所有依赖包,顺利执行测试。
内容的提问来源于stack exchange,提问作者Dris
相关产品推荐
相关产品推荐

