我正在一个由几个开发人员组成的团队中开发一个 iOS 应用程序。我们都有属于同一个开发配置文件的开发人员证书。当我构建我们正在开发的应用程序以便在设备上对其进行测试时,我需要明确指定要使用的代码签名身份。否则,如果我选择自动配置文件选择器,则在将应用程序上传到 HockeyApp 等服务时会收到代码签名不匹配错误。实际上,当我选择自动配置文件选择器时,它似乎选择了 iOS 团队配置配置文件,而不是特定于我正在构建的应用程序的开发配置配置文件。
当我是此应用程序的唯一开发人员时,我通过硬编码正确的代码签名实体以在构建设置中使用来解决此问题。问题是我不再是这个项目的唯一开发者了。在我的项目设置中硬编码我的代码签名身份的问题是,每次我对项目设置进行更改时,我都必须删除它,或者如果我不这样做,我的队友在签署应用程序时会出错,说代码在他们的计算机上找不到签名身份。
所以我要做的是设置一个 .xcconfig 文件,每个团队成员都会在其中指定要使用的代码签名身份。该文件不会进行版本控制,因此每个人都可以明确设置他们的代码签名身份,而不会给同一团队中的其他开发人员造成任何问题。
我设法在我的项目中包含一个 .xcconfig 文件,并在构建阶段对其进行处理。但是,我无法编写解决代码签名实体问题的 .xcconfig 文件。我试图将以下行放入我的 .xcconfig 文件中:
CODE_SIGN_IDENTITY = iPhone Developer: Firstname Name (XXXXXXXXXX)
其中 Firstname Name (XXXXXXXXXX) 是将要使用的代码签名身份从构建设置复制/粘贴到 .xcconfig 文件的结果。后来我意识到,当我将它们从构建设置复制/粘贴到 .xcconfig 文件时,我的所有开发配置文件(每个应用程序或包标识符一个)的所有代码签名身份都会给出相同的结果。
我一直在寻找一种方法来区分它们,但我没有找到一种有效的方法。你知道我该如何解决这个问题吗?
我也尝试使用 [sdk=iphoneos*] 修饰符,但没有成功。
我想避免使用不同的构建配置,因为我觉得我必须将对主配置所做的更改合并到一个新的构建配置,该配置只是为了使用正确的代码签名身份。但是,我不熟悉 XCode 中的构建配置是如何工作的,所以如果您认为这可能是一个很好的解决方案,请随时教育我。
谢谢!