如何在macCatalyst中启用GameCenter且不破坏iOS Provisioning Profile
解决iOS与Mac Catalyst共用GameCenter权限的签名问题
为什么iOS配置文件需要GameCenter权限条目?
其实你误解了——com.apple.developer.game-center权限并不是macOS独有的,iOS平台使用GameKit功能时同样需要这个权限。只不过在iOS开发中,Xcode通常会自动帮你处理这个权限的配置,不需要手动在entitlements里声明。但当你显式在entitlements文件中添加了这个权限后,Xcode就会严格要求你的iOS Provisioning Profile必须包含该权限,否则签名校验不通过,导致无法安装。
如何在iOS Provisioning Profile中添加该权限?
按照以下步骤操作即可:
- 登录Apple Developer后台,找到你的App ID(Mac Catalyst复用iOS的App ID,直接找对应iOS的那个即可)
- 在App ID的配置页面,确保Game Center选项处于开启状态(这个选项是跨平台的,开启后iOS和macOS平台都会生效)
- 重新生成对应的iOS Provisioning Profile(开发版和发布版都需要重新生成),新的配置文件会自动包含GameCenter权限
- 回到Xcode,刷新你的配置文件:可以在
Xcode > Settings > Accounts中选中你的开发者账号,点击Download Manual Profiles;或者在Target的Signing & Capabilities面板中重新选择最新的配置文件
避免手动修改entitlements的技巧
你可以创建平台专属的entitlements文件,彻底告别手动修改的麻烦:
- 新建两个entitlements文件,比如命名为
iOS.entitlements和MacCatalyst.entitlements - 在Xcode的Target设置中,切换到
Signing & Capabilities面板,分别为iOS和Mac Catalyst平台指定对应的entitlements文件:- iOS平台的entitlements可以不用显式添加
com.apple.developer.game-center(或者添加后确保配置文件已包含该权限) - Mac Catalyst平台的entitlements中保留
com.apple.developer.game-center权限的启用配置
- iOS平台的entitlements可以不用显式添加
修复自动签名失败的问题
如果重新配置后自动签名还是报错,可以尝试这些操作:
- 清理Xcode缓存:执行
Product > Clean Build Folder,或者手动删除DerivedData目录(路径一般是~/Library/Developer/Xcode/DerivedData) - 退出Xcode中的Apple开发者账号,重新登录
- 确认你的App ID没有其他权限冲突,并且所有配置文件都是最新生成的
内容的提问来源于stack exchange,提问作者endavid
相关产品推荐
相关产品推荐

