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

时间:2016-09-23 17:21:44

标签: ios fastlane

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

这就是我所做的:

match nuke development 
match nuke distribution

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

match(type: "development", app_identifier: "com.myCompany.myApp", force_for_new_devices: true)

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

match(type: "development", app_identifier: "com.myCompany.myApp", readonly: true)

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

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

我试过了:

match development --force_for_new_devices true -a com.myCompany.myApp

它不起作用。

我收到此错误:

Provisioning profile '82afbd5b-9f19-4c78-b3ac-56a3565ce3f2' is not available on the Developer Portal

每次我必须添加设备时唯一有效的方法就是核对所有内容并重新开始。

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

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

4 个答案:

答案 0 :(得分:17)

自fastlane 2.8版以来,有一种通过命令行添加设备的新方法

_wait_and_click({'by': By.ID, 'value': 'next-button'}, 60)

要刷新,例如要包含此设备的开发人员配置文件:

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

要获取已连接手机的udid(序列号),只需运行命令fastlane match development --force

答案 1 :(得分:9)

您可以调用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.
)

在您需要致电后

match development --force_for_new_devices

通过使用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

答案 2 :(得分:2)

刚遇到这个问题......' refresh_profiles'命令引发了错误。可能会被弃用?这个脚本对我很有用:

desc "Register new devices"
lane :register do
  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)
  match(force: true)
end

答案 3 :(得分:1)

更新:如果您要添加iPhone XS或XS Max,则需要在第8位数字后添加破折号,否则它将无法成功添加(因为这两种设备的格式均已更改,并且大概也是2018年的iPad Pro)。例如,如果您的UDID /序列号为"123456789123456789123456",则需要将其添加为"12345678-9123456789123456"

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

fastlane run register_device udid:"12345678-9123456789123456" name:"Bob's iPhone XS Max"