1. Fabricとは?
FabricはPythonライブラリであり、これを使用すると、デプロイメントタスクだけでなく、本番サーバーへの開発環境管理タスクも実行できます。詳細にはFabricは
- コマンドラインに任意のPythonスクリプト実行できます。
- SSH経由で簡単に、Pythonの(Pythonic)の方法でシェルコマンドを実行できます。基本的に、多くのユーザーはFabricを日常的なタスクを自動化するツールとして使用します。
2. Fabricを設定する:
- Fabricアカウントを登録:
- ホームページをアクセスする: https://www.fabric.io
- パソコンにアプリをダウンロードして,ログインします。
- プロジェクトを選びます(Fabricはユーザーのコンピュータを自動的にスキャンして,作成したプロジェクトを表示します)
- 以下のステップで続けます。必須な3点を注意してください:
- PodFile に二つのライブラリ を追加します: Fabric と Crashlytics
pod 'Fabric'
pod 'Crashlytics'
- Run Script Build Phase 追加
- API Key 追加
- キットを初期する
設定後の最初のバージョンのビルドに進み、すべてをインストールします。
- ビルドをする時,各プロジェクトを区別する為に、Organizations を作成します。
Fabricのアカウントを再度アクセスしたら自分のビルドバージョンが見えます。必要な情報は:
- API Key
- Build Secret
- 次はアプリのDASH BOARD を編集します。
- Beta を選ぶ> Manage Group >グループ、メンバーなど追加したり編集したりすることができます。
このステップまではFabric の設定はほぼできました。
3. ローカルでアプリをビルドとアップロードします
- Fastfile のファイルを開いて lane を追加しましょう:
- キーの値はFabricで作成した個人キーを使用します。
desc "Upload Fabric"
private_lane :upload_fabric do |options|
crashlytics(
api_token: "YOUR_API_KEY",
build_secret: "YOUR_BUILD_SECRET",
notes_path: "./fastlane/release_notes.txt",
groups: ["#{options[:groups]}"]
)
end
- ビルドのリリースノートを作成する
desc "Create release notes"
private_lane :create_release_notes do |options|
sh "git log -1 --pretty=tformat:\"#{options[:format]}\" > release_notes.txt"
end
- ビルドが完了したときにFastlaneがFabricにアップロードし続けるためにlaneを編集します
- 送信するビルドの正しいgroup を指定する必要があります。
desc "Build App Local"
lane :build_local do
make_build_folder
build_ios_app(
scheme: "TheLastProject_Development",
workspace: "TheLastProject.xcworkspace",
configuration: "Debug",
export_method: "development",
output_directory: "./build",
output_name: "TheLastProject_Dev.ipa",
silent: true,
clean: true
)
create_release_notes(format: 'Appstore: %h %s')
upload_fabric(groups: "develop")
end
- Terminal を開いてローカルのビルドコマンドを実施します
bundle exec fastlane build_local
- ビルドとアップロードを成功したら以下のような結果画面が表示されます。
- ローカルで正常にテストした後、DASH BOARD Fabricページでビルドが成功したかどうかを確認できます。
4. CIにアップロード&ビルドします:
- ローカルで問題がない場合、次の大きな目標はCIです。 CIアプリビルドのlane を編集します
desc "Build App"
lane :build do
make_build_folder
disable_automatic_code_signing(
path: "TheLastProject.xcodeproj"
)
import_certificate(
keychain_name: "ios-build.keychain",
keychain_password: "travis",
certificate_path: "./scripts/certs/dev.p12",
certificate_password: "12345678"
)
update_project_provisioning(
xcodeproj: "TheLastProject.xcodeproj",
profile: "./scripts/profiles/TheLastProject_Dev.mobileprovision",
target_filter: "TheLastProject",
build_configuration: "Debug",
)
build_ios_app(
scheme: "TheLastProject_Development",
workspace: "TheLastProject.xcworkspace",
configuration: "Debug",
export_method: "development",
output_directory: "./build",
silent: true,
clean: true,
skip_profile_detection: true,
export_options: {
provisioningProfiles: { "com.fx.thelastproject": "TheLastProject_Dev" }
}
)
create_release_notes(format: 'Appstore: %h %s')
upload_fabric(groups: "batman")
enable_automatic_code_signing(
path: "TheLastProject.xcodeproj"
)
end
- そして、コミットをしてCIが実行されるのを待って、レポート結果が期待どおりかどうかを確認しましょう。
- 自分のキーを確保して下さい:
- キーを安全に管理するために、Travis CIの設定にて、環境変数(環境変数)を作成します。
- キーを使うソースコードの部分を編集します。
- 例: Fastfile ファイルの中に VAR_NAME を使用したいときに下記のような書き方で使いましょう。
ENV["VAR_NAME"]
- 2つの新しく作成された環境変数でアップロードした lane を編集します
desc "Upload Fabric"
private_lane :upload_fabric do |options|
crashlytics(
api_token: ENV["FABRIC_API_KEY"],
build_secret: ENV["FABRIC_BUILD_SECRET"],
notes_path: "./fastlane/release_notes.txt",
groups: ["#{options[:groups]}"]
)
end
Fabric のページはもう一度開いてチェックしましょう。ビルドのバージョンを見えるたら成功しました!あとは、テスターのグループを選択し、送信ボタンをクリックするだけで、テスターがアプリをダウンロードしてテストできるようになります。
まとめ
- Fabric & Crashlyticsを設定します
- Fabricにビルドをアップロードします
- テスターを管理ます
- ビルドのバージョンを管理します
- テスターにビルドを送信します
- Travis CIの設定でアプリを自動的にデプロイします