[iOS] Firebase 7.0.0 ์ ๋ฐ์ดํธ ํธ๋ฌ๋ธ ์ํ
ํ๋ก์ ํธ์ ์ ์ฉ๋์ด ์๋ Firebase ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ 6๋ฒ์ ๋์์ 7๋ฒ์ ๋(7.0.0~)๋ก ์ ๋ฐ์ดํธํ๋ฉด์ ๋ฐ์ํ ์ด์๋ค์ ๋ํ ๊ธฐ๋ก์ ๋๋ค.
Error 1
๐ ์๋ฌ ๋ฉ์ธ์ง
Parameter of 'messaging(_:didReceiveRegistrationToken:)' has different optionality than required by protocol 'MessagingDelegate'
๐ ์๋ฌ ์์ธ
FirebaseMessaging 7.0.0์์ ํ ํฐ ์ญ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ต์ ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ญ์ ๋ ํ ํฐ์ ๋ํด ์ด ๋ฉ์๋๋ fcmToken๊ฐ nil๋ก ํธ์ถ๋ฉ๋๋ค.
๐ ํด๊ฒฐ ๋ฐฉ๋ฒ
BEFORE
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
print("Firebase registration token: \(String(describing: fcmToken))")
let dataDict:[String: String] = ["token": fcmToken]
}
AFTER
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
print("Firebase registration token: \(String(describing: fcmToken))")
let dataDict:[String: String] = ["token": fcmToken ?? ""]
}
- fcmToken์ ํ์ ์ String์์ String?์ผ๋ก ์์
- dataDict nil๊ฐ ์ฒ๋ฆฌ (?? "" ์ถ๊ฐ)
Error 2
๐ ์๋ฌ ๋ฉ์ธ์ง
Cannot find type 'MessagingRemoteMessage' in scope
๐ ์๋ฌ ์์ธ
FirebaseMessaging 7.0.0์์ ๋ฉ์๋ ํ์ ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
๐ ํด๊ฒฐ ๋ฐฉ๋ฒ
BEFORE
func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
print("Received data message: \(remoteMessage.appData)")
}
AFTER
func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingDelegate) {
print("Received data message: \(remoteMessage.description)")
}
- remoteMessage์ ํ์ ์ MessagingRemoteMessage์์ MessagingDelegate๋ก ์์
- appData๋ฅผ description์ผ๋ก ์์
Error 3
๐ ์๋ฌ ๋ฉ์ธ์ง
Framework not found FIRAnalyticsConnector
Framework not found Protobuf
๐ ์๋ฌ ์์ธ
FirebaseAnalytics๊ฐ ์์กด์ฑ์ ๊ฐ๊ณ ์๋ FIRAnalyticsConnector์ FirebaseMessaging์ด ์์กด์ฑ์ ๊ฐ๊ณ ์๋ Protobuf๊ฐ Firebase7.0.0 ์ ๋ฐ์ดํธ์ ํจ๊ป ์์กด์ฑ์ด ์ ๊ฑฐ๋๋ฉด์ ๊ธฐ์กด ํ๋ก์ ํธ์ Linker Flag์์๋ ์ ๊ฑฐ๊ฐ ํ์ํด์ก์ต๋๋ค.
๐ ํด๊ฒฐ ๋ฐฉ๋ฒ
Target > Build Settings > FIRAnalyticsConnector / Protobuf ๊ฒ์ > Other Linker Flags์์ ๋ค์ ๋ผ์ธ ์ญ์
-framework
"FIRAnalyticsConnector"
-framework
"Protobuf"
* Other Linker Flag๋?
Xcode ํ๋ก์ ํธ์์ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋, ์ปดํ์ผ ํ์์ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋งํฌํ๊ธฐ ์ํด ์ค์ ํด์ฃผ์ด์ผ ํ๋ ํ๋๊ทธ์ ๋๋ค. ๊ทธ ์ค์์๋ -Objc ํ๋๊ทธ๋ ๋ง์ปค๊ฐ Objective-C ํด๋์ค๋ ์นดํ ๊ณ ๋ฆฌ๋ก ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํ ๊ฐ์ฒด ํ์ผ๋ค์ ๋ชจ๋ ์ ์ฌํ๊ฒ ํด ์ฃผ๋ ํ๋๊ทธ๋ก, ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํ๋๊ทธ ์ค ํ๋์ ๋๋ค.