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.
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"
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
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
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"