ios – xcodebuild命令行:通过DevelopmentTeam ID进行代码签名

我的应用程序为App Store发行一个bundleID.该应用程序还有一个小型的企业分发版本,因此与另一个bundleID.自动构建使用以下命令行设置bundleID并选择正确的签名标识:
xcodebuild -project XYZ.xcodeproj -target XYZ -sdk "iphoneos" -configuration "Debug" BUNDLE_IDENTIFIER=<bundleID_1_or_2> CODE_SIGN_IDENTITY="<identify_1_or_2" build

这种自动构建一直很好,直到最近我启用了iCloud功能.现在Xcode自动将以下内容添加到project.pbxproj中:

TargetAttributes = {
  QWERTY1234567890123456 = {
  DevelopmentTeam = XYZ123456;
    SystemCapabilities = {
      com.apple.iCloud = {
        enabled = 1;
      };
    };
  };
};

注意添加硬编码的“DevelopmentTeam = XYZ123456”;对于这两个版本,DevelopmentTeam ID不同.如何自动化?一个更简单的解决方案是在调用xcodebuild之前有一个脚本来修改project.pbxproj,但是我不是那个解决方案的粉丝.最好是创建一个新的“用户定义设置”,从而通过命令行传递,但我无法弄清楚如何将用户定义的设置与project.pbxproj中嵌入的DevelopmentTeam ID相关联.

解决方法

我们能够通过使用 sigh实用程序处理多个DevelopmentTeam ID,该实用程序提供自动化配置配置文件.我们将其用作 fastlane套工具的一部分.
sigh --team_id <DevelopmentTeamID>

或作为fastlane自动化的一部分(Fastfile):

sigh(team_id: "<DevelopmentTeamID>")

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...