介绍

sign可以创建,更新,下载和修复 provisioning profiles(使用一个命令)。 它支持App Store,Ad Hoc,开发和企业配置文件,并支持好的特性,如自动添加所有测试设备。

特点:

  • 下载最新的应用配置文件
  • 更新配置配置文件,当它已过期
  • 修复配置配置文件,当它坏了
  • 创建新的配置配置文件(如果尚不存在)
  • 支持App Store,Ad Hoc和Development Profile
  • 支持多个Apple帐户,将您的凭据安全地存储在钥匙串中
  • 支持多个团队(multiple Teams)
  • 支持企业应用配置(Enterprise Profiles)

为什么不用Xcode自动完成这些事情?

  • sign可以轻松地集成到您的CI服务器(例如:Jenkins)
  • Xcode有时使现有所有的配置文件无效
  • 你可以控制发生什么
  • 您仍然可以获得签名文件(signing files),然后您可以使用它们构建脚本,或者将其存储在git中。

使用效果一览 使用效果

使用

进入工程目录后,仅需要一行命令,

fastlane sigh #默认会在当前文件夹下生成针对appstore的`.mobileprovision`

| 命令 | 描述 |
| — | — |
| fastlane sigh | App Store profile 或 InHouse profile|
|fastlane sigh -a com.krausefx.app -u username|指定bundle identifier 和 username(apple id)| |fastlane sigh –adhoc| 生成Ad Hoc profile| |fastlane sigh –development|生成 development profile| |fastlane sigh -o “./Certificates/”| 指定输出文件夹| |fastlane sigh download_all|下载所有的 provisioning profiles| |fastlane sigh –help|列出帮助|

高级使用

| 命令 | |
| — | — |
| fastlane sigh –skip_install |默认情况下,sigh将下载的配置文件安装在您的机器上。 如果只想生成配置文件并跳过安装,使用该命令 |
|fastlane sigh -a com.krausefx.app -u username -q “myProfile.mobileprovision”| 用特定的名字保存,使用 -q | |fastlane sigh –skip_certificate_verification| 跳过验证安装在本机上的 code signing identity| |fastlane sigh –force|如果您需要更新配置配置文件,而不管其状态如何,请使用–force选项。这给您一个具有最大生命周期的配置文件。 –force还会将所有可用的设备添加到此配置文件中。| |fastlane sigh –help|查看帮助:列出可用参数和命令|

默认情况下,sigh将包括开发配置文件上的所有证书,以及其他类型的第一个证书。 如果需要指定要使用的证书,可以使用环境变量SIGH_CERTIFICATE,或将证书的名称或到期日期作为参数传递:

fastlane sigh -c "SunApps GmbH"

在fastlane中使用

和fastlane配合起来使用,非常有趣。 编辑Fastfile:

lane :beta do
  cert
  sigh(force: true)
end

force:true将确保在每次运行时重新生成配置配置文件。 这将使得sign总是使用正确的签名证书(signing certificate),证书将会被安装到本机上。

修复(Repair)

sigh可以自动修复已过期(expired)或无效(invalid)的所有现有provisioning profiles。

fastlane sigh repair

重签名(Resign) ✨✨✨

如果您生成了您的ipa文件,但希望将不同的code signing应用于ipa文件,则可以使用sigh resign:

fastlane sigh resign

如果ipa文件和配置文件位于当前文件夹中,sigh将会自动找到他们。

下面的命令可以传递更多信息:

fastlane sign resign ./path/app.ipa --signing_identity "iPhone Distribution: Felix Krause" -p "my.mobileprovision"

具体操作,下一篇文章再详细介绍。