如何防止 Xcode 8 在 .pbxproj 中保存 "development team"?

How to prevent Xcode 8 from saving "development team" in .pbxproj?

Xcode 8 要求您 select 一个 "development team",然后才能为 iOS 和 macOS 签署您的应用程序。想出如何制造 selection 并不难。 (答案可以在 Add developer team in Xcode 8? 中找到,以防有人自己弄不明白。)

问题是 Xcode 将 selection 保存在 .pbxproj 文件中。因为在我的情况下,我期望其他许多人,这是在 SCM 下,并且该项目被许多不相关的人和团队使用,这是一个巨大的问题。例如 'git status' 表明工作区域在团队 select 完成后立即不干净。

有没有办法

我将我的项目从 Xcode 7.3.1 升级到 Xcode 8,并且从未设置开发团队或未弃用的 Provisioning Profile,一切仍然正常。

您可以滥用 Xcode 的 自定义路径 机制,通过设置 DEVELOPMENT_TEAM 自定义路径(将 ABCDEFGHIJ 替换为您的团队标识符):

(Xcode 菜单 → 首选项… → 位置 → 自定义路径)

自定义路径存储在 Xcode 的首选项中(IDEApplicationwideBuildSettingsIDESourceTreeDisplayNames)。

但是有一个问题! 不幸的是,一旦您更改了项目中的任何内容(更新构建设置、添加新的构建阶段、重命名目标等),开发团队将自动添加到 project.pbxproj 文件中(在项目对象的 TargetAttributes 中)。 这需要经常注意不要提交这些更改。

如果这种将您的 DEVELOPMENT_TEAM 设置为自定义路径的做法获得关注,开源项目所有者将能够不指定任何 开发团队 配置文件,将任何iOS SDK的代码签名身份设置为iOS开发者 ("CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";) 和开源演示应用程序将在任何设备上构建和 运行 就像 Xcode 7.