2020年6月19日 星期五

Firebase Dynamic Links with iOS

Firebase Dynamic Links with iOS

此篇主要是分享iOS運用Firebase Dynamic Links的紀錄分享,不過在分享之前,我們需要先知道Firebase Dynamic Links是什麼東西,簡單來說的話Firebase Dynamic Links是可以讓你在有安裝某App時點擊連結就可以跳到該App(甚至是到App裡的某特定頁面,而如果沒有安裝的話則會導到App Store下載頁面)

iOS運用Firebase Dynamic Links的步驟:

1. 建立要用Firebase Dynamic Links的專案(或是現有專案要導入Firebase Dynamic Links)

2. 安裝Firebase Dynamic Links iOS SDK:
安裝方式有幾種,這邊介紹透過cocoapods安裝以及直接下載Firebase SDK:

(1). Cocoapods安裝: 打開終端機並切到你的專案底下並輸入pod init 來建立pod file,然後打開113Test.xcworkspace啟動專案並在Podfile裡面貼加 pod 'Firebase/DynamicLinks',儲存後關閉專案,然後在終端機輸入 pod install 就會把Firebase Dynamic Links安裝到專案裡面去,這就是Cocoapods安裝

(2). 直接下載SDK: 如果不想透過Cocoapods安裝的話也可以直接下載Firebase SDK,網址: https://firebase.google.com/docs/ios/setup?hl=zh-cn#frameworks 往下找到不使用 CocoaPods 進行集成,下載框架SDK zip的地方下載,下載後直接打開資料夾拖曳你要的SDK到你的專案裡,其中要注意的地方為有的SDK要搭配其他SDK才能正常運作,例如Firebase Dynamic Links要引用FirebaseAnalytics,所以就要同時加入FirebaseAnalytics和Firebase Dynamic Links的SDK,最後就是也要加入Firebase.h檔案,大致會像下圖所示:





3. Xcode專案裡的XXXDelegate引入Firebase.h檔案,然後在didFinishLauchingWithOptions的方法裡添加Firebase的設定程式碼,如下圖所示:




4. 打開網頁輸入https://console.firebase.google.com去Firebase後台

5. 進到Firebase的管理頁面之後,在左側的工具列選"成長",就可以在裡面看到Dynamic Links,看到之後再選開始使用,會要你輸入網域,有自己的網域的話則輸入自己的網域,沒有的話則輸入google免費提供的測試網域xxxx.page.link (例如我輸入的是maxsysehome.page.link),正個設定如下圖所示:






6. 去Apple Developer上設定要使用Firebase Dynamic Link的專案的identifier裡要啟動Associated Domain,如下圖所示: 

 
7. 在Xcode開發工具裡設定Associated Domain,其中前面一定要加applinks:(your domain)your domain就是你在Firebase Dynamic Links裡面設定的連結,ex: https://maxsysehome.page.link/maxsys,https://後面的就是你的Associated Domain如下圖所示: 



8. 接下來就可以在line裡面測試連結,ex:https://maxsysehome.page.link/?link=https://www.google.com?callHNCBPage?WFID1111?d&isi=520090927&ibi=com.ESCS.fourDO,則會出現以下畫面: 




此時如果順利按下OPEN就可以測試有裝App時則直接打開App,沒有安裝App時就會跳到該App的下載頁面,如果要做到進入App的特定的頁面的話則需要另外在專案的程式裡面處理

以上就是Firebase Dynamic Links整個的設定




參考資料:
1. Firebase Dynamic Link iOS GitHub下載網址: https://github.com/firebase/quickstart-ios
2. https://firebase.google.com/docs/dynamic-links/ios/receive
3. https://firebase.google.com/docs/ios/setup?hl=zh-cn#objective-c_1
4. https://firebase.google.com/docs/ios/setup?hl=zh-TW


解決iOS 14上如果更換預設瀏覽器(例如從Safari換成Chrome)時, 用Scheme架構會無法回到上一頁的問題

 如果遇到以下問題時 須在Info裡的LSApplicationQueriesSchemes裡設定多增加https, 如下圖: