Fastlane

fastlane - IPA & dSYM 파일 경로 변경하기

GREEN.1229 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 인자를 사용해 경로를 지정해줄 수 있습니다🙌

 

마무리

역시 공식문서 짱..👍

 

[참고 자료]

https://docs.fastlane.tools/actions/build_app/

 

build_app - fastlane docs

export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application

docs.fastlane.tools

https://docs.fastlane.tools/actions/download_dsyms/

 

download_dsyms - fastlane docs

<!-- This file is auto-generated and will be re-generated every time the docs are updated. To modify it, go to its source at https://github.com/fastlane/fastlane/blob/master/fastlane/lib/fastlane/actions/download_dsyms.rb --> download_dsyms Download dSYM f

docs.fastlane.tools