AppMill
  • ESTIM
    • ESTIMの特徴
    • ESTIMの使い方
    • 発注フロー
    • リリースまでの流れ
    • パーツ(機能)一覧
  • かんたん見積
  • 活用方法
  • Q&A
    • 契約・発注について
    • 開発について
    • ESTIMについて
  • メディア
  • お問い合わせ
  • Latest
  • 画面設計書
  • 要件定義
  • インタビュー
  • ディレクター
  • 仕様書
  • オフショア開発
  • trigger 
  • Crashlytics
  • Python
  • Fabric
  • Fastfile
  • Appfile
  • bundle id
  • Production Certificates 
  • Development Certificates 
  • Provisioning profile
  • LinterBot
  • YAMLファイル
  • Github
  • .xcconfig 
  • システムの環境
  • Cocoa pod
  • Gemfile
  • Bundle
  • Fastlane
  • Swiftlint
  • Travis CI
  • IOSプロジェクト
  • CI/CD
media-background

FabricでiOSアプリケーションをデプロイする

  • Travis CI
  • Fastlane
  • Fastfile
  • Fabric
  • Python
  • Crashlytics
person-image

ビン太郎

2020-07-13 16:10:20

Content

  1. 1. Fabricとは?
  2. 2. Fabricを設定する:
  3. 3. ローカルでアプリをビルドとアップロードします
  4. 4. CIにアップロード&ビルドします:
  5. まとめ

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 追加
  • キットを初期する
  • 案内書 : https://fabric.io/kits/ios/crashlytics/install

設定後の最初のバージョンのビルドに進み、すべてをインストールします。

  • ビルドをする時,各プロジェクトを区別する為に、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の設定でアプリを自動的にデプロイします
  • Travis CI
  • Fastlane
  • Fastfile
  • Fabric
  • Python
  • Crashlytics

関連記事

  • images-author ビン太郎

    Travis CIでiOSアプリのビルドトリガー

    2020-07-13 16:11:10
  • images-author ビン太郎

    Fastlaneの概観

    2020-07-13 16:09:18
  • images-author ビン太郎

    CI上でCertificateとProvisioning Profileを設定します

    2020-07-13 16:09:17
  • 運営会社

    • 株式会社Enlyt
    • Tel : 045-550-7030
    Enlyt公式サイト
    • ESTIMの特徴
    • ESTIMの使い方
    • 発注フロー
    • リリースまでの流れ
    • パーツ(機能)一覧
    • かんたん見積
    • 活用方法
    • メディア
    • 契約・発注について
    • 開発について
    • ESTIMについて
ESTIM
  • ESTIM
  • かんたん見積
  • 活用方法
  • Q&A
  • メディア
お問い合わせ
  • All Right Reserved
  • Privacy Policy