Flutter项目中Sign in with Apple在Xcode签名与兼容性菜单不显示的问题
嘿,我来帮你排查下这个问题——这种Xcode功能选项失踪的情况我之前也碰到过,大概率是环境、账号或者配置的问题,一步步来:
先确认基础环境与账号权限
- 系统版本兼容性:Xcode 11.5要求macOS Catalina 10.15.4或更高版本,如果你的Mac系统版本低于这个要求,很多新功能选项会被直接隐藏。先检查系统版本,不够的话升级后重启Xcode试试。
- 开发者账号类型:Sign in with Apple和Apple Pay都是需要付费开发者账号($99/年)才能启用的功能,免费个人账号是看不到这些选项的。打开Xcode的
Preferences->Accounts,确认你登录的是有效的付费账号,且账号状态没有过期。
检查项目配置细节
- 部署目标版本:Sign in with Apple要求项目的Deployment Target至少是iOS 13.0,Apple Pay最低要求iOS 8.0,但Xcode显示选项可能依赖更高的版本。操作路径:选中项目 -> Targets -> General -> Deployment Info,把iOS版本调到13.0以上。
- Capabilities面板的正确打开方式:Flutter导入的项目有时候会出现Capabilities加载不全的情况,试试两种方式:
- 点击Xcode顶部菜单栏的
Editor->Add Capability,在弹出的面板里搜索Sign in with Apple或Apple Pay; - 如果还是找不到,手动编辑权限文件:新建一个
Runner.entitlements文件,添加以下内容,然后在Build Settings的Code Signing Entitlements里指定这个文件的路径:<!-- 开启Sign in with Apple --> <key>com.apple.developer.applesignin</key> <array> <string>Default</string> </array> <!-- 开启Apple Pay --> <key>com.apple.developer.payment-pass-provisioning</key> <true/>
- 点击Xcode顶部菜单栏的
重置Xcode缓存解决界面异常
有时候Xcode的缓存会导致界面加载出错,试试这些操作:
- 完全关闭Xcode,打开终端执行
rm -rf ~/Library/Developer/Xcode/DerivedData清除派生数据; - 执行
killall Xcode && killall com.apple.CoreSimulator.CoreSimulatorService彻底关闭Xcode和模拟器服务; - 重启Mac后再打开项目,看看Capabilities选项是否恢复。
验证原生项目的问题根源
你说创建原生iOS应用也没有这些选项,说明问题大概率不在Flutter项目上:
- 新建一个纯iOS App项目,Deployment Target设为iOS 13.0,登录付费账号后再去Capabilities里查找;
- 如果还是没有,建议重新安装Xcode 11.5(从官方渠道下载安装包,避免文件损坏),或者升级到更高版本的Xcode(比如Xcode 12+,兼容性更好)。
内容的提问来源于stack exchange,提问作者VardanMelkonyan




