關於 Universal Links 及接入遇到的問題


背景

- iOS 13 對三方App的跳轉安全級別的要求提高
- 一些大廠的 SDK 積極響應要求,如我們就是在接入 QQ 互聯時只能下載最新的SDK,要求必須使用 Universal Links

開發測試環境

- Mac 10.14.5 iOS 13.2.3 iphone 7
- QQ SDK 3.3.7

遇到的問題

- 在 iOS 13 以下的系統可以正常分享, 13的系統初次安裝可分享之后均不能分享,如下圖每次會檢查

universal_links_01

Apple Support Universal Links

- 創建名字為 `apple-app-site-association` 且飲食的數據為 JSON 格式,文件內容決定你的 APP 可以處理那些 URL
- 將文件 `apple-app-site-association` 給服務端且必須支持 **https**,文件的位置放在根目錄下或 `.well-know` 子文件夾下(個人建議兩處都放,開始就是因為后者路徑下沒話,害我調試了半天,后面會貼出調試方法)
- 准備 APP 要處理的 Universal Links

創建 apple-app-site-association 文件

- 基本的格式如下  
{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "9JA89QQLNQ.com.apple.wwdc",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            },
            {
                "appID": "ABCD1234.com.apple.wwdc",
                "paths": [ "*" ]
            }
        ]
    }
}

**以上是 apple-app-site-association 文件的內容示例, 注意文件名后面不要接后綴 .json **
目前開發者可改的內容是appID & paths, applinks\apps 固定寫法;
appID的組成:申請的開發者帳號的ID:你在Xcode中Domain里填的域名
paths你自己定義的合法路徑,在這里寫的路徑,你可以拼成這樣: https://com.apple.wwdc/wwdc/news/ , 此路徑在你手機的記事本和 Safari中打開會調轉到你的APP
*: 是通配符,/*表示: /后的所有路徑都匹配

Xcode中相關的配置

universal_links_02

檢驗配置是否成功(輸入自己的域名按下面兩種方式)

- 在手機自帶的 APP 備忘錄 中輸入 https://help.wechat.com/app/,如下圖表示成功

universal_links_03

- 在手機的 Safari 中輸入 https://help.wechat.com/app/,如下圖表示成功(這里要多下拉幾次,藏在網址的導航欄下面)

universal_links_04

遇到的問題

- 在 iOS 的 13 及以上的系統上,當時在服務端的 .well-known 路徑下沒有放 AASA 文件,導致 13 系統的手機一直下載不成功
- 參考 stackoverflow 上的方法調試找到下載不成功的原因,加上后測試就Ok了
<a href='https://stackoverflow.com/questions/32751225/ios-universal-links-are-not-opening-in-app'>Stackoverflow Univerlinks</a> 
- 調試步驟:
	* 在 Xcode 中 Window -> Device and Simulators -> Open Console -> 在左邊欄打開選擇你的設備
	* 在右上角的搜索框中輸入 `swcd` 去檢索你下載 AASA 文件的相關信息
	* 手機沒有下載如下圖

universal_links_06

	* 下載成功的大概如下圖

universal_links_05
universal_links_07
universal_links_08

補充

官方檢測,但好像只有上架的才會是通過,開發中的檢測不到


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM