DeployGateとは
作成したアプリをテスト配布するツールです。無料
https://deploygate.com/
コマンドが色々用意されている
面倒な作業(デプロイ、UDID追加など)が、dgコマンドで色々できます
- デプロイ
$ dg deploy
- UDID追加
以下のような感じで、自動でUDIDを追加してビルドまでして来れます
UDIDは、deployGateの共有ページにアクセスした人のものを収集しているようで、自動的にUDID一覧リストに表示されています。
それを取得してきて、1つずつ追加するかどうか聞いてきます。
それらのUDIDを追加して、DeveloperCenterで新しいプロビジョニングを作成します
$ dg add-device
[11:42:14]: $ xcodebuild -list -workspace /path/to/MY_PROJ.xcodeproj/project.xcworkspace
Please input your app bundle identifier
Example: com.example.ios
Enter your app bundle identifier: XXX.XXX.XXX
Device [Name: xxxxxx - iPhone 7 Plus (Global), UDID: XXXXXXXXXXXXXXXXXXXXXXXX]
Do you want to add this device? (y/n) |y| y
Please enter your email and password for Apple Developer Center
to set up/download provisioning profile automatically so you can
export the app without any extra steps.
Note: Your password will be stored to your Keychain and never be sent to DeployGate.
Email: xxxx@xxxx.xxx
-------------------------------------------------------------------------------------
Please provide your Apple Developer Program account credentials
The login information you enter will be stored in your macOS Keychain
You can also pass the password using the `FASTLANE_PASSWORD` environment variable
More information about it on GitHub: https://github.com/fastlane/fastlane/tree/master/credentials_manager
-------------------------------------------------------------------------------------
Password (for xxxx@xxxx.xxx): ***********
Device [Name: xxxxxx - iPhone 7 Plus (Global), UDID: XXXXXXXXXXXXXXXXXXXXXXXXX] successfully registered.
+-------------------------------------+-----------------------------+
| Summary for sigh 2.57.2 |
+-------------------------------------+-----------------------------+
| adhoc | true |
| app_identifier | xxx.xxx.xxx |
| username | xxxx@xxxx.xxx |
| team_id | XXXXXXXX |
| force | true |
| cert_id | XXXXXXXX |
| development | false |
| skip_install | false |
| ignore_profiles_with_different_name | false |
| skip_fetch_profiles | false |
| skip_certificate_verification | false |
| platform | ios |
+-------------------------------------+-----------------------------+
[11:42:56]: Starting login with user ‘xxxx@xxxx.xxx’
[11:43:00]: Successfully logged in
[11:43:00]: Fetching profiles...
[11:43:00]: Verifying certificates...
[11:43:05]: Found 1 matching profile(s)
[11:43:05]: Recreating the profile
[11:43:12]: Creating new provisioning profile for ‘xxx.xxx.xxx’ with name ‘xxx.xxx.xxx AdHoc' for 'ios' platform
[11:43:15]: Downloading provisioning profile...
[11:43:16]: Successfully downloaded provisioning profile...
[11:43:16]: Installing provisioning profile...
/tmp/dg/provisioning_profile/AdHoc_xxx.xxx.xxx.mobileprovision
Cleaning local Provisioning Profiles...
Delete /path/to/Library/MobileDevice/Provisioning Profiles/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.mobileprovision
Finish cleaning local Provisionig Profiles
[11:43:26]: $ xcodebuild -list -workspace /path/to/PROJ.xcodeproj/project.xcworkspace
Please input your app bundle identifier
Example: com.example.ios
Enter your app bundle identifier: xxx.xxx.xxx
[11:43:56]: $ xcodebuild -list -workspace /path/to/PROJ.xcodeproj/project.xcworkspace -configuration Release
+------------------+---------------------------------------------------------------------------------------+
| Summary for gym 2.57.2 |
+------------------+---------------------------------------------------------------------------------------+
| export_method | ad-hoc |
| workspace | /path/to/PROJ.xcodeproj/project.xcworkspace |
| configuration | Release |
| scheme | xxxxx |
| destination | generic/platform=iOS |
| output_name | xxx |
| build_path | /path/to/Xcode/Archives/2017-12-11 |
| clean | false |
| output_directory | . |
| silent | false |
| skip_package_ipa | false |
| buildlog_path | ~/Library/Logs/gym |
| xcode_path | /Applications/Xcode.app |
+------------------+---------------------------------------------------------------------------------------+
[11:44:00]: $ set -o pipefail && xcodebuild -workspace /path/to/PROJ.xcodeproj/project.xcworkspace -scheme xxxxx -configuration Release -destination 'generic/platform=iOS' -archivePath /path/to/Xcode/Archives/2017-12-11/xxxx\
[11:44:01]: ▸ Building xxxx/xxxx [Release]
[11:44:01]: ▸ Check Dependencies
[11:44:13]: ▸ Compiling
エラーが起きる
sh: /Library/Developer/CommandLineTools//usr/bin/xcodebuild: No such file or directory
dgコマンドは、内部でXcodetoolを使っていますが、そこへのパスが通っていないと。
以下のコマンドを打ちます
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
Xcode.appまでのパスは、実際の自分のmac環境でXcodeの配置している場所に合わせて変えてください
自分の場合、複数のXcodeを常時インストールしており、ファイル名にバージョンを書き足して"Xcode.9.0.app"とかにしているため、パスが通らなくて死んでいました。