공식문서를 보고 사전 설정을 해준다.
안드로이드 설정
IOS 설정
번호만 보고 따라하면 되도록 작성함
터미널에서 brew install fastlane 로 fastlane을 설치한다.
rn프로젝트의 android,ios폴더에서 fastlane init를 실행한다.
fastlane init 시작할 준비가 되었는지 확인하는 메시지가 표시된 후 몇 가지 정보를 입력해야 합니다. 빠르게 시작하려면 다음 단계를 따르세요.
엔터를 누르며 init을 완료하면 Fastfile이 생겼을 것이다.
Fastfile을 조금 수정해서 다음과 같이 만들었다....
lane :beta do
gradle(task: "bundleRelease")
upload_to_play_store(track: 'internal')
end
...
이제 fastlane beta를 입력하면 ./gradlew bundleRelease를 하는 것 처럼 aab파일을 만들게 되고 내부테스트 트랙에 배포를 하게된다.
여기까지 하면 aab파일은 만들어지지만 배포단계에서 에러가 난다.
구글플레이콘솔과 연결되지 않았기 때문이다.
Google Cloud Console에서 서비스 계정 생성 + Play Console 권한 부여를 해야한다.
5. [API 및 서비스 메뉴/API라이브러리]에서 Google Play Android Developer API를 검색해서 활성화한다.
6. [IAM 및 관리자/서비스계정]에서 서비스 계정 만들기
7. 계정이 만들어지면 그 계정을 눌러서 키 생성 + 저장
8. 그 계정의 이메일을 복사한다. 구글 플레이콘솔에서 사용자 및 권한에서 사용자로 이메일을 추가한다.
9. 저장한 키를 프로젝트의 안드로이드 폴더에 저장 android/~.json
10. android/fastlane/Appfile을 수정한다.
json_key_file("~.json")
package_name("com.~.~")
fastlane beta 명령어를 사용하여 내부테스트로 배포가 된다. (배포할때마다 VersionCode를 올리는 것은 여전히 수동이다.)ios/fastlane/Fastfile을 수정default_platform(:ios)
platform :ios do
desc "Push a new beta build to TestFlight"
lane :beta do
increment_build_number(xcodeproj: "g~.xcodeproj")
api_key = app_store_connect_api_key(
key_id: "~",
issuer_id: "~",
key_filepath: "./fastlane/~.p8", # p8 파일 경로 직접 지정
duration: 1200,
in_house: false
)
build_app(
workspace: "~.xcworkspace",
scheme: "~",
configuration: "Release",
clean: true,
export_method: "app-store",
export_options: {
signingStyle: "automatic"
},
xcargs: "-allowProvisioningUpdates"
)
upload_to_testflight(
api_key: api_key,
skip_waiting_for_build_processing: false # 업로드 후 처리 대기 시간을 건너뛸지 여부
)
end
end
fastlane beta 명령어를 사용하여 testflight로 배포가된다.추가
앱아이디,팀,계정등이 바뀌었을때 fastfile을 수정해야한다.
그때 필요한 ID찾는 법:
Developer Portal Team ID와 AppStore Connect Team ID 찾기