fastlane을 적용하여 앱스토어에 앱 업데이트
이번 섹션은 앱 출시 후 업데이트에 관해 설명하고 있습니다.
이전 튜토리얼에 이어서 참고하시면 됩니다 ^^
튜토리얼
우선 fastlane이 setup되어있는 상태라고 가정하고 튜토리얼을 작성할 예정입니다. fastlane이 해당 프로젝트에 setup되지 않은 분은 fastlane을 적용한 QA 프로세스 자동화 게시물의 초반부분을 참고해주세요!
Release note 수정
앱의 업데이트 사항을 /fastlane/metadata/ko/release_notes 에 작성합니다.
Build, Version 변경
앱을 업데이트 하기 위해서는 빌드 넘버와 앱스토어에 노출될 버전 넘버를 변경해야 합니다.
이건 직접 프로젝트 내에서 수정하여도 되지만, fastfile 내에서도 아래와 같은 커맨드를 작성하여 버전을 올릴 수 있습니다.
increment_version_number
increment_build_number
여기서 주의사항은
Version은 A.B.C 형태로 작성되어 있어야 에러를 뿜지 않습니다.
Bundle은 agvtool이라는 것을 사용하고 있기 때문에, 최초에 한번 아래와 같은 셋팅 과정을 거쳐야 정상적으로 버전이 올라갑니다.
https://developer.apple.com/library/content/qa/qa1827/_index.html
Build후 업로드
이제 다왔습니다!
자동화 하기 전에는 itunesConnect에서 해당 버전을 만들어야지만 빌드를 업로드 할 수 있었는데요.
아래 deliver에서 앱버전을 옵션으로 주지 않으면, info.plist에 작성된 version에 따라 업로드 해당 버전이 생성됩니다.
빌드하고 itunesConnect에 전달하는 코드는 1 섹션에서 작성된것과 동일합니다.
gym(scheme: "TodayDo",
export_method: "app-store")
deliver(
# 메타데이터와 빌드파일을 업로드 후 자동으로 제출 유무
submit_for_review: true,
force: true,
# 자동으로 출시 여부에 대한 옵션입니
automatic_release: false,
# 만약 메타 데이터만 itunesConnect에 업로드하고싶다면, 아래의 옵션을 true로 두어 .ipa 파일이 업로드 되지 않도록 합니다.
skip_binary_upload: false,
# 메타데이터의 filePath를 입력
metadata_path: "./metadata",
# 자동 릴리즈하는 옵션
automatic_release: true,
# itunesConnect에서 스크린샷을 올렸다면 자동으로 fastlane deliver download_metadata 을 실행했을 때 디렉토리가 자동으로 생상되어 굳이 작성할 필요가 없습니다.
# 만약 앱스토어용 스크린샷을 메타파일에서 폴더를 따로 생성해서 자동으로 인지하지 못하는 디렉토리에 있다면 filePath를 적어줍니다.
screenshots_path: "./screenshots",
# 앱 버전을 생성하거나 수정합니다.
app_version: "1.0.2",
skip_app_version_update: false,
# 메타 데이터를 업로드 하지 않는가에 대한 옵션입니다. 스크린샷은 메타데이터와 별개로 업로드 됩니다.
skip_metadata: false,
# 심사 시, IDFA(애플 광고 식별자)에 대한 정보입니다.
submission_information: {
add_id_info_limits_tracking: true,
add_id_info_serves_ads: true,
add_id_info_tracks_action: true,
add_id_info_tracks_install: true,
add_id_info_uses_idfa: true,
content_rights_has_rights: true,
content_rights_contains_third_party_content: true,
export_compliance_platform: 'ios',
export_compliance_compliance_required: false,
export_compliance_encryption_updated: false,
export_compliance_app_type: nil,
export_compliance_uses_encryption: false,
export_compliance_is_exempt: false,
export_compliance_contains_third_party_cryptography: false,
export_compliance_contains_proprietary_cryptography: false,
export_compliance_available_on_french_store: false
}
)
기다리기.........
# 전체 코드
lane :update do
sync_code_signing(type: "appstore")
increment_build_number
increment_version_number
gym(scheme: "TodayDo",
export_method: "app-store")
deliver(
# 메타데이터와 빌드파일을 업로드 후 자동으로 제출 유무
submit_for_review: true,
force: true,
# 자동으로 출시 여부에 대한 옵션입니
automatic_release: true,
# 만약 메타 데이터만 itunesConnect에 업로드하고싶다면, 아래의 옵션을 true로 두어 .ipa 파일이 업로드 되지 않도록 합니다.
skip_binary_upload: false,
# 메타데이터의 filePath를 입력
metadata_path: "./metadata",
# itunesConnect에서 스크린샷을 올렸다면 자동으로 fastlane deliver download_metadata 을 실행했을 때 디렉토리가 자동으로 생상되어 굳이 작성할 필요가 없습니다.
# 만약 앱스토어용 스크린샷을 메타파일에서 폴더를 따로 생성해서 자동으로 인지하지 못하는 디렉토리에 있다면 filePath를 적어줍니다.
screenshots_path: "./screenshots",
# 앱 버전을 생성하거나 수정합니다.
app_version: "1.0",
skip_app_version_update: false,
# 메타 데이터를 업로드 하지 않는가에 대한 옵션입니다. 스크린샷은 메타데이터와 별개로 업로드 됩니다.
skip_metadata: false,
# 심사 시, IDFA(애플 광고 식별자)에 대한 정보입니다.
submission_information: {
add_id_info_limits_tracking: true,
add_id_info_serves_ads: true,
add_id_info_tracks_action: true,
add_id_info_tracks_install: true,
add_id_info_uses_idfa: true,
content_rights_has_rights: true,
content_rights_contains_third_party_content: true,
export_compliance_platform: 'ios',
export_compliance_compliance_required: false,
export_compliance_encryption_updated: false,
export_compliance_app_type: nil,
export_compliance_uses_encryption: false,
export_compliance_is_exempt: false,
export_compliance_contains_third_party_cryptography: false,
export_compliance_contains_proprietary_cryptography: false,
export_compliance_available_on_french_store: false
}
)
end
위와같은 과정으로 앱을 업데이트 하는 모든 과정 lane을 작성해두었습니다.
앱 업데이트 시 fastlane update
만 터미널에 작성하고 티타임을 즐기다 오면 자동으로 심사 제출에 성공할 것입니다!
'개발 > swift' 카테고리의 다른 글
@ attribute, @ symbol (0) | 2018.06.07 |
---|---|
TDD in iOS (#1 - UnitTest) (1) | 2018.05.31 |
fastlane을 적용하여 앱스토어에 앱 배포하기(배포) #1 (0) | 2018.05.29 |
fastlane을 적용하여 팀원간 인증서 동기화 하기 (0) | 2018.05.29 |
fastlane을 적용한 QA 프로세스 자동화 (0) | 2018.05.29 |
댓글