🌟

【2024年11月】fastlaneによるiOSアプリのビルドとTestFlightへのアップロードの自動化

2024/11/19に公開

こんにちは、趣味で開発している個人アプリについて、fastlaneによるiOSアプリのビルドとTestFlightへのアップロードの自動化を行いました。
何回かやったことがあるのですが、地味にハマったので残しておきます。

コード

fastlane init

して、適当に選択しつつ、自動出力されたコードに手を加えています

.env.default
APP_IDENTIFIER="" # The bundle identifier of your app
APPLE_ID="" # Your Apple Developer Portal username

ITC_TEAM_ID="" # App Store Connect Team ID
TEAM_ID=""

FASTLANE_USER=""
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=""
Appfile
require 'dotenv'
Dotenv.load

app_identifier(ENV['APP_IDENTIFIER']) # The bundle identifier of your app
apple_id(ENV['APPLE_ID']) # Your Apple Developer Portal username

itc_team_id(ENV['ITC_TEAM_ID']) # App Store Connect Team ID
team_id(ENV['TEAM_ID']) # Developer Portal Team ID

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile
Fastfile
default_platform(:ios)

platform :ios do

  before_all do
    Dotenv.load
  end

  desc "Push a new beta build to TestFlight"
  lane :beta do
    increment_build_number(xcodeproj: "XXXXX.xcodeproj")
    build_app(
      scheme: "XXXX",
      export_xcargs: "-allowProvisioningUpdates"
    )
    upload_to_testflight
  end
end

ハマった点

error: exportArchive: No profiles for 'xxxxx' were found

-> build_appexport_xcargs: "-allowProvisioningUpdates"をつける
Automatically manage signingを有効にしているときはこれが必要っぽい

Fastlane : [altool] Error: Unable to upload archive. Failed to get authorization for username and password

-> 環境変数FASTLANE_USERFASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORDを設定する
-> https://stackoverflow.com/questions/74210927/fastlane-altool-error-unable-to-upload-archive-failed-to-get-authorization/74229749#74229749

Discussion