-
iOS 앱 자동화 Fastlane Fastfile 작성 Cheatsheet개발/Swift 2024. 4. 29. 17:30
프롬프트 활용 input 값 받아 사용하기
ex> 출시노트에 사용될 텍스트 or 테스터 이메일 받아오기
title = prompt(text: "출시 노트를 작성해 주세요\\n 개요: ") show_update_popup = prompt(text: "업데이트 팝업 노출 여부: ", boolean: true) description = prompt(text: "변경사항: ", multi_line_end_keyword: "END") testers = prompt(text: "테스터 이메일 입력: ", multi_line_end_keyword: "END")
터미널에서 바로 입력하여 값 받아오기
lane :beta_release do |options| version = options[:version] number = options[:number] //사용 fastlane beta_release version:1.1.1 number:3
다른 레인으로 값 전달 하기
상위 lane upload_to_firebase(title: title, show_update_popup: show_update_popup, description: description, environment: "staging", testers: testers) 하위 lane lane :upload_to_firebase do |options| title = options[:title] show_update_popup = options[:show_update_popup] description = options[:description] environment = options[:environment] testers = options[:testers]
앱 버전, 빌드넘버 올리기
increment_version 액션 사용시 infoPlist 를 버전값으로 수정해서 깔끔하게 버전 변경 되지 않음
infoPlist 에서 버전값을 MARKETING_VERSION 으로 참조하고있어 맞지 않는 방식,
MARKETING_VERSION 와 CURRENT_PROJECT_VERSION 를 직접 수정하여 버전 세팅하도록 정의
desc "Set version and build number" lane :set_version do |options| version = options[:version] number = options[:number] project = Xcodeproj::Project.open("../xxxxxx.xcodeproj")//프로젝트명 xc_target = project.targets.find { |target| target.name == "xxxxxx" } //타겟명 xc_target.build_configurations.each { |build_configuration| unless version.nil? //input 값으로 version 정보 넣어줬을때만 수정 build_configuration.build_settings["MARKETING_VERSION"] = version //여기서 바꿔줌 end unless number.nil? build_configuration.build_settings["CURRENT_PROJECT_VERSION"] = number end } project.save() end
해당 하는 set_version 레인을 호출 후에 build_app() 액션 불러주면 됨
set_version(options) build_app(workspace: "xxxxxx.xcworkspace", scheme: "xxxxxxscheme", configuration: "Release", export_method: "app-store")
테스트플라이트 등록
upload_to_testflight(app_identifier: "번들아이디", skip_waiting_for_build_processing: true)
이때 apple id , 비밀번호 정보가 없으면 authorization 에러 가 발생
[Application Loader Error Output]: Unable to upload archive. Failed to get authorization for username 'XXXX' and password. (
필요한데 해당 정보를 .env 파일에 정리 해줘야함 (https://appleid.apple.com/account/manage 에서 앱 암호 발급후 )
//.env FASTLANE_USER = "애플아이디 이메일" FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD = "앱 암호"
'개발 > Swift' 카테고리의 다른 글
[Swift] CoreData 사용해보기: CRUD 구현 가이드 (0) 2024.05.18 [Swift] Tab bar 와 Page view를 동시에 사용할때 (0) 2024.05.18 Swift 딥링크 처리- AppDelegate와 SceneDelegate (0) 2024.04.12 Xcode Instrument 톺아보기 (0) 2024.04.11 Crashlytics & Google Analytics 를 이용한 원인 분석 (0) 2024.04.11