web-dev-qa-db-ja.com

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)

これらすべてにより、私は核兵器の時代にすでにポータルに存在していたデバイスで正常に動作し、構築することができます。

デバイスを追加したい場合、プロビジョニングを正しく更新するにはどうすればよいですか?

私はこれを試しました:

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で提案されているように自動プロビジョニングを無効にしました。

20
zumzum

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"を実行するだけです

26
David Boho

新しいデバイスを登録するために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パラメーターを使用することにより、matchは、最後にmatchを実行してからデバイス数が変更されたかどうかを確認し、必要に応じてプロビジョニングプロファイルを自動的に再生成します。 force:trueを使用して、実行ごとにプロビジョニングプロファイルを再生成することもできます。

2016年12月12日更新またはより直感的な方法

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

この問題に遭遇しました... '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
2
Alec Lorraine

更新:iPhone XSまたはXS Maxを追加しようとしている場合、8桁の後にダッシュを追加する必要があります。そうしないと、追加できません(これらの2つのデバイスとおそらく2018 iPadの形式が変更されているため)長所も)。たとえば、UDID /シリアル番号が"123456789123456789123456"の場合、"12345678-9123456789123456"として追加します。

したがって、これらのデバイスを追加するには、次のコマンドを実行します。

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