UE4

[UE4][Firebase] EasyFirebase Upload symbol

TigerFish 2021. 6. 4. 00:44

글을 쓰는 목적

 

UE4.26.2에서 EasyFirebase를 사용하여 Crashltyic 기능을 사용하고 있는데, Remote 빌드 후 IOS에서 DSYM file 을 업로드하는데 에러사항이 있어서 기록하기 위해 글을 쓴다.


작업 환경

 

Window10

Xcode12

macOS Bigsugar

UE4.26.2

Jenkins2.222.1


Android

 

Andorid Build 후 UE4 Intermediate의 gradle 폴더로 이동

Android 빌드가 Debug라면 uplaodCrashltyicSymbolFileDebug, Release라면 UploadCrashlyticsSymbolFileRelease 실행

 

cd Project/Intermediate/Adroid/arm64/gradle
gradlew.bat app:uploadCrashlyticsSymbolFileDebug
gradlew.bat app:uploadCrashlyticsSymbolFileRelease

 

https://www.youtube.com/watch?v=8auPdkqrHW8 

 

만약 구글 서비스가 작업이 진행되어 있지 않다고 하면 

 

gradlew.bat app:processReleaseGoogleServices
gradlew.bat app:processDebugGoogleServices

IOS

 

설정 

 

  1. IOS Remote build 설정
    1. IOS Remote 빌드 참조(https://tigerfish.tistory.com/62)
  2. Jenkins SSH Plugin 설치
  3. Jenkins에서 Credentials 설정(https://goateedev.tistory.com/40)
    1. Credentials 설정
      1. Credentials - System - Add Credentials
    2. SSH 설정
      1. Jenkins 관리 - SSH remote hosts
  4. UploadSymbols 실행
    1. Jenkins project에 Execute shell script on remote host using ssh 추가
    2. upload-symbols shell script 실행
      1. upload-symbols path : /Users/UserName/UE4/Builds/PC Name/C/Jenkins/workspace/Project/Client/Plugins/EasyFirebasePro/Source/ThirdParty/IOS/upload-symbols
      2. ios remote build DSYM path : /Users/UserName/UE4/Builds/PC/C/Jenkins/workspace/Project/Client/Binaries/IOS/Project.dSYM.zip
      3. 예시
        #!/bin/bash
        
        /Users/UserName/UE4/Builds/PC/C/Jenkins/workspace/Project/Client/Plugins/EasyFirebasePro/Source/ThirdParty/IOS/upload-symbols -gsp /Users/UserName/Desktop/Workspace/Project/Client/Content/google/GoogleService-Info.plist -p ios /Users/UserName/UE4/Builds/PC/C/Jenkins/workspace/Project/Client/Binaries/IOS/Project.dSYM.zip

 

주의

 

1. UploadSymbol.sh를 작성하고 Jenkins를 통해 리모트 빌드를 시도했을 떄 아래와 같은 로그 에러가 난다. 

zsh:3: permission denied: /Path/FirebaseUploadSymbol.sh

저런 경우 macOS 터미널에서 아래와 같은 명령을 수행해 준다. 

$ sudo chmod -R 777 folderpath

 

2. Development Provisioning은 Development dSYM file upload, Enterprise Provisioning은 Shipping dSYM file upload

 


주의점

 

Firebase에서 Android 크래쉬릭 테스트 하는 경우 심볼이 없어로 로그가 남아 있는데(누락이라고 뜨고 의미 없는 로그가 남는다) 최신 버전으로 최근에 crashltyic을 올리고 이전 버전의 App으로 Crashltyic 테스트를 하는 경우 로그 조차 안남는 경우가 있다. 항상 최신 버전에서 최신 로그로 테스트 해야한다. 


참고

 

https://goateedev.tistory.com/40

 

원격 pc에 shell 실행하기( Execute shell script on remote host using ssh )

Jenkins 로 CI&CD를 구성하면, remote host에 ssh 를 통해서 shell 명령으로 빌드 & 배포를 진행하게 되는데 이 때 shell 명령으로 진행을 하게 될 경우 Build 항목에 Execute shell script on remote host using..

goateedev.tistory.com

https://butter-ring.tistory.com/17

 

Mac 에서 Homebrew 를 통해 node, npm, yarn 설치하기

프로젝트를 정리하기 위해 맥북에 개발환경 설정을 하다가 나중에 사용하기 위해 설치 방법을 정리. Homebrew 설치 맥에서 개발환경 세팅을 할 때 가장 먼저 설치해야 할 패키지 관리 프로그램이

butter-ring.tistory.com

https://uchupura.tistory.com/67

 

[Jenkins] Execute shell script on remote host using ssh 사이트 등록

이번 시간에는 Execute shell script on remote host using ssh 플러그인을 통해서 원격으로 명령어를 전달하기 위한 설정에 대해서 알아보도록 하겠습니다. 전체적인 절차는 아래와 같이 진행됩니다. 원격

uchupura.tistory.com

https://answers.unrealengine.com/questions/463061/a-required-platform-sdk-is-missing-ios.html

 

A required platform SDK is missing: IOS - UE4 AnswerHub

LogTemp:Display: Running Mono... LogTemp:Display: Setting up Mono LogTemp:Display: /Users/Shared/UnrealEngine/4.14/Engine /Users/Shared/UnrealEngine/4.14 LogTemp:Display: Executing iPhonePackager Validate Engine -project /Volumes/UE4 Source/UE4 Projects/My

answers.unrealengine.com

https://github.com/firebase/firebase-ios-sdk/issues/5787

 

upload-symbols fails to fetch settings causing uploading of dsyms to Firebase to fail. · Issue #5787 · firebase/firebase-ios-s

[REQUIRED] Step 1: Describe your environment Xcode version: 11.5 Firebase SDK version: 6.26.0 Firebase Component: Crashlytics Component version: 4.1.1 Installation method: CocoaPods [REQUIRED] Step...

github.com

https://donggu1105.tistory.com/45

 

[Mac] 맥 커맨드(command)로 파일 사용권한 조회 및 변경하기

네트워크로 웹퍼블리셔랑 협업하는 과정가운데, 내 파일을 공유를 했지만 상대방이 읽기쓰기를 못하였다. 그럴땐 터미널로 간단히 명령어를 쳐주면 된다! 앞으로 크게 두가지, 1. 어떻게 해당

donggu1105.tistory.com

 

'UE4' 카테고리의 다른 글

UE4 UMG에서 RenderTarget 사용 방법  (0) 2021.07.15
UE4 Custom Property Layout 만들기  (0) 2021.06.09
UE4.26 IOS remote build  (0) 2021.05.12
UE4.26 Android Build  (2) 2021.05.11
UE4 IOS Package를 위한 Apple Certificate 발급  (0) 2021.04.09