求助:Xcode Cloud无法检测所有Git子模块形式的Swift包
Xcode Cloud无法检测Git子模块Swift包的解决办法
检查Xcode Cloud的子模块权限配置
进入Xcode Cloud项目设置的环境变量与权限板块,确认子模块对应的GitHub仓库已给Xcode Cloud服务账号开放读取权限。如果是组织仓库,要在GitHub组织设置里把Xcode Cloud的服务账号加入有权限的团队,或者直接给仓库添加该账号的读权限——毕竟你用的是SSH地址git@github.com:...,权限验证是关键。替换子模块的SSH地址为HTTPS格式
Xcode Cloud对SSH地址的子模块偶尔会有权限验证问题,把.gitmodules里的URL换成HTTPS试试:[submodule "Packages/CommonKitUI"] path = Packages/CommonKitUI url = https://github.com/myOrgs/CommonKitUI.git [submodule "Packages/FoundationX"] path = Packages/FoundationX url = https://github.com/myOrgs/FoundationX.git然后执行以下命令更新本地配置并提交:
git submodule sync git submodule update --init --recursive git add .gitmodules git commit -m "Update submodule URLs to HTTPS" git push之后重新触发Xcode Cloud构建。
手动添加构建前子模块克隆脚本
如果上面的方法都不行,就在Xcode Cloud工作流的构建前步骤加个脚本手动拉取子模块:git submodule init git submodule update --recursive确保脚本在项目根目录执行,这样子模块会被正确克隆到指定路径。
核对Xcode项目的包引用路径
打开Xcode的Package Dependencies面板,检查本地包的引用路径和.gitmodules里的path字段完全一致,别出现拼写错误或者路径不匹配的情况——Xcode Cloud识别包的前提是路径对应得上。
内容的提问来源于stack exchange,提问作者Long Vu
相关产品推荐
相关产品推荐

