ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 인자를 사용해 경로를 지정해줄 수 있습니다🙌

     

    마무리

    역시 공식문서 짱..👍

     

    [참고 자료]

    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

Designed by Tistory.