728x90
반응형
SMALL
두달 반 정도 프로젝트를 개발하고 배포하느라 너무 오랜만에 포스팅을 한다.
사이드로 프로젝트를 하면서 쌓인 이슈들이 너무 많았지만 하나하나 정리하면서 올려보려고 한다.
가장 많이 필요하면서도 정보가 부족했던 것에 대해서 먼저 하자면
Fastlane 이었다.
Fastlane 은 자동배포 관리 툴로 Xcode에서 아카이브하고 수동으로 프로세스를 진행해주던 것을 명령어 한번으로 Appstore Connect에 올려준다.
간단하게 사용법 및 필요한 정보들을 정리해 보겠다.
Install / Setting
- Xcode는 설치 되어있다고 가정하고 작성
Install Fastlane
- Bundle 로 설치하는 것이 추천 방식 → 번들러 설치가 더 번거로워서 homeBrew로 설치
brew install fastlane
설치되면
fastlane env
깔린거 확인.
- 프로젝트 디렉토리 들어가서
fastlane init
를 해주면 Fastlane 폴더가 생성되고 그 안에 fastFile 이 생성된다.
TestFlight
- 위에서 2번 입력하면 세팅을 좌라라해주다가 APPLE ID 입력하라고한다.
- 패스워드도 입력wea
- 문자로 보낸 코드 입력
다 끝나면 이렇게 fastlane 이라는 폴더가 생겼고
- 생성된 fastlaneFile 에 들어가서 아래와 같은 형식으로 잘 들어있는지 확인하고
이렇게 입력하라고 하지만, 애플 개발자계정에서 인증서, 프로파일, 프로비저닝 전부다 등록해줘야하고
해당 파일들을 keyChain에 등록해둬야한다.
Fastfile 내부에 입력값
platform :ios do
desc "Push a new beta build to TestFlight"
lane :beta do
get_certificates // 인증서 가져오기
get_provisioning_profile // 프로파일 가져오기
build_app(workspace: "youtProject.xcworkspace", scheme: "youtProject")
upload_to_testflight
end
end
troubleShooting
- 이렇게하면 바로 다 행복하게 완성될 것 같지만, 대부분의 애플계정은 이중보안을 이용한 인증을 거치고 있기떄문에 fastlane에서 앱 스토어에 Authorization을 하려면 앱 암호를 사용해야한다.
www.appleid.apple.com 에서 생성한 앱 암호를 따로 저장해둔다. - 이 저장한 암호를 가지고 Fastlane 에서 앱스토어에 사용자 인증에 사용하기 때문에
프로젝트디렉토리/fastlane 폴더에서 아래 명령어를 입력해서 파일을 만들어준다.
vi .env.defualt
- 파일안에 이렇게 암호를 입력한다.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=****-****-****-****
- 명령어 입력
fastlane beta
🚀 완성! 🚀
Release
- 릴리지할 때는 명령어를 release로 변경한 것 밖에 없다.
- 웹훅코드를 추가해봤다. 이렇게 하면 자동배포 성공시 디스코드 채팅방에 메시지가 보내진다.
- 만약 이 스크립트가 작동이 잘 되지 않는다면 웹훅코드만 덜어내고 다시 시행해보자
```
platform :ios do
desc "Push a new release build to the App Store"
lane :release do
get_certificates
get_provisioning_profile
Discord WebHook Test Script
discord_webhook_url = "https://discord.com/channels/1114768864304168960/1146068428088684605"
sh "curl -X POST -H 'Content-Type: application/json' -d '{\"content\": \"App has been successfully deployed to AppStoreConnect!\"}' #{discord_webhook_url}"
build_app(workspace: "youtProjectName.xcworkspace", scheme: "youtProjectName")
upload_to_app_store
end
end
728x90
반응형
LIST