āĻāĻĒāύāĻžāϰ āĻŽā§āĻŦāĻžāĻāϞ āĻāĻŦāĻ āĻāϝāĻŧā§āĻŦ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻ
ā§āϝāĻžāĻĒā§ Firebase Cloud Messaging āĻā§āĻāĻžāĻŦā§ āϏā§āĻ āĻāĻĒ āĻāϰāĻŦā§āύ āϤāĻž āĻāĻ āĻā§āĻāĻāϏā§āĻāĻžāϰā§āĻ āĻŦāϰā§āĻŖāύāĻž āĻāϰ⧠āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āύāĻŋāϰā§āĻāϰāϝā§āĻā§āϝāĻāĻžāĻŦā§ āĻŦāĻžāϰā§āϤāĻž āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āϏāĻžāϰā§āĻāĻžāϰ āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāϰ āϏāĻžāϰā§āĻāĻžāϰ āĻĒāϰāĻŋāĻŦā§āĻļ āĻāĻŦāĻ FCM āĻĻā§āĻā§āύāĨ¤
āĻāĻāύāĻŋāĻāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ Firebase Cloud Messaging āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻ ā§āϝāĻžāĻĒ āϏā§āĻ āĻāĻĒ āĻāϰā§āύ
āĻāĻāύāĻŋāĻāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻĒāύāĻžāϰ āĻā§āϰāϏ-āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ Firebase Cloud Messaging āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻ ā§āϝāĻžāĻĒ āϞāĻŋāĻāϤā§, Firebase Cloud Messaging API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ āĻāĻāύāĻŋāĻāĻŋ SDK āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻāĻŋāĻā§ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϏā§āĻāĻāĻĒ āϏāĻš Android āĻāĻŦāĻ Apple āĻāĻāϝāĻŧā§āϰ āĻāύā§āϝāĻ āĻāĻžāĻ āĻāϰā§āĨ¤
āĻāĻĒāύāĻŋ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāĻā§
āĻĒā§āϰā§āĻŦāĻļāϰā§āϤ
Unity 2021 LTS āĻŦāĻž āϤāĻžāϰ āĻĒāϰ⧠āĻāύāϏā§āĻāϞ āĻāϰā§āύāĨ¤ āĻāĻāύāĻŋāĻāĻŋ 2020-āĻāϰ āĻāύā§āϝ āϏāĻŽāϰā§āĻĨāύ āĻ āĻŦāĻŽā§āϞā§āϝāĻžāϝāĻŧāĻŋāϤ āĻŦāϞ⧠āĻŦāĻŋāĻŦā§āĻāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ āĻĒāϰāĻŦāϰā§āϤ⧠āĻŦāĻĄāĻŧ āϰāĻŋāϞāĻŋāĻā§āϰ āĻĒāϰ⧠āĻāϰ āϏāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻž āĻšāĻŦā§ āύāĻžāĨ¤ āĻāĻā§āϰ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋāĻ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻšāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŋāύā§āϤ⧠āϏāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻŽāϰā§āĻĨāĻŋāϤ āĻšāĻŦā§ āύāĻžā§ˇ
(āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ ā§āϝāĻžāĻĒāϞ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ) āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤāĻā§āϞāĻŋ āĻāύāϏā§āĻāϞ āĻāϰā§āύ:
- Xcode 13.3.1 āĻŦāĻž āĻāĻā§āĻāϤāϰ
- CocoaPods 1.12.0 āĻŦāĻž āĻāĻā§āĻāϤāϰ
āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒ āĻāĻ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻžāĻā§āϞāĻŋ āĻĒā§āϰāĻŖ āĻāϰā§:
- iOS āĻāϰ āĻāύā§āϝ â āϞāĻā§āώā§āϝ iOS 13 āĻŦāĻž āĻāĻā§āĻāϤāϰ
- TVOS āĻāϰ āĻāύā§āϝ - āϞāĻā§āώā§āϝ tvOS 13 āĻŦāĻž āϤāĻžāϰ āĻŦā§āĻļāĻŋ
- āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§āϰ āĻāύā§āϝ â āϞāĻā§āώā§āϝ API āϏā§āϤāϰ 21 (āϞāϞāĻŋāĻĒāĻĒ) āĻŦāĻž āĻāĻā§āĻāϤāϰ
āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏ āϏā§āĻ āĻāĻĒ āĻāϰā§āύ āĻŦāĻž āĻāĻāĻāĻŋ āĻāĻŽā§āϞā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ⧎
iOS āĻŦāĻž tvOS-āĻāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĢāĻŋāĻāĻŋāĻā§āϝāĻžāϞ āĻĄāĻŋāĻāĻžāĻāϏ āϏā§āĻ āĻāĻĒ āĻāϰā§āύ āĻāĻŦāĻ āĻāĻ āĻāĻžāĻāĻā§āϞāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϰā§āύ:
- āĻāĻĒāύāĻžāϰ Apple āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰ⧠āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ Apple Push āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻā§ āĻĒāĻžāύ⧎
- āĻ ā§āϝāĻžāĻĒ > āĻā§āώāĻŽāϤāĻžāϰ āĻ āϧā§āύ⧠XCode-āĻ āĻĒā§āĻļ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āϏāĻā§āώāĻŽ āĻāϰā§āύāĨ¤
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§āϰ āĻāύā§āϝ â āĻāĻŽā§āϞā§āĻāϰāĻĻā§āϰ āĻ āĻŦāĻļā§āϝāĻ Google Play āĻāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āĻāĻŽā§āϞā§āĻāϰ āĻāĻŦāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
- āĻāĻĒāύāĻžāϰ Google āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠Firebase-āĻ āϏāĻžāĻāύ āĻāύ āĻāϰā§āύ āĨ¤
āĻāĻĒāύāĻžāϰ āϝāĻĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻā§āĻā§āĻ āύāĻž āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ āĻĒāĻŖā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĻā§āĻāϤ⧠āĻāĻžāύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻāĻāϏā§āĻāĻžāϰā§āĻ āύāĻŽā§āύāĻžāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ⧎
āϧāĻžāĻĒ 1: āĻāĻāĻāĻŋ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ āĻĒā§āϰāĻāϞā§āĻĒ āϤā§āϰāĻŋ āĻāϰā§āύ
āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰā§āĻā§āĻā§āĻā§ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ āϝā§āĻ āĻāϰāĻžāϰ āĻāĻā§, āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰā§āĻā§āĻā§āĻā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ āĻĒā§āϰā§āĻā§āĻā§āĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ Firebase āĻĒā§āϰāĻāϞā§āĻĒāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϰāĻ āĻāĻžāύāϤ⧠Firebase āĻĒā§āϰāĻāϞā§āĻĒāĻā§āϞāĻŋ āĻŦā§āĻāϤ⧠āĻĻā§āĻā§āύ⧎
āϧāĻžāĻĒ 2: Firebase-āĻ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āύāĻŋāĻŦāύā§āϧāύ āĻāϰā§āύ
āĻāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āĻāϰāϤ⧠āĻāĻĒāύāĻŋ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻ ā§āϝāĻžāĻĒ āĻŦāĻž āĻā§āĻŽ āύāĻŋāĻŦāύā§āϧāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
Firebase āĻāύāϏā§āϞ⧠āϝāĻžāύāĨ¤
āĻĒā§āϰāĻāϞā§āĻĒ āĻāĻāĻžāϰāĻāĻŋāĻ āĻĒā§āώā§āĻ āĻžāϰ āĻā§āύā§āĻĻā§āϰā§, āϏā§āĻāĻāĻĒ āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞ⧠āĻāĻžāϞ⧠āĻāϰāϤ⧠āĻāĻāύāĻŋāĻāĻŋ āĻāĻāĻāύ⧠āĻā§āϞāĻŋāĻ āĻāϰā§āύ (
)āĨ¤āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻāϞā§āĻĒā§ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻĒ āϝā§āĻ āĻāϰ⧠āĻĨāĻžāĻā§āύ, āϤāĻžāĻšāϞ⧠āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āϰ āĻŦāĻŋāĻāϞā§āĻĒāĻā§āϞāĻŋ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻ ā§āϝāĻžāĻĒ āϝā§āĻ āĻāϰā§āύ -āĻ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻā§āĻā§āĻā§āϰ āĻā§āύ āĻŦāĻŋāϞā§āĻĄ āĻāĻžāϰā§āĻā§āĻ āĻāĻĒāύāĻŋ āύāĻŋāĻŦāύā§āϧāύ āĻāϰāϤ⧠āĻāĻžāύ āϤāĻž āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ, āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āĻāĻāύ āĻāĻāĻ āϏāĻŽāϝāĻŧā§ āĻāĻāϝāĻŧ āϞāĻā§āώā§āϝāĻŽāĻžāϤā§āϰāĻž āύāĻŋāĻŦāύā§āϧāύ āĻāϰāϤ⧠āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻāĻĄāĻŋ(āĻā§āϞāĻŋ) āϞāĻŋāĻā§āύāĨ¤
iOS āĻāϰ āĻāύā§āϝ â iOS āĻŦāĻžāύā§āĻĄā§āϞ āĻāĻāĻĄāĻŋ āĻā§āώā§āϤā§āϰ⧠āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ iOS āĻāĻāĻĄāĻŋ āϞāĻŋāĻā§āύāĨ¤
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§āϰ āĻāύā§āϝ - āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻĒā§āϝāĻžāĻā§āĻ āύāĻžāĻŽā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāĻāĻĄāĻŋ āϞāĻŋāĻā§āύāĨ¤
āĻĒāĻĻ āĻĒā§āϝāĻžāĻā§āĻ āύāĻžāĻŽ āĻāĻŦāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻāĻāĻĄāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻ āĻŦāĻŋāύāĻŋāĻŽāϝāĻŧāϝā§āĻā§āϝāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ.
(āĻāĻā§āĻāĻŋāĻ) āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĄāĻžāĻāύāĻžāĻŽ āϞāĻŋāĻā§āύāĨ¤
āĻāĻ āĻĄāĻžāĻāύāĻžāĻŽāĻā§āϞāĻŋ āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ, āϏā§āĻŦāĻŋāϧāĻžāϰ āĻļāύāĻžāĻā§āϤāĻāĻžāϰ⧠āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ Firebase āĻāύāϏā§āϞ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻĻā§āĻļā§āϝāĻŽāĻžāύ⧎āϰā§āĻāĻŋāϏā§āĻāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
āϧāĻžāĻĒ 3: Firebase āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞ āϝā§āĻ āĻāϰā§āύ
Firebase āĻāύāϏā§āϞ āϏā§āĻāĻāĻĒ āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞā§āϤ⧠āĻāĻĒāύāĻžāϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ Firebase āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞ(āĻā§āϞāĻŋ) āĻĒāĻžāύāĨ¤
iOS-āĻāϰ āĻāύā§āϝ - GoogleService-Info.plist āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰā§āύ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§āϰ āĻāύā§āϝ â āĻĄāĻžāĻāύāϞā§āĻĄ google-services.json āĻ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻĒā§āϰāĻā§āĻā§āĻ āĻāĻāύā§āĻĄā§ āĻā§āϞā§āύ, āϤāĻžāϰāĻĒāϰ āĻāĻĒāύāĻžāϰ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻĢāĻžāĻāϞ(āĻā§āϞāĻŋ)
Assets
āĻĢā§āϞā§āĻĄāĻžāϰ⧠āϏāϰāĻžāύāĨ¤Firebase āĻāύāϏā§āϞ⧠āĻĢāĻŋāϰā§, āϏā§āĻāĻāĻĒ āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞā§āϤā§, Next āĻ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
āϧāĻžāĻĒ 4: Firebase Unity SDK āϝā§āĻ āĻāϰā§āύ
Firebase āĻāύāϏā§āϞā§, Firebase Unity SDK āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰā§āύ-āĻ āĻā§āϞāĻŋāĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ SDK āĻāύāĻāĻŋāĻĒ āĻāϰā§āύāĨ¤
āĻāĻĒāύāĻŋ āϝ⧠āĻā§āύ⧠āϏāĻŽāϝāĻŧ āĻāĻŦāĻžāϰ Firebase Unity SDK āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
Firebase Unity SDK āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāϝāĻŧāĨ¤
āĻāĻĒāύāĻžāϰ āĻāĻĒā§āύ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒā§, āϏāĻŽā§āĻĒāĻĻ > āĻāĻŽāĻĻāĻžāύāĻŋ āĻĒā§āϝāĻžāĻā§āĻ > āĻāĻžāϏā§āĻāĻŽ āĻĒā§āϝāĻžāĻā§āĻā§ āύā§āĻāĻŋāĻā§āĻ āĻāϰā§āύāĨ¤
āĻāύāĻāĻŋāĻĒ āĻāϰāĻž SDK āĻĨā§āĻā§, āϏāĻŽāϰā§āĻĨāĻŋāϤ Firebase āĻĒāĻŖā§āϝāĻā§āϞāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ āϝāĻž āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻžāύāĨ¤
Firebase Cloud Messaging āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āĻ āĻāĻŋāĻā§āĻāϤāĻžāϰ āĻāύā§āϝ, āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§ Google Analytics āϏāĻā§āώāĻŽ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, Analytics āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āĻ āĻāĻļ āĻšāĻŋāϏāĻžāĻŦā§, āĻāĻĒāύāĻžāĻā§ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ Analytics āĻāύā§āϝ Firebase āĻĒā§āϝāĻžāĻā§āĻ āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
Analytics āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§
- Google Analytics āĻāύā§āϝ Firebase āĻĒā§āϝāĻžāĻā§āĻ āϝā§āĻ āĻāϰā§āύ:
FirebaseAnalytics.unitypackage
- Firebase Cloud Messaging āĻāύā§āϝ āĻĒā§āϝāĻžāĻā§āĻ āϝā§āĻ āĻāϰā§āύ:
FirebaseMessaging.unitypackage
Analytics āϏāĻā§āώāĻŽ āĻāϰāĻž āύā§āĻ
Firebase Cloud Messaging āĻāύā§āϝ āĻĒā§āϝāĻžāĻā§āĻ āϝā§āĻ āĻāϰā§āύ:
FirebaseMessaging.unitypackage
- Google Analytics āĻāύā§āϝ Firebase āĻĒā§āϝāĻžāĻā§āĻ āϝā§āĻ āĻāϰā§āύ:
āĻāĻŽā§āĻĒā§āϰā§āĻ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϝāĻžāĻā§āĻ āĻāĻāύā§āĻĄā§āϤā§, āĻāĻŽāĻĻāĻžāύāĻŋ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
Firebase āĻāύāϏā§āϞ⧠āĻĢāĻŋāϰā§, āϏā§āĻāĻāĻĒ āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞā§āϤā§, Next āĻ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
āϧāĻžāĻĒ 5: Google Play āĻĒāϰāĻŋāώā§āĻŦāĻžāϰ āϏāĻāϏā§āĻāϰāĻŖā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§āϰ āĻāύā§āϝ Firebase Unity SDK-āĻāϰ āĻāĻŋāĻā§ āĻĒāĻŖā§āϝā§āϰ āĻāύā§āϝ Google Play services āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤ āĻā§āύ āĻĒāĻŖā§āϝā§āϰ āĻāĻ āύāĻŋāϰā§āĻāϰāϤāĻž āĻāĻā§ āϤāĻž āĻāĻžāύā§āύāĨ¤ āϏā§āĻ āĻĒāĻŖā§āϝāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāĻā§ Google Play services āĻ āĻŦāĻļā§āϝāĻ āĻāĻĒ āĻā§ āĻĄā§āĻ āĻšāϤ⧠āĻšāĻŦā§ā§ˇ
āĻāĻĒāύāĻžāϰ āĻāĻŦā§āĻĻāύā§āϰ āĻļā§āϰā§āϤ⧠āϏā§āĻā§āĻāĻŽā§āύā§āĻ āĻāĻŦāĻ āĻāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻā§āĻļāύ āĻā§āĻĄ using
āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϝā§āĻ āĻāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āĻāϏāĻĄāĻŋāĻā§-āϤ⧠āĻ
āύā§āϝ āĻā§āύāĻ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠āĻāϞ āĻāϰāĻžāϰ āĻāĻā§ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϏāĻāϏā§āĻāϰāĻŖā§ Google Play services āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻāĻŦāĻ āĻŦāĻŋāĻāϞā§āĻĒāĻāĻžāĻŦā§ āĻāĻĒāĻĄā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
using Firebase.Extensions;
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => {
var dependencyStatus = task.Result;
if (dependencyStatus == Firebase.DependencyStatus.Available) {
// Create and hold a reference to your FirebaseApp,
// where app is a Firebase.FirebaseApp property of your application class.
app = Firebase.FirebaseApp.DefaultInstance;
// Set a flag here to indicate whether Firebase is ready to use by your app.
} else {
UnityEngine.Debug.LogError(System.String.Format(
"Could not resolve all Firebase dependencies: {0}", dependencyStatus));
// Firebase Unity SDK is not safe to use here.
}
});
āĻāĻĒāύāĻžāϰ āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϰāĻā§āĻā§āĻ āϰā§āĻāĻŋāϏā§āĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ Firebase āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
āĻ ā§āϝāĻžāĻĒāϞ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āϰ āϏāĻžāĻĨā§ āϏā§āĻāĻāĻĒ āĻĒāĻžāύ
āĻāĻāύāĻŋāĻāĻŋ āĻāĻŦāĻ āĻ ā§āϝāĻžāĻĒāϞ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ FCM āϏā§āĻ āĻāĻĒ āĻāϰāϤ⧠āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ⧎
āĻāĻĒāύāĻžāϰ APN āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻā§ āĻāĻĒāϞā§āĻĄ āĻāϰā§āύ
Firebase-āĻ āĻāĻĒāύāĻžāϰ APN-āĻāϰ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻā§ āĻāĻĒāϞā§āĻĄ āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ APN-āĻāϰ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻā§ āύāĻž āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠Apple āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰ⧠āϏāĻĻāϏā§āϝ āĻā§āύā§āĻĻā§āϰ⧠āĻāĻāĻāĻŋ āϤā§āϰāĻŋ āĻāϰāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ⧎
Firebase āĻāύāϏā§āϞ⧠āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāĻŋāϤāϰā§, āĻāĻŋāϝāĻŧāĻžāϰ āĻāĻāĻāύ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ, āĻĒā§āϰāĻāϞā§āĻĒ āϏā§āĻāĻŋāĻāϏ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻā§āϞāĻžāĻāĻĄ āĻŽā§āϏā§āĻāĻŋāĻ āĻā§āϝāĻžāĻŦāĻāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ⧎
iOS āĻ ā§āϝāĻžāĻĒ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύā§āϰ āĻ āϧā§āύ⧠APN-āĻāϰ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻā§- āϤā§, āĻāĻĒāύāĻžāϰ āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻā§, āĻ āĻĨāĻŦāĻž āĻā§āĻĒāĻžāĻĻāύ āĻĒā§āϰāĻŽāĻžāĻŖā§āĻāϰāĻŖ āĻā§, āĻŦāĻž āĻāĻāϝāĻŧāĻ āĻāĻĒāϞā§āĻĄ āĻāϰāϤ⧠āĻāĻĒāϞā§āĻĄ āĻŦā§āϤāĻžāĻŽā§ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤ āĻ āύā§āϤāϤ āĻāĻāĻāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύ.
āĻāĻĒāύāĻŋ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻžāϰ āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āĻā§āύ āϏā§āĻāĻžāύ⧠āĻŦā§āϰāĻžāĻāĻ āĻāϰā§āύ, āĻāĻāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ āĻāĻŦāĻ āĻā§āϞā§āύ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤ āĻā§āĻāĻŋāϰ āĻāύā§āϝ āĻā§ āĻāĻāĻĄāĻŋ āϝā§āĻ āĻāϰā§āύ ( āĻ ā§āϝāĻžāĻĒāϞ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰ⧠āϏāĻĻāϏā§āϝ āĻā§āύā§āĻĻā§āϰ⧠āĻāĻĒāϞāĻŦā§āϧ) āĻāĻŦāĻ āĻāĻĒāϞā§āĻĄ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
Apple āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻā§āϞāĻŋāϤ⧠āĻĒā§āĻļ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋāĻā§āϞāĻŋ āϏāĻā§āώāĻŽ āĻāϰā§āύ⧎
- Xcode-āĻ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§ āĻā§āϞāĻŋāĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āϏāĻŽā§āĻĒāĻžāĻĻāĻ āĻāϞāĻžāĻāĻž āĻĨā§āĻā§ āϏāĻžāϧāĻžāϰāĻŖ āĻā§āϝāĻžāĻŦāĻāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύāĨ¤
- āϞāĻŋāĻā§āĻ āĻāϰāĻž āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ āĻāĻŦāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϤ⧠āϏā§āĻā§āϰā§āϞ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻāĻāĻāĻŋ āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ āϝā§āĻ āĻāϰāϤ⧠+ āĻŦā§āϤāĻžāĻŽā§ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
- āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻāĻāύā§āĻĄā§āϤā§, UserNotifications.framework- āĻ āϏā§āĻā§āϰā§āϞ āĻāϰā§āύ, āϏā§āĻ āĻāύā§āĻā§āϰāĻŋāϤ⧠āĻā§āϞāĻŋāĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ Add āĻ āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤
- āĻāĻā§āϏāĻā§āĻĄā§ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§ āĻā§āϞāĻŋāĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āϏāĻŽā§āĻĒāĻžāĻĻāĻ āĻāϞāĻžāĻāĻž āĻĨā§āĻā§ āϏāĻā§āώāĻŽāϤāĻž āĻā§āϝāĻžāĻŦāĻāĻŋ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύāĨ¤
- āĻĒā§āĻļ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋāĻā§āϞāĻŋ āĻāĻžāϞ⧠āĻāϰā§āύāĨ¤
- āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āĻŽā§āĻĄā§ āϏā§āĻā§āϰā§āϞ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻāĻāĻŋ āĻāĻžāϞ⧠āĻāϰā§āύāĨ¤
- āĻĒāĻāĻā§āĻŽāĻŋ āĻŽā§āĻĄā§āϰ āĻ āϧā§āύ⧠āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āĻā§āĻāĻŦāĻā§āϏ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύāĨ¤
Firebase Cloud Messaging āĻļā§āϰ⧠āĻāϰā§āύ
TokenReceived
āĻŦāĻž MessageReceived
āĻāĻā§āύā§āĻāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰ āϝā§āĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ Firebase āĻā§āϞāĻžāĻāĻĄ āĻŽā§āϏā§āĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāϰāĻŽā§āĻ āĻāϰāĻž āĻšāĻŦā§āĨ¤
āĻāϰāĻŽā§āĻ āĻāϰāĻžāϰ āĻĒāϰā§, āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻ
ā§āϝāĻžāĻĒā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āύāĻŋāĻŦāύā§āϧāύ āĻā§āĻā§āύ āĻ
āύā§āϰā§āϧ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻ
ā§āϝāĻžāĻĒāĻāĻŋ OnTokenReceived
āĻāĻā§āύā§āĻā§āϰ āϏāĻžāĻĨā§ āĻā§āĻā§āύ āĻĒāĻžāĻŦā§, āϝāĻž āĻĒāϰāĻŦāϰā§āϤā§āϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāύā§āϝ āĻā§āϝāĻžāĻļā§ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĄāĻŋāĻāĻžāĻāϏāĻāĻŋāĻā§ āϞāĻā§āώā§āϝ āĻāϰāϤ⧠āĻāĻžāύ āϤāĻŦā§ āĻāĻĒāύāĻžāϰ āĻāĻ āĻā§āĻā§āύāĻāĻŋāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§ā§ˇ
āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāύāĻāĻžāĻŽāĻŋāĻ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋ āĻĒā§āϤ⧠āϏāĻā§āώāĻŽ āĻšāϤ⧠āĻāĻžāύ āϤāĻŦā§ āĻāĻĒāύāĻžāĻā§ OnMessageReceived
āĻāĻā§āύā§āĻā§āϰ āĻāύā§āϝ āύāĻŋāĻŦāύā§āϧāύ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āϏā§āĻāĻāĻĒ āĻāĻ āĻŽāϤ āĻĻā§āĻāĻžāĻŦā§:
public void Start() { Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived; Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived; } public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) { UnityEngine.Debug.Log("Received Registration Token: " + token.Token); } public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) { UnityEngine.Debug.Log("Received a new message from: " + e.Message.From); }
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āϰ āϏāĻžāĻĨā§ āϏā§āĻāĻāĻĒ āĻĒāĻžāύ
āĻāĻāύāĻŋāĻāĻŋ āĻāĻŦāĻ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ FCM āϏā§āĻāĻāĻĒ āĻāϰāϤ⧠āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ⧎
āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāύā§āĻā§āϰāĻŋ āĻĒāϝāĻŧā§āύā§āĻ āĻ ā§āϝāĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰā§āύ
Firebase Cloud Messaging āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻāύā§āĻā§āϰāĻŋ āĻĒāϝāĻŧā§āύā§āĻ āĻ
ā§āϝāĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻāϤā§āϰāĻŋāϤ āĻšāϝāĻŧ āϝāĻž āĻĄāĻŋāĻĢāϞā§āĻ UnityPlayerActivity
āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻāύā§āĻā§āϰāĻŋ āĻĒāϝāĻŧā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāĻāĻŦā§ āĻāĻŦāĻ āĻāĻĒāύāĻžāĻā§ āĻā§āύ⧠āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒāĻĻāĻā§āώā§āĻĒ āύāĻŋāϤ⧠āĻšāĻŦā§ āύāĻžāĨ¤
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§ Firebase Cloud Messaging āĻāĻāύāĻŋāĻāĻŋ āĻĒā§āϞāĻžāĻāĻāύ āĻĻā§āĻāĻŋ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻĢāĻžāĻāϞā§āϰ āϏāĻžāĻĨā§ āĻŦāĻžāύā§āĻĄāĻŋāϞ āĻāϰ⧠āĻāϏā§:
-
Assets/Plugins/Android/libmessaging_unity_player_activity.jar
MessagingUnityPlayerActivity
āύāĻžāĻŽā§ āĻāĻāĻāĻŋ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āϰāϝāĻŧā§āĻā§ āϝāĻž āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄUnityPlayerActivity
āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĨ¤ -
Assets/Plugins/Android/AndroidManifest.xml
āĻ ā§āϝāĻžāĻĒāĻāĻŋāĻā§MessagingUnityPlayerActivity
āĻ ā§āϝāĻžāĻĒā§ āĻĒā§āϰāĻŦā§āĻļā§āϰ āĻĒāϝāĻŧā§āύā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āύāĻŋāϰā§āĻĻā§āĻļ āĻĻā§āϝāĻŧāĨ¤
āĻāĻ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻžāϰāĻŖ āĻĄāĻŋāĻĢāϞā§āĻ UnityPlayerActivity
onStop
, onRestart
āĻ
ā§āϝāĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋ āϞāĻžāĻāĻĢāϏāĻžāĻāĻā§āϞ āĻā§āϰāĻžāύāĻāĻŋāĻļāύ āĻŦāĻž onNewIntent
āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰ⧠āύāĻž āϝāĻž Firebase Cloud Messaging āĻāύā§āϝ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāύāĻāĻžāĻŽāĻŋāĻ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāĨ¤
āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻāύā§āĻā§āϰāĻŋ āĻĒāϝāĻŧā§āύā§āĻ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰā§āύ
āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻ UnityPlayerActivity
āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰ⧠āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻžāĻā§ āϏāϰāĻŦāϰāĻžāĻš āĻāϰāĻž AndroidManifest.xml
āϏāϰāĻŋāϝāĻŧā§ āĻĢā§āϞāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāϏā§āĻāĻŽ āĻ
ā§āϝāĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋ āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻ
ā§āϝāĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋ āϞāĻžāĻāĻĢāϏāĻžāĻāĻā§āϞā§āϰ āϏāĻŽāϏā§āϤ āϰā§āĻĒāĻžāύā§āϤāϰ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰ⧠(āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāϰāĻŦā§āύ āϤāĻžāϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āύā§āĻā§ āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧā§āĻā§)āĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻžāϏā§āĻāĻŽ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ UnityPlayerActivity
āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰ⧠āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠com.google.firebase.MessagingUnityPlayerActivity
āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝāĻž āϏāĻŽāϏā§āϤ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§ā§ˇ
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āĻāĻŦāĻ com.google.firebase.MessagingUnityPlayerActivity
āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āύāĻž āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϏā§āύāĻŋāĻĒā§āĻāĻā§āϞāĻŋ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻž āĻāĻāĻŋāϤ⧎
/** * Workaround for when a message is sent containing both a Data and Notification payload. * * When the app is in the background, if a message with both a data and notification payload is * received the data payload is stored on the Intent passed to onNewIntent. By default, that * intent does not get set as the Intent that started the app, so when the app comes back online * it doesn't see a new FCM message to respond to. As a workaround, we override onNewIntent so * that it sends the intent to the MessageForwardingService which forwards the message to the * FirebaseMessagingService which in turn sends the message to the application. */ @Override protected void onNewIntent(Intent intent) { Intent message = new Intent(this, MessageForwardingService.class); message.setAction(MessageForwardingService.ACTION_REMOTE_INTENT); message.putExtras(intent); message.setData(intent.getData()); // For earlier versions of Firebase C++ SDK (< 7.1.0), use `startService`. // startService(message); MessageForwardingService.enqueueWork(this, message); } /** * Dispose of the mUnityPlayer when restarting the app. * * This makes sure that when the app starts up again it does not start with stale data. */ @Override protected void onCreate(Bundle savedInstanceState) { if (mUnityPlayer != null) { mUnityPlayer.quit(); mUnityPlayer = null; } super.onCreate(savedInstanceState); }
Firebase C++ SDK (7.1.0 āĻāϰ āĻĒāϰ) āĻāϰ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖ JobIntentService
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϝāĻžāϰ āĻāύā§āϝ AndroidManifest.xml
āĻĢāĻžāĻāϞ⧠āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤
<service android:name="com.google.firebase.messaging.MessageForwardingService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="false" > </service>
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§ āĻŽā§āϏā§āĻ āĻĄā§āϞāĻŋāĻāĻžāϰāĻŋ
āϝāĻāύ āĻ
ā§āϝāĻžāĻĒāĻāĻŋ āĻŽā§āĻā§āĻ āĻāϞāĻā§ āύāĻž āĻāĻŦāĻ āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋāϤ⧠āĻā§āϝāĻžāĻĒ āĻāϰā§, āϤāĻāύ āĻŦāĻžāϰā§āϤāĻžāĻāĻŋ, āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§, FCM -āĻāϰ āĻ
āύā§āϤāϰā§āύāĻŋāϰā§āĻŽāĻŋāϤ āĻāϞāĻŦā§āϝāĻžāĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϰāĻžāĻāĻ āĻāϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤ āĻāĻ āĻā§āώā§āϤā§āϰā§, āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻāĻāĻŋ Intent
āĻŽāĻžāϧā§āϝāĻŽā§ āĻŦāĻžāϰā§āϤāĻž āĻĒā§āϞā§āĻĄāĻā§āϞāĻŋ āĻĒā§āϰāĻžāĻĒā§āϤ āĻšāϝāĻŧāĨ¤
āĻ
ā§āϝāĻžāĻĒāĻāĻŋāϤ⧠āĻĨāĻžāĻāĻž āĻ
āĻŦāϏā§āĻĨāĻžāϝāĻŧ āĻĒā§āϰāĻžāĻĒā§āϤ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋ āϤāĻžāĻĻā§āϰ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āĻā§āώā§āϤā§āϰā§āϰ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϏāĻŋāϏā§āĻā§āĻŽ āĻā§āϰ⧠āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āĻĒāĻĒā§āϞā§āĻ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ, āϤāĻŦā§ āϏā§āĻ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āϏāĻžāĻŽāĻā§āϰā§āĻāĻŋ FCM -āĻ āϝā§āĻāĻžāϝā§āĻ āĻāϰāĻž āĻšāĻŦā§ āύāĻžāĨ¤ āĻāϰ āĻ
āϰā§āĻĨ āĻš'āϞ FirebaseMessage.Notification
āĻāĻāĻāĻŋ āĻŦāĻžāϤāĻŋāϞ āĻšāĻŦā§āĨ¤
āϏāĻāĻā§āώā§āĻĒā§:
āĻ ā§āϝāĻžāĻĒā§āϰ āĻ āĻŦāϏā§āĻĨāĻž | āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ | āĻĄā§āĻāĻž | āĻāĻāϝāĻŧ |
---|---|---|---|
āĻĢā§āϰāĻā§āϰāĻžāĻāύā§āĻĄ | Firebase.Messaging.FirebaseMessaging.MessageReceived | Firebase.Messaging.FirebaseMessaging.MessageReceived | Firebase.Messaging.FirebaseMessaging.MessageReceived |
āĻĒāĻāĻā§āĻŽāĻŋ | āϏāĻŋāϏā§āĻā§āĻŽ āĻā§āϰ⧠| Firebase.Messaging.FirebaseMessaging.MessageReceived | āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ: āϏāĻŋāϏā§āĻā§āĻŽ āĻā§āϰ⧠āĻĄā§āĻāĻž: āĻ āĻāĻŋāĻĒā§āϰāĻžāϝāĻŧ āĻ āϤāĻŋāϰāĻŋāĻā§āϤāĨ¤ |
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§ āĻāĻā§āϰ āϞāĻŋāĻā§āĻ āϏāĻš āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻž
FCM āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻāĻā§āϰ āϞāĻŋāĻā§āĻāϝā§āĻā§āϤ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋ āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤ āĻāĻā§āϰ āϞāĻŋāĻā§āĻāϝā§āĻā§āϤ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋ āĻĒā§āϤā§, āĻāĻĒāύāĻžāĻā§ āĻ āĻŦāĻļā§āϝāĻ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāϰ āĻāύā§āϝ āĻāĻā§āϰ āϞāĻŋāĻā§āĻāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰ⧠āĻāĻŽāύ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻ āĻāĻŋāĻĒā§āϰāĻžāϝāĻŧ āĻĢāĻŋāϞā§āĻāĻžāϰ āϝā§āĻā§āϤ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻ āĻāĻŋāĻĒā§āϰāĻžāϝāĻŧ āĻĢāĻŋāϞā§āĻāĻžāϰāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻĄā§āĻŽā§āύā§āϰ āĻāĻā§āϰ āϞāĻŋāĻā§āĻāĻā§āϞāĻŋ āϧāϰāĻž āĻāĻāĻŋāϤāĨ¤ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄāĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻ.āĻāĻā§āϏāĻāĻŽāĻāϞ:
<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="CHANGE_THIS_DOMAIN.example.com" android:scheme="http"/> <data android:host="CHANGE_THIS_DOMAIN.example.com" android:scheme="https"/> </intent-filter>
āĻ āĻāĻŋāĻĒā§āϰāĻžāϝāĻŧ āĻĢāĻŋāϞā§āĻāĻžāϰāĻāĻŋāĻā§ āĻāϰāĻ āύāĻŽāύā§āϝāĻŧ āĻāϰāϤ⧠āĻāĻāĻāĻŋ āĻāϝāĻŧāĻžāĻāϞā§āĻĄāĻāĻžāϰā§āĻĄ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻžāĻ āϏāĻŽā§āĻāĻŦāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ:
<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="*.example.com" android:scheme="http"/> <data android:host="*.example.com" android:scheme="https"/> </intent-filter>
āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āϝāĻāύ āϏā§āĻāĻŋāĻŽā§āϰ āĻāĻāĻāĻŋ āϞāĻŋāĻā§āĻāϝā§āĻā§āϤ āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āĻā§āϝāĻžāĻĒ āĻāϰā§āύ āĻāĻŦāĻ āĻāĻĒāύāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āĻĨāĻžāĻā§āύ, āϤāĻāύ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋ āϞāĻŋāĻā§āĻāĻāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠āĻāĻ āĻ āĻāĻŋāĻĒā§āϰāĻžāϝāĻŧ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻĻāĻŋāϝāĻŧā§ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒāĻāĻŋ āĻļā§āϰ⧠āĻāϰāĻŦā§āĨ¤
āĻ āĻā§ āϏā§āĻāύāĻž āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰā§āύ
FCM āĻĄāĻŋāĻāĻžāĻāϏ āĻāĻžāϰā§āĻā§āĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āύāĻŋāĻŦāύā§āϧāĻāϰāĻŖ āĻā§āĻā§āύ āĻāϤā§āĻĒāύā§āύ āĻāϰā§āĨ¤ āϝāĻāύ āĻāĻāĻāĻŋ āĻā§āĻā§āύ āĻāϤā§āĻĒāύā§āύ āĻšāϝāĻŧ, āĻā§āϰāύā§āĻĨāĻžāĻāĻžāϰāĻāĻŋ āϏāύāĻžāĻā§āϤāĻāĻžāϰ⧠āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĄā§āĻāĻž āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ⧠āĻāĻĒāϞā§āĻĄ āĻāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻā§āĻā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāĻā§ āĻāĻāĻāĻŋ āϏā§āϏā§āĻĒāώā§āĻ āĻ
āĻĒā§āĻ-āĻāύ āĻĒā§āϤ⧠āĻāĻžāύ āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻāĻĢāϏāĻŋāĻāĻŽ (āĻāĻŦāĻ āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ, āĻ
ā§āϝāĻžāύāĻžāϞāĻŋāĻāĻŋāĻā§āϏā§) āĻ
āĻā§āώāĻŽ āĻāϰ⧠āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻĒā§āϰāĻāύā§āĻŽāĻā§ āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āĻ
ā§āϝāĻžāĻĒāϞāĻāĻŋāϤ⧠āĻāĻĒāύāĻžāϰ Info.plist
(āĻāĻĒāύāĻžāϰ GoogleService-Info.plist
āύāϝāĻŧ) āĻŦāĻž āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄā§ āĻāĻĒāύāĻžāϰ AndroidManifest.xml
āϤ⧠āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻŽāĻžāύ āϝā§āĻā§āϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ
<?xml version="1.0" encoding="utf-8"?> <application> <meta-data android:name="firebase_messaging_auto_init_enabled" android:value="false" /> <meta-data android:name="firebase_analytics_collection_enabled" android:value="false" /> </application>
āϏā§āĻāĻĢāĻ
FirebaseMessagingAutoInitEnabled = NO
āĻāĻĢāϏāĻŋāĻāĻŽ āĻĒā§āύāϰāĻžāϝāĻŧ āϏāĻā§āώāĻŽ āĻāϰāϤā§, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āϰāĻžāύāĻāĻžāĻāĻŽ āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
Firebase.Messaging.FirebaseMessaging.TokenRegistrationOnInitEnabled = true;
āĻāĻ āĻŽāĻžāύāĻāĻŋ āĻāĻāĻŦāĻžāϰ āϏā§āĻ āĻšāϝāĻŧā§ āĻā§āϞ⧠āĻ ā§āϝāĻžāĻĒāĻāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻžāϞ⧠āĻāϰā§āĨ¤
āĻĒāϰāĻŦāϰā§āϤ⧠āĻĒāĻĻāĻā§āώā§āĻĒ
āĻāĻĒāύāĻŋ āϏā§āĻāĻāĻĒ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§āϞāĻŋ āĻļā§āώ āĻāϰāĻžāϰ āĻĒāϰā§, unity āĻā§āϝā§āϰ āĻāύā§āϝ FCM āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻāϝāĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻāϞā§āĻĒ āĻāĻāĻžāύ⧠āϰāϝāĻŧā§āĻā§:
- āĻŦāĻŋāώāϝāĻŧ āĻŦāĻžāϰā§āϤāĻž āĻĒā§āϰā§āϰāĻŖ āĻāϰā§āύ
- āĻĄāĻŋāĻāĻžāĻāϏ āĻā§āϰā§āĻĒā§ āĻĒāĻžāĻ āĻžāύ