-
fastlane - IPA & dSYM 파일 경로 변경하기Fastlane 2023. 5. 11. 12:47
안녕하세요. 그린입니다🍏
이번 포스팅에서는 fastlane을 사용하여 앱을 빌드하고 업로드할때 생기는 IPA & dSYM 파일의 다운로드 경로를 변경해보려 합니다🙋🏻
별도 파일 경로를 지정하지 않는다면?
먼저 왜 이걸 하게되었냐면 Tuist를 통해 최상단 경로인 workspace가 생성되는 경로에 fastlane을 붙여주었습니다.
그러다보니 실제 Fastfile을 구축해 테스트플라이트에 앱을 업로드 배포하기까지 과정인 아래 주요 3단계를 거치게 됩니다.
(물론 그 전에도 빌드 넘버를 올려주고 각종 앱에 맞는 설정을 하겠지만요..!)
- update_app_identifier
- build_app
- upload_to_testflight
build_app 단계를 거치며 앱이 빌드되고 iOS 앱 파일인 IPA 파일이 생성되게 됩니다.
또한 마지막 upload_to_testflight 단계에서 실제 테스트플라이트에 앱이 올라가면서 dSYM 파일이 생성됩니다.
그럼 현재는 경로를 특별하게 지정해주지 않았기에 workspace와 fastlane 폴더가 위치한 최상단 경로에 IPA 파일과 dSYM 파일이 위치하게 됩니다.
아래와 마찬가지로 말이죠😲
그런데 우리의 욕심은 이런 지저분하게 나열되는걸 보기 힘들잖아요?
그래서 한번 깔끔하게 폴더링을 해보고 해당 경로로 저장될 수 있게 구성해보려 합니다😃저장될 파일 경로를 지정해보기
먼저 위에서 말했듯 ipa 파일은 fastlane의 build_app 메서드를 돌면서 만들어지고 dSYM.zip 파일은 upload_to_testflight 후 실제 App store connect에 해당 앱이 다 올라간 후 생성이 되게 됩니다.
그렇기에 해당 upload_to_testflight 메서드 후 download_dsyms이라는 fastlane에서 제공하는 메서드를 통해 경로를 지정해 dSYM을 받아야 합니다.
한번 하나씩 해볼까요?
build_app 메서드 구성하기
우선, 순서상 build_app 메서드를 보겠습니다!
먼저 build_app을 구성할 수 있는 파라미터들은 정말 많아서 여기서 다 나열하면 주객전도라 아래 참고링크를 참조해주시면 될것 같아요.
요 포스팅에서는 핵심만 가져와보겠습니다.
build_app( workspace: "SeeYouAgain.xcworkspace", output_directory: "./Projects/App/Outputs/Archives/DEV", scheme: "#{scheme}-SeeYouAgain", xcargs: "-allowProvisioningUpdates" )
보시면 해당 워크스페이스를 빌드 시켜주는것임으로 workspace 파라미터에 워크스페이스 네이밍을 넣어주고 scheme과 xcargs를 해당 프로덕트에 맞게 구성해줍니다.
여기서 하나 추가된건 output_directory에요!
요 빌드를 돌려서 산출된 ipa 파일을 저 경로에 저장해주겠다~ 이 의미입니다🎉
그럼 경로 결과물은 한번에 보도록 하고 이어서 download_dsyms 메서드를 볼께요!
download_dsyms 메서드 구성하기
마지막으로 테플에 앱이 업로드된 후 dSYM이 생성되는데 이때 이 dSYM의 다운로드 경로를 변경할 수 있습니다.
우선 fastlane 공식문서에 나온 download_dsyms 메서드를 살펴 볼까요?
Bitcode 앱을 위한 App Store Connect로 부터 dSYM 파일을 다운로드 해주는 메서드입니다.
해당 메서드는 ipa 파일이 Apple에서 다시 컴파일 된 후 App Store Connect에서 dSYM 파일을 다운합니다.
또한, 비트코드를 활성화 해둔 경우에 유용합니다.
보통 이 dSYM을 가지고 다운받고 upload_symbols_to_crashlytics를 하거나 하여 dSYM을 업로드 시킬때 많이 사용됩니다.
Firebase의 Crashlytics 분석을 위해 dSYM 업로드를 생각하면 편할것 같아요🙌
download_dsyms 메서드에는 아래와 같은 매개변수들을 받을 수 있어요.
다양한데 여기서 파란 * 쳐진 매개변수들의 기본값은 사용자 시스템에 따라 다릅니다.
즉, 해당 기본값을 어디선가 설정해줄 수 있습니다.
그럼 여기서 우리가 필요한 dSYM 파일의 다운로드 경로를 지정하려면 뭘 사용해야 할까요?
build_app 메서드처럼 output_directory 파라미터를 이용하면 됩니다🔥
아래와 같이 간단히 사용할 수 있습니다.
download_dsyms( app_identifier: "com.mashup.seeYouAgain", output_directory: "./Projects/App/Outputs/Archives/PROD" )
요렇게 app_identifier 인자를 주고 dSYM이 다운될 경로를 output_directory 인자에 넣어줍니다.
그럼 위 build_app 메서드에서 넣어준 파일 경로와 동일하게 Project/App/Outputs/Archives/PROD에 저장되게 되죠!
아래와 같이 말이죠🙋🏻
자 어때요? 쉽죠!?
쉽고 훨씬 더 파일 관리가 잘된 느낌이 들지 않나요?
요렇게 아주 간단하게 output_directory 인자를 사용해 경로를 지정해줄 수 있습니다🙌
마무리
역시 공식문서 짱..👍
[참고 자료]
'Fastlane' 카테고리의 다른 글
fastlane match를 통해 팀원들과 인증서 공유하기 (56) 2024.06.03 fastlane으로 Firebase App Distribution 자동화 🤖 (61) 2024.01.15 Developer Portal Team ID와 AppStore Connect Team ID 찾기 (4) 2023.04.20 fastlane으로 Debug / Release 빌드 자동 배포하기 (0) 2022.01.23