如何在IOS cordova项目上自动设置签名团队?

时间:2017-06-05 11:09:54

标签: ios xcode cordova ionic3 fastlane

我正在尝试使用fastlane在Jenkins中自动构建/部署我的hybdrid移动应用程序。 我使用ionic(v3.3.0)和cordova(v7.0.1)作为来源。我使用fastlane v2.36.0,Xcode是版本8.3.2。

我在jenkins工作中运行的命令

yarn
ionic cordova prepare
fastlane ios build

fastlane / FastFile

platform :ios do
  before_all do
  end

  ios_project_path = "platforms/ios/awesomeproject.xcodeproj"

  desc "Build for IOS"
  lane :build do
    increment_build_number(
      xcodeproj: ios_project_path,
      build_number: ENV["BUILD_NUMBER"]
    )

    # Recreate schemes to ensure a smooth transition from cordova to gym
    recreate_schemes(project: ios_project_path)

    update_project_team(
      path: ios_project_path,
      teamid: "TEAMID"
    )

    #update_provisioning_profile_specifier(xcodeproj: ios_project_path)


      gym(scheme: "awesomeproject",
          configuration: "Debug",
          clean: true,
          project: ios_project_path,
          output_directory: "target")
  end
end

fastlane / Appfile

package_name "com.xxx.awesomeapp"

app_identifier "com.xxx.awesomeapp" # The bundle identifier of your app
apple_id "xxx.xxxx@xxx.com" # Your Apple email address

team_id "TEAMID" # Developer Portal Team ID

命令fastlane ios build在健身指令上失败并显示错误

  

产品类型'应用程序'需要进行代码签名。在SDK' iOS中   10.3'

fastlane日志中的详细错误是

  

检查依赖项签署" awesomeproject"需要开发   球队。在项目编辑器中选择一个开发团队。代码签名是   产品类型要求'应用程序'在SDK' iOS中   10.3'

Cordova生成的xcode项目已激活自动签名,但缺少签名团队。 到目前为止我使用的解决方法是在第一次生成platform / ios文件夹时手动选择Team with Xcode。但是如果我删除了cordova生成的平台文件夹,我需要重新选择XCode中的团队。

有没有办法选择Signova团队使用Cordova或任何fastlane插件?我愿意使用任何解决方案,脚本。 所以我的构建将完全自动化。 update_project_team指令无效。

1 个答案:

答案 0 :(得分:7)

在项目的根目录中创建一个名为build.json的文件,其中包含您要用于对应用进行签名的团队ID和配置文件GUID:

build.json

{
  "ios": {
    "debug": {
      "codeSignIdentity": "iPhone Developer",
      "provisioningProfile": "{your development profile}",
      "developmentTeam": "{your Team ID}",
      "packageType": "development"
    },
    "release": {
      "codeSignIdentity": "iPhone Distribution",
      "provisioningProfile": "{your distribution profile}",
      "developmentTeam": "{your Team ID}",
      "packageType": "app-store"
    }
  }
}

然后,当您使用Cordova CLI构建时,将使用这些签名凭据。

注意:根据Cordova documentation,Xcode 8和iOS 10不推荐使用上述语法,不再需要配置文件GUID。但是,如果没有使用Cordova v7.0.1指定配置文件,我就无法使其正常工作。