๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
iOS ๐ŸŽ/iOS

iOS FireBase Crashlytics ์ ์šฉ : CocoaPods, SPM

by yongmin.Lee 2022. 3. 29.

CocoaPods์œผ๋กœ ์ ์šฉ

1. Firebase ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ => https://firebase.google.com/docs/ios/setup#create-firebase-project

2. Firebase์— ์•ฑ ๋“ฑ๋ก => https://firebase.google.com/docs/ios/setup#register-app

3. GoogleService-Info.plist ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ => https://firebase.google.com/docs/ios/setup#add-config-file

 

4. PodFile์— pod 'firebase/crashlytics' ์ถ”๊ฐ€

5. AppDelegate์— Firebase์— ์—ฐ๋™ํ•˜๋Š” ์ฝ”๋“œ ์ถ”๊ฐ€ => https://firebase.google.com/docs/ios/setup#initialize-firebase

6. dSYM ํŒŒ์ผ ์ž๋™ ์—…๋กœ๋“œ๋ฅผ ์œ„ํ•ด Xcode ์„ค์ •

  • TARGETS > Build Settings > All >'debug information format > ๋””๋ฒ„๊ทธ, ๋ฆด๋ฆฌ์ฆˆ ๋ชจ๋‘ DWARF with dSYM File๋กœ ์„ค์ •

7. ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

Build Phases > + ๋ฒ„ํŠผ > 'New Run Script Phase' > 'Run Script' > ์Šคํฌ๋ฆฝํŠธ ์ž…๋ ฅ

/bin/sh 
"${PODS_ROOT}/FirebaseCrashlytics/run"

Input Files
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

8. Crashlytics ๋””๋ฒ„๊น… ๋กœ๊น… ์‚ฌ์šฉ ์„ค์ •

  • Product > Scheme > Edit Scheme > Run > Arguments > 'Arguments Passed On Launch' > '-FIRDebugEnabled' ์ถ”๊ฐ€

9.  ๋น„์ •์ƒ ์ข…๋ฃŒํ•˜์—ฌ Crashlytics ์„ค์ • ์™„๋ฃŒ

 

 

 

SPM์œผ๋กœ ์ ์šฉ

1. Firebase ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ => https://firebase.google.com/docs/ios/setup#create-firebase-project

2. Firebase์— ์•ฑ ๋“ฑ๋ก => https://firebase.google.com/docs/ios/setup#register-app

3. GoogleService-Info.plist ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ => https://firebase.google.com/docs/ios/setup#add-config-file

4. AppDelegate์— Firebase์— ์—ฐ๋™ํ•˜๋Š” ์ฝ”๋“œ ์ถ”๊ฐ€ => https://firebase.google.com/docs/ios/setup#initialize-firebase
5. Xcode File(ํŒŒ์ผ) > Add Packages(ํŒจํ‚ค์ง€ ์ถ”๊ฐ€)๋กœ ์ด๋™ํ•˜์—ฌ Firebase Apple ํ”Œ๋žซํผ SDK ์ €์žฅ์†Œ ์ถ”๊ฐ€

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

6. Xcode์—์„œ ๋นŒ๋“œ์— ์‚ฌ์šฉํ•  dSYM์„ ์ƒ์„ฑ

  • TARGETS(๋Œ€์ƒ) ๋ชฉ๋ก์—์„œ ๊ธฐ๋ณธ ๋นŒ๋“œ ๋Œ€์ƒ์„ ์„ ํƒ 
  • Build Settings(๋นŒ๋“œ ์„ค์ •) ํƒญ์„ ํด๋ฆญํ•œ ํ›„ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜์—ฌ Xcode์—์„œ ๋นŒ๋“œ์— ์‚ฌ์šฉํ•  dSYM์„ ์ƒ์„ฑํ•˜๋„๋ก  All(๋ชจ๋‘)์„ ํด๋ฆญํ•œ ํ›„ debug information format์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. 
  • ๋ชจ๋“  ๋นŒ๋“œ ์œ ํ˜•์˜ Debug Information Format(๋””๋ฒ„๊ทธ ์ •๋ณด ํ˜•์‹)์„ DWARF with dSYM File๋กœ ์„ค์ •

7.  Xcode์—์„œ dSYM์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •

  • Build Phases > + > New Run Script Phase(์ƒˆ ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ ๋‹จ๊ณ„)๋ฅผ ํด๋ฆญ
  • Shell(์…ธ) ๋ผ๋ฒจ ์•„๋ž˜์— ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ ํ•„๋“œ์—์„œ ์Šคํฌ๋ฆฝํŠธ(ํ”„๋กœ์ ํŠธ์˜ dSYM ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŒŒ์ผ์„ Crashlytics์— ์—…๋กœ๋“œํ•ด๋ผ) ๋ฅผ ์ถ”๊ฐ€
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
  • Input Files(์ž…๋ ฅ ํŒŒ์ผ) ์„น์…˜์—์„œ ๋‹ค์Œ ํŒŒ์ผ ์œ„์น˜์˜ ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€
# ํ”„๋กœ์ ํŠธ์˜ dSYM ํŒŒ์ผ ์œ„์น˜
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
# ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ๋œ Info.plist ํŒŒ์ผ ์œ„์น˜
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

8. ๋น„์ •์ƒ ์ข…๋ฃŒํ•˜์—ฌ Crashlytics ์„ค์ • ์™„๋ฃŒ

 

 

 

 

 

 

 

 

 

์ฐธ๊ณ ์ž๋ฃŒ

https://velog.io/@pleasureofcoding/iOS-Firebase-Crashlytics-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

https://firebase.google.com/docs/crashlytics/get-started?hl=ko&platform=ios

https://ios-development.tistory.com/261

 

'iOS ๐ŸŽ > iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Xcode 13, No StoryBoard Settings with SceneDelegate  (0) 2022.04.12
Debugging 1 : dSYM, DWARF  (0) 2022.03.29
SPM, Swift Package Manager  (0) 2022.03.29
MVVM-C  (0) 2022.03.28
Xcode 13, No StoryBoard Settings without SceneDelegate  (0) 2022.03.22