web-dev-qa-db-fra.com

Fastlane: bon moyen d’ajouter un périphérique au provisioning?

J'utilise fastlane pour gérer le provisionnement.

C'est ce que j'ai fait:

match nuke development 
match nuke distribution

puis dans une voie, j'ai ceci pour chaque bundleId que je dois prévoir pour:

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

Quand je veux télécharger le provisioning, j'ai une piste qui fait ceci:

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

Tout cela me permet de travailler et de construire correctement sur des appareils qui étaient déjà sur le portail à l’époque de Nuke.

Comment mettre à jour correctement le provisioning si je veux ajouter un périphérique?

J'ai essayé ceci:

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

Ça ne marche pas.

Je reçois cette erreur:

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

La seule chose qui fonctionne à chaque fois que je dois ajouter un appareil est de tout détruire et de repartir à zéro.

Quelle est la bonne façon d'ajouter un appareil sans avoir à nuke?

J'utilise xcode8, j'ai désactivé le provisioning automatique comme suggéré par fastlane.

13
zumzum

Depuis la version 2.8 de fastlane, il existe un nouveau moyen d’ajouter un périphérique via la ligne de commande

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

Pour actualiser, par exemple Le profil de fourniture de développeur pour inclure ce périphérique est exécuté:

fastlane match development --force 


Pour obtenir le numéro de série (udid) d'un téléphone connecté, exécutez simplement la commande system_profiler SPUSBDataType | grep -A 11 -w "iPad\|iPhone\|iPad"

15
David Boho

Vous appelez la commande fastlane pour enregistrer un nouveau périphérique 

# 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.
)

Et après avoir besoin d'appeler

match development --force_for_new_devices

En utilisant le paramètre force_for_new_devices, match vérifiera si le nombre de périphériques a changé depuis la dernière fois que vous avez exécuté la correspondance, et régénérera automatiquement le profil de provisioning si nécessaire. Vous pouvez également utiliser force: true pour générer à nouveau le profil de provisioning à chaque exécution.

UPDATE 20.12.2016 Ou de manière plus intuitive

 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
7
Jakub Průša

Je viens de rencontrer ce problème ... la commande 'refresh_profiles' a généré une erreur. Peut-être obsolète? Ce script a parfaitement fonctionné pour moi:

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
2
Alec Lorraine

Mise à jour: si vous essayez d’ajouter un iPhone XS ou XS Max, vous devez ajouter un tiret après le huitième chiffre, sinon il ne sera pas ajouté correctement (car le format a été modifié pour ces deux appareils, et vraisemblablement pour 2018 iPad. Les avantages aussi. Par exemple, si votre numéro UDID/numéro de série est "123456789123456789123456", vous voudrez l’ajouter en tant que "12345678-9123456789123456".

Donc, pour ajouter ces périphériques, vous pouvez exécuter:

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