【Xcode/Fastlane】バージョンとビルド番号を自動でインクリメントする方法!increment_version_number

【Xcode/Fastlane】バージョンとビルド番号を自動でインクリメントする方法!increment_version_number

この記事からわかること

  • iOS/Xcode自動化ツールFastlane使い方
  • 自動ビルドバージョン番号インクリメントする方法
  • increment_build_numberアクションincrement_version_number違い
  • agvtoolApple Generic Versioning Toolとは?
  • Your current version () does not respect the format A or A.B or A.B.Cエラー原因

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

Xcode/iOSアプリでFastlaneを使用してビルド番号とバージョン番号をインクリメントする方法をまとめていきます。導入やセットアップの方法は以下の記事を参考にしてください。

ビルド番号とバージョン番号は「General」に表示されている以下の部分です。

【Swift】iOSアプリをAppStoreで公開する方法!前準備とXcodeのビルドのやり方

ビルド番号をインクリメントする:increment_build_number

公式リファレンス:increment_build_number

Xcodeのビルド番号をインクリメントするにはincrement_build_numberアクションを使用します。build_appアクションの前に記述することでビルド前に値を増加させることができます。


default_platform(:ios)

platform :ios do
  desc "Create ipaファイル"
  lane :build do
    # ビルド番号インクリメント
    increment_build_number

    # 自動署名
    automatic_code_signing(
      use_automatic_signing: true,
      team_id: XXXXXXXX # 自分のチームIDに置き換える
    )
    # ビルド(ipaファイル生成)
    build_app(
      scheme: "FastlaneTest",
      output_directory: "./build",       # 出力先ディレクトリ
      output_name: "FastlaneTest.ipa",   # 出力ファイル名
      export_xcargs: "-allowProvisioningUpdates"  # プロビジョニングプロファイルを自動的に更新
    )
  end
end

これでこのレーンを実行するたびにビルド番号が自動でインクリメントされるようになります。もしエラーが発生する場合は「Build Settings」>「Versioning」>「Versioning System」を「Apple Generic」に変更してみてください。

【Xcode/Fastlane】バージョンとビルド番号を自動でインクリメントする方法!increment_version_number

agvtool:Apple Generic Versioning Toolとは?

ビルド番号とバージョン番号をインクリメントする処理は内部的に「Apple Generic Versioning Tool」を使用しているようです。これはAppleが提供してるコマンドラインツールで、Xcodeプロジェクトのバージョン関連を管理する役割を持っています。

公式リファレンス:Automating Version and Build Numbers Using agvtool

そのためプロジェクトルートでagvtoolの以下コマンドを実行するとビルド番号とバージョン番号を同時にインクリメントすることができます。

$ agvtool next-version -all

引数に番号を指定すればその番号にすることも可能です。

$ agvtool new-version -all 1

バージョン番号をインクリメントする:increment_version_number

公式リファレンス:increment_version_number

Xcodeのバージョン番号をインクリメントするにはincrement_version_numberアクションを使用します。build_appアクションの前に記述することでビルド前に値を増加させることができます。


default_platform(:ios)

platform :ios do
  desc "Create ipaファイル"
  lane :build do
    # バージョン番号インクリメント
    increment_version_number

    # 自動署名
    automatic_code_signing(
      use_automatic_signing: true,
      team_id: XXXXXXXX # 自分のチームIDに置き換える
    )
    # ビルド(ipaファイル生成)
    build_app(
      scheme: "FastlaneTest",
      output_directory: "./build",       # 出力先ディレクトリ
      output_name: "FastlaneTest.ipa",   # 出力ファイル名
      export_xcargs: "-allowProvisioningUpdates"  # プロビジョニングプロファイルを自動的に更新
    )
  end
end

Your current version () does not respect the format A or A.B or A.B.C

バージョン番号をインクリメントしようとすると以下のエラーが発生してしまいました。翻訳すると現在のバージョン () は形式 A、A.B、または A.B.C を尊重していません。になるのですが、正しい形式になっていても発生しています。

Your current version () does not respect the format A or A.B or A.B.C

「Build Settings」>「Versioning」>「Versioning System」を「Apple Generic」に変更してみてもエラーは消えずagvtoolのコマンドを使用してバージョン番号をあげようとしてもうまく動作しませんでした。agvtoolがうまく動作していないのかも?

$ agvtool new-version -all 1

ちなみに上記の結果は以下でした。


Setting version of project FastlaneTest to: 
    1.

Also setting CFBundleVersion key (assuming it exists)

Updating CFBundleVersion in Info.plist(s)...

Cannot find "FastlaneTest.xcodeproj/../YES"

現状解決することができなかったので一旦見送っていますが、解決次第追記したいと思います。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index