1. 程式人生 > >IOS9通用連結使用要點

IOS9通用連結使用要點

1      簡介

通用連結是Apple在WWDC2015上為IOS9引入的一個新功能,是通過傳統HTTP連結來啟動App的技術。可以使用相同的網址開啟網站和App。

通過唯一的網址,就可以連結到App中具體的檢視,不需要特殊的schema。如果使用者沒有安裝App則連結到對應的普通網頁。

2      先決條件

l  至少Xcode beta2

l  至少IOS9beta2(之前的測試版本要做額外的工作)

l  有一個註冊通過SSL訪問的域名

3      操作步驟

3.1   註冊App並開啟Associated Domains服務

如果你還沒有註冊App,則需要登陸developer.apple.com註冊一個。

在Identifiers下AppIDs找到自己的App ID,編輯開啟Associated Domains服務。


選中,並儲存。

3.2   在Xcode中開啟Associated Domains服務

a.開啟Associated Domains服務


如果出現如下圖所示的情況請檢查下自己所選的組是否正確,以及Xcode工程中的bundle identifier和註冊的App Identifier是否一致。


b.新增域名,點選Associated Domains的“+”新增字首為applinks:的域名,如下圖所示


c.確認在entitlements檔案包含在工程中

3.3   配置apple-app-site-association檔案

a.     建立apple-app-site-association的json檔案

檔案格式如下圖所示:


其中apps項必須對應一個空的陣列。details項對應一個字典的陣列,網站所能支援的每個app一個字典。

appID對應項由字首和ID兩部分組成,可以在developer.apple.com中的Identifiers→AppIDs中點選對應的App ID檢視。


paths對應域名中的path,用於過濾可以跳轉到App的連結,支援萬用字元‘*’,‘?’以及‘NOT’進行匹配,匹配的優先順序是從左至右依次降低。

b.     伺服器配置要求:

域名需要SSL證書,如果不支援HTTPS,則需要對apple-app-site-association進行SSL認證。認證命令如下:

catapple-app-site-association-unsigned | openssl smime -sign -inkey yourdomain.com.key -signer yourdomain.com.cert -certfile digicertintermediate.cert -noattr-nodetach -outform DER > apple-app-site-association

伺服器配置要求站點必須是youdomain.com/apple-app-site-association,請求頭是‘application/pkcs7-mime’,返回HTTP碼是200。

3.4   響應處理

點選連結跳入App,由UIApplicationDelegate中的application:continueUserActivity:restorationHandler:函式進行處理,通過如下方式獲取URL,然後對不同的URL進行不同的響應。


4      一些注意的事項

1.    apple-app-site-association不需要.json字尾。

2.    如果要對沒有path的域名進行支援(如:www.163.com),在json檔案的paths中用萬用字元’*’是不行的,需要在paths陣列中加入’/’進行匹配。

3.    對json檔案的請求僅在App第一次啟動時進行,如果此時網路連接出了問題apple會快取請求,等有網的時候再去請求,而實際測試抓包並沒有請求故通用連線會失效。

4.    paths匹配的優先順序是從左至右依次降低,但需要明確,否則會出問題。比如"paths":["NOT /together/*","*"],在IOS9.2上path為/together/*都不會跳到App,但是在IOS9.0上會跳到。