Fastlane:将设备添加到配置的正确方法?

zum*_*zum 19 ios fastlane

我正在使用fastlane来处理配置.

这就是我做的:

match nuke development 
match nuke distribution
Run Code Online (Sandbox Code Playgroud)

然后在一个通道中,我为每个bundleId提供了这个我需要提供的内容:

match(type: "development", app_identifier: "com.myCompany.myApp", force_for_new_devices: true)
Run Code Online (Sandbox Code Playgroud)

当我想下载配置时,我有一个执行此操作的通道:

match(type: "development", app_identifier: "com.myCompany.myApp", readonly: true)
Run Code Online (Sandbox Code Playgroud)

所有这些让我可以在nuke时门户网站上的设备上工作和构建.

如果要添加设备,如何正确更新配置?

我试过这个:

match development --force_for_new_devices true -a com.myCompany.myApp
Run Code Online (Sandbox Code Playgroud)

这是行不通的.

我收到此错误:

Provisioning profile '82afbd5b-9f19-4c78-b3ac-56a3565ce3f2' is not available on the Developer Portal
Run Code Online (Sandbox Code Playgroud)

每次我必须添加一个设备时唯一有效的方法是核对一切并重新开始.

什么是添加设备而不必核武器的正确方法?

我正在使用xcode8,我禁用了fastlane建议的自动配置.

Dav*_*oho 30

从fastlane 2.8版开始,有一种通过命令行添加设备的新方法

fastlane run register_device udid:"1234…890" name:"My new iPhone"

要刷新例如开发人员配置文件以包含此设备运行:

fastlane match development --force


要获取已连接手机的udid(序列号),只需运行该命令即可 system_profiler SPUSBDataType | grep -A 11 -w "iPad\|iPhone\|iPad"


Jak*_*ůša 10

您可以调用fastlane命令来注册新设备

# Simply provide a list of devices as a Hash
register_devices(
  devices: {
    'Luka iPhone 6' => '1234567890123456789012345678901234567890',
    'Felix iPad Air 2' => 'abcdefghijklmnopqrstvuwxyzabcdefghijklmn',
  }
)

# Alternatively provide a standard UDID export .txt file, see the Apple Sample (https://devimages.apple.com.edgekey.net/downloads/devices/Multiple-Upload-Samples.zip)
register_devices(
  devices_file: './devices.txt'
)

# Advanced
register_devices(
  devices_file: './devices.txt', # You must pass in either `devices_file` or `devices`.
  team_id: 'XXXXXXXXXX',         # Optional, if you're a member of multiple teams, then you need to pass the team ID here.
  username: 'luka@goonbee.com'   # Optional, lets you override the Apple Member Center username.
)
Run Code Online (Sandbox Code Playgroud)

在你需要打电话之后

match development --force_for_new_devices
Run Code Online (Sandbox Code Playgroud)

通过使用force_for_new_devices参数,match将检查自上次运行匹配以来设备计数是否已更改,并在必要时自动重新生成配置文件.您还可以使用force:true在每次运行时重新生成配置文件.

更新20.12.2016 或更直观的方式

 desc "Register new device"
  lane :register_new_device do  |options|
      device_name = prompt(text: "Enter the device name: ")
      device_udid = prompt(text: "Enter the device UDID: ")
      device_hash = {}
      device_hash[device_name] = device_udid
      register_devices(
                       devices: device_hash
                       )
    refresh_profiles
  end
Run Code Online (Sandbox Code Playgroud)

  • 我应该把那些`register_devices`命令放在哪里?在`Matchfile`中? (2认同)

Ric*_*lla 7

更新:如果您尝试添加 iPhone XS 或 XS Max(或更新版本),则需要在第八位数字后添加破折号,否则将无法成功添加(因为这两个设备的格式已更改,大概还有 2018 年 iPad Pro)。例如,如果您的 UDID/序列号是,"123456789123456789123456"您需要将其添加为"12345678-9123456789123456".

因此,要添加这些设备,您可以运行:

fastlane run register_device udid:"12345678-9123456789123456" name:"Bob's iPhone XS Max"
Run Code Online (Sandbox Code Playgroud)