You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Actions发布.NET MAUI iOS报错:钥匙串无有效签名密钥

解决.NET 8 MAUI + Github Actions(Xcode 16)TestFlight上传签名错误

核心问题定位

错误提示No valid iOS code signing keys found in keychain,说明MSBuild构建时无法从钥匙串中匹配到签名证书与配置文件的有效组合,即便你已完成证书导入和配置文件下载操作。

分步解决方法

1. 确认证书与配置文件的绑定关系

  • 登录Apple开发者后台,进入「Certificates, Identifiers & Profiles」→「Profiles」,选中你的App Store配置文件,查看「Signed by」字段是否显示正确的分发证书名称。
  • 若不匹配,重新生成配置文件并绑定正确的证书。

2. 调整Github Actions钥匙串权限

导入证书后,默认钥匙串可能锁定或权限不足,导致MSBuild无法访问。在证书导入步骤后添加以下命令:

# 解锁默认钥匙串
security unlock-keychain -p "runner" /Users/runner/Library/Keychains/login.keychain-db
# 设置证书全局访问权限
security set-key-partition-list -S apple-tool:,apple: -s -k "runner" /Users/runner/Library/Keychains/login.keychain-db

注:runner是Github macOS Runner的默认密码,无需额外配置。

3. 手动指定dotnet publish签名参数

放弃自动匹配,在发布命令中明确指定以下参数:

dotnet publish -f net8.0-ios -c Release /p:ArchiveOnBuild=true \
/p:CodesignKey="Apple Distribution: 你的团队名称 (团队ID)" \
/p:CodesignProvision="你的App Store配置文件名称" \
/p:TeamId=你的团队ID \
/p:ApplicationId=你的应用Bundle ID
  • CodesignKey:需完全匹配证书的「常用名称」(可在本地钥匙串中查看)
  • CodesignProvision:使用配置文件的名称而非UUID,避免匹配异常
  • TeamId:Apple开发者团队ID
  • ApplicationId:应用的Bundle ID

4. 验证Xcode与.NET iOS SDK兼容性

.NET 8对应iOS SDK 18.0,需确认Xcode 16的SDK版本匹配。在Actions中添加步骤验证:

xcodebuild -version

若版本不一致,切换到正确的Xcode路径:

sudo xcode-select -s /Applications/Xcode_16.app/Contents/Developer

5. 确认配置文件安装路径

将下载的配置文件复制到指定目录:

mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
cp 你的配置文件.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/

用以下命令验证配置文件有效性:

security cms -D -i ~/Library/MobileDevice/Provisioning\ Profiles/你的配置文件.mobileprovision

检查输出中的Entitlements和TeamIdentifier是否与应用信息一致。

6. 清理Runner环境缓存

旧缓存可能残留无效签名信息,构建前添加清理步骤:

# 清理MSBuild缓存
dotnet clean -f net8.0-ios -c Release
# 删除旧配置文件
rm -rf ~/Library/MobileDevice/Provisioning\ Profiles/*.mobileprovision

内容的提问来源于stack exchange,提问作者Reid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:32:46