Github Actions更新后配置文件不包含Runner设备UUID的解决方法咨询
解决Github Actions Runner设备UUID变动导致的Provisioning Profile问题
方案1:改用通用型Provisioning Profile(推荐)
- 放弃绑定特定设备的开发Profile,切换为不限制设备的通用Profile:
- 登录Apple开发者后台,创建Profile时选择对应类型(如iOS App Development/Ad Hoc/App Store),在设备选择环节勾选「All Devices」(团队账号支持该选项)。
- 个人账号若无法选「All Devices」,可直接用Ad Hoc或App Store类型的Profile,这类Profile无需绑定单个设备UUID。
方案2:自托管Runner固定设备UUID
- 若必须用绑定特定设备的Profile,可直接修改Runner系统配置固定UUID:
- 在Runner机器的「系统设置-通用-关于本机」中复制当前Hardware UUID。
- 终端执行命令(需管理员权限):
sudo defaults write /Library/Preferences/com.apple.SystemProfiler.plist UUID -string "你的固定UUID" - 重启机器后,执行
system_profiler SPHardwareDataType | grep "Hardware UUID"验证是否生效。
- 仅适用于自托管Runner,Github托管Runner无法修改系统配置。
方案3:构建时指定通用设备
- 在Xcode构建命令中指定通用设备,跳过设备UUID校验:
- 替换原有构建命令,例如:
xcodebuild -workspace YourApp.xcworkspace -scheme YourScheme -destination 'generic/platform=iOS' build archive - 此方式让Xcode以通用设备模式构建,无需Provisioning Profile包含Runner的设备UUID。
- 替换原有构建命令,例如:
方案4:自动更新Provisioning Profile(进阶)
- 用
fastlane工具自动管理Profile,构建前自动添加Runner设备UUID并更新Profile:- 项目中配置
fastlane,添加相关动作:lane :ci_build do sigh(force: true) # 强制更新Profile xcodebuild(workspace: "YourApp.xcworkspace", scheme: "YourScheme", destination: "generic/platform=iOS") end - Github Actions Workflow中执行
fastlane ci_build,工具会自动将当前Runner设备UUID同步到Apple后台并生成新的Profile。
- 需提前配置Apple开发者账号API密钥,确保
fastlane有修改设备和Profile的权限。
- 项目中配置
内容的提问来源于stack exchange,提问作者clem
相关产品推荐
相关产品推荐

