蘋果在推出iOS14的同時(shí)捂人,推出了App Clip鸟款,功能和用法跟小程序和安卓輕應(yīng)用類似。
但是灌具,相對(duì)于小程序來說青团,App Clip 對(duì)于源生開發(fā)者更友好。
App Clip的開發(fā)跟源生應(yīng)用的開發(fā)幾乎無二咖楣。通過Swift或者OC來編寫督笆,對(duì)于開發(fā)者來說,大大降低了學(xué)習(xí)成本诱贿。
在 Xcode 工程中娃肿,你可以為你的 App 添加一個(gè) app clip target, 利用 Xcode 咕缎,app clip 可以與你的 app 共享代碼與資源,并可以編譯料扰,調(diào)試凭豪,運(yùn)行在真機(jī)或者模擬器環(huán)境。
但是晒杈,在實(shí)際使用過程中嫂伞,開發(fā)者必須在自己的服務(wù)器上做好驗(yàn)證 app clip 的有效性的手段。類似于桐智,當(dāng)初蘋果推行的UniversalLink末早。
App Clip是建立在一個(gè)源生應(yīng)用基礎(chǔ)之上的。是App功能的一部分说庭,可以理解為功能子集然磷。
實(shí)操
一 給App新增一個(gè)app Clip Target (需要Xcode12以上才可以創(chuàng)建)
1 新增一個(gè)target,選中app clip點(diǎn)擊確定刊驴。
2 輸入 App clip 的名稱姿搜,以及為 app clip 選擇合適的選項(xiàng),系統(tǒng)會(huì)自動(dòng)依據(jù)住App給新的target創(chuàng)建identifier(原來的identifier.clip) 并點(diǎn)擊完成 .
3 添加 Associated Domains Entitlement捆憎。 App clip 可以通過用戶傳入的一個(gè) URL(例如:掃碼)來喚起舅柜,用戶可通過 app clip 傳遞給主 app 一個(gè)。URL 的方式安裝完整應(yīng)用躲惰,要支持以上倆種調(diào)用方式致份,必須在 app 和 app clip 中加入 Associated Domains Entitlement:打開工程設(shè)置,在 Associated Domains capability 中加入 the Associated Domains Entitlement使用以下樣式將其 domain 添加到 Associated Domains capability 功能中:appclips:yourDomien.com(跟UniversalLink 的配置類似础拨,只是將applink換成了appclips)
4 服務(wù)器配置氮块,在系統(tǒng)彈出 app clip 或允許 app clip 調(diào)用之前,系統(tǒng)會(huì)驗(yàn)證 app clip 的配置和調(diào)用的URL诡宗。如果無法執(zhí)行驗(yàn)證滔蝉,則不會(huì)顯示app clip,也不會(huì)啟動(dòng)塔沃。配置方法跟UniversalLink一樣蝠引,新增一個(gè)鍵值對(duì),key為appclips蛀柴,value為一個(gè)對(duì)象 "apps": ["bundle id.Clip"]
二 給App Clip增加代碼
就跟普通的多target項(xiàng)目一樣螃概,這里也只是新增了一個(gè)target。
1 找到對(duì)應(yīng)app clip target目錄下的文件鸽疾,進(jìn)行代碼編輯(正常新建文件谅年,系統(tǒng)會(huì)自動(dòng)選的target為app clips)。
2 可以共享主App中的代碼肮韧。此時(shí),找到需要放進(jìn)app Clip 中的文件,找到.m文件中的targer membership選項(xiàng)(這里本身只選中了主App的target)弄企,勾選上app clip target超燃。 該文件就可以在app clips target中被訪問到。
3 把代碼編譯成framework拘领,引入項(xiàng)目意乓。就可以共享了
4 把代碼放到私有庫中,在podfile中约素,新增 target 'ClipTest'届良。 將私有庫的地址,同時(shí)引入兩個(gè)target圣猎,就可以共享代碼了
三 在 App Store Connect 中注冊(cè) App Clip
系統(tǒng)使用您在 App Store Connect 中配置的 URL 來啟動(dòng)您的 app clip士葫。因此,識(shí)別啟動(dòng) app clip 的URL送悔,在啟動(dòng)時(shí)對(duì)其進(jìn)行響應(yīng)并在 App Store Connect 中注冊(cè)它們對(duì)于創(chuàng)建 app clip 至關(guān)重要慢显。
可以通過手機(jī)本地注冊(cè)一個(gè)開發(fā)版本的,進(jìn)行預(yù)覽欠啤。
- 首先將 SugarClip 通過 Xcode 在手機(jī)運(yùn)行起來荚藻。
- 打開手機(jī)【設(shè)置】-【開發(fā)者】-【Local Experience】-【Register Local Experience】
填入 URL PREFIX,打開任何以 URL PREFIX 為前綴的 URL洁段,都會(huì)被當(dāng)做打開 App Clip 來處理应狱。
填入 Clip Bundle Id。
填入 Title祠丝、Subtitle疾呻,選擇一張圖片,這些信息將會(huì)顯示在 App Clip Card 上纽疟。
準(zhǔn)備發(fā)布 app clip 時(shí)罐韩,請(qǐng)將其作為 app archive 的一部分提交。請(qǐng)注意污朽,必須通過App Store 審核散吵,才能發(fā)布。
需要注意的點(diǎn)
目前蟆肆,app clip只允許 和其對(duì)應(yīng)的主 app 通信矾睦,不允許和其他 app 進(jìn)行通信,這就導(dǎo)致微信登錄分享支付等功能在 App Clip 里使用不了炎功。但是可以使用蘋果自帶的 apple pay進(jìn)行支付枚冗。
不能訪問蘋果音樂、多媒體蛇损,通訊錄赁温,文件坛怪,運(yùn)動(dòng)健康,相冊(cè)等數(shù)據(jù)股囊。
不能跟蹤用戶信息袜匿,也不能通過 identifierForVendor 來獲取用戶唯一標(biāo)識(shí)。
不能持續(xù)地獲取用戶位置稚疹,每次使用位置需要請(qǐng)求用戶授權(quán)居灯,次日凌晨 4:00,會(huì)自動(dòng)關(guān)閉授權(quán)内狗。再次使用位置時(shí)怪嫌,需要用戶重新授權(quán)。