Fastlane: правильный способ добавления устройства к настройке?

Я использую fastlane для обработки инициализации.

Это то, что я сделал:

match nuke development 
match nuke distribution

то в полосе я имею это для каждого пакета.Если мне нужно предусмотреть:

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

Единственное, что работает каждый раз, когда я должен добавить устройство, - это уничтожить все и начать новый.

Каков правильный способ добавления устройства без необходимости nuke?

Я использую xcode8, я отключил автоматическое предоставление, например, предложенное fastlane.

Ответ 1

Начиная с версии 2.8 fastlane, появился новый способ добавления устройства через командную строку

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"

Ответ 2

Вы вызываете команду 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: '[email protected]'   # Optional, lets you override the Apple Member Center username.
)

И после того, как вам нужно позвонить

match development --force_for_new_devices

Используя параметр force_for_new_devices, совпадение проверяет, изменилось ли количество устройств с момента последнего совпадения, и при необходимости автоматически сгенерирует профиль подготовки. Вы также можете использовать 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

Ответ 3

Просто столкнулся с этой проблемой... команда 'refresh_profiles' запустила ошибку. Может быть, устарели? Этот script отлично работал у меня:

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

Ответ 4

Обновление: если вы пытаетесь добавить iPhone XS или XS Max (или более новый), вам нужно добавить тире после восьмой цифры, иначе он не будет успешно добавлен (так как формат изменяется для этих двух устройств, и предположительно iPad Pro в 2018 году также. Например, если ваш UDID/серийный номер - "123456789123456789123456", вам нужно добавить его как "12345678-9123456789123456".

Итак, чтобы добавить эти устройства, вы можете запустить:

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