iOS 微信SDK升級之配置Universal Link

原來公司老的App用的微信SDK為1.8.2,并不需要配置Universal Link糕殉,
然后最近有需求需要新建一個APP颈将,發(fā)現(xiàn)蘋果官方從2020年中起,新建的App里就不允許使用UIWebView了饥脑,否則打包上傳后無法在Apple Connect中顯示恳邀,郵箱會收到如下的提示:
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability.
接下去檢測項目中哪些代碼或者插件使用了UIWebView,使用如下命令:

grep -r UIWebView .

發(fā)現(xiàn)微信SDK中使用了UIWebView灶轰,看來新的App已經(jīng)無法使用1.8.2版本的微信SDK了谣沸,看了一下微信開放平臺iOS相關(guān)文檔,iOS的SDK從1.8.6.2開始移除UIWebView笋颤,也就是說乳附,起碼要升級到1.8.6.2,最新版本是1.9.1伴澄。

沒辦法赋除,只能升級了,更新了項目中的SDK后發(fā)現(xiàn)初始化的方法變了:

// 原來
[WXApi registerApp: XXXX];

// 現(xiàn)在
[WXApi registerApp: XXXX universalLink: XXXX];

初始化需要Universal Link了秉版,先不管他贤重,直接設(shè)置空

[WXApi registerApp: XXXX universalLink: @""];

然后,App就無法拉起微信了清焕。并蝗。

看來微信SDK現(xiàn)在一定要配置Universal Link了,我原來的理解是:Universal Link都是給需要從H5頁面拉起App的需求用的秸妥,現(xiàn)在居然從我的App跳轉(zhuǎn)微信App也需要配滚停,沒辦法,他說要配那就只能配了粥惧。

Universal Link使用前提:

-有注冊域名键畴,并且支持https可通過 SSL 訪問
-需要上傳一個apple-app-site-association文件到域名根目錄
-僅支持iOS 9及以上版本
-只支持真機(jī)調(diào)試

下面為Universal Link配置步驟

假設(shè)我們的域名為https://www.test.com

1、進(jìn)入蘋果開發(fā)者平臺,登錄賬號起惕,進(jìn)入Identifiers涡贱,選擇對應(yīng)的App,進(jìn)去后選中Associated Domains惹想,然后Save问词。


Associated Domains

2、如果你是手動建的Profile描述文件嘀粱,記得要去Profiles中更新描述文件激挪,老的已經(jīng)不能用了。如果是XCode自動生成的锋叨,需要參考下圖去XCode中的Build Setting中把Code Signing Entitlements內(nèi)容清空垄分,讓XCode再自動生成一份描述文件。(手動生成無需清空)
注:由于刪掉該記錄會導(dǎo)致capabilities數(shù)據(jù)移除娃磺,需要重新添加capability薄湿。


借用圖片

3、在XCode工程中豌鸡,添加Associated Domains嘿般,并將Universal Links域名上,這里的域名就為:applinks:www.test.com涯冠,不需要加任何前綴后綴

Domains

4炉奴、在info.plist中的LSApplicationQueriesSchemes里添加weixinULAPI


weixinULAPI

5、接下去配置apple-app-site-association文件蛇更,文件為json格式瞻赶,但是要把.json后綴去掉。

在WWDC2019派任,蘋果更新了apple-app-site-association文件的配置方法砸逊,推薦使用新寫法,擁有更強(qiáng)的配置能力掌逛,參考鏈接师逸。
放一張參考圖和一些引用的解釋,途中灰色的就為老的配置方法豆混。

參考圖

  • apps 這個字段只有在 iOS 上有用篓像,tvOS/macOS 這個字段可以忽略
  • details 字段結(jié)構(gòu)大幅度變化
    • 以前是字典 appID 為 Key,現(xiàn)在是數(shù)組皿伺,并且支持 appIDs 這樣的 key员辩,可以一套配置適配多個 appID,大幅度減少工作量
    • 新增 components 字段鸵鸥,可以進(jìn)一步約束 Universal Link 的生效條件
      • 可以通過 / 來配置支持的 path 格式條件
      • 可以通過 # 來配置支持的錨點(diǎn)條件
      • 可以通過 ? 來配置支持的字段條件
      • exclude 是排除字段奠滑,符合這個條件的 Universal Link 不生效

我們這邊可以這樣配置,配置https://www.test.com/ios/后面的任意頁面都適用Universal Link

{
    "applinks": {
        //"apps": [],
        "details": [
            {
                //"appID": "TeamID.BundleID",
                "appIDs": [ "TeamID.BundleID1", "TeamID.BundleID2" ],
                //"paths": [ "/ios/*" ],
                "components": [
                 {
                      "/": "/ios/*",
                      // "/": "*",如果要https://www.test.com下所有的頁面都適用就這樣配,但是推薦還是分一下路徑宋税,畢竟一個公司下可能會有多款A(yù)pp
                      "comment": "Matches any URL whose path starts with /ios/"
                 }
               ]
            }
        ]
    }
}
TeamID如何獲取
TeamID

6摊崭、配置后請后臺管理人員把a(bǔ)pple-app-site-association文件放在https://www.test.com根目錄下,然后測試一下用瀏覽器打開https://www.test.com/apple-app-site-association弃甥,如果能顯示文件內(nèi)容或下載下來文件爽室,則說明配置成功。

到這一步淆攻,真機(jī)重新運(yùn)行App,然后真機(jī)打開Safari嘿架,瀏覽器輸入https://www.test.com/ios/瓶珊,頁面雖然顯示空白,但是往下拉一下耸彪,頁面頂部已經(jīng)顯示了可以打開App了伞芹。

Safari

注:如果沒效果,嘗試刪除一下App蝉娜,重新運(yùn)行唱较。
如刪除服務(wù)器上的apple-app-site-association文件,發(fā)現(xiàn)刪除APP重新安裝后召川,還是會顯示頂部打開App南缓,這個時候嘗試刪除App并重啟手機(jī)。
如發(fā)現(xiàn)將apple-app-site-association文件重新放上服務(wù)器后荧呐,重新安裝App后測試網(wǎng)頁也不顯示頂部欄汉形,這時候嘗試刪除App并Clean一下Build,重新Build一下再安裝倍阐。

7概疆、去微信開發(fā)平臺對應(yīng)的應(yīng)用中的iOS配置中配置一下Universal Link:https://apitest.mshchina.com/ios/

8、微信SDK初始化代碼

[WXApi registerApp:微信AppID universalLink:@"https://apitest.mshchina.com/ios/"];

好了峰搪,再嘗試調(diào)微信SDK岔冀,就可以在我們的App中拉起微信了。

遇到的坑

// URI scheme以及微信SDK處理iOS13以下版本的回調(diào)概耻,走這個
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
   // 我們需要的判斷跳轉(zhuǎn)
   return YES;
}

// Universal Links以及微信SDK處理iOS13以上版本的回調(diào)使套,走這個,兩個方法都要適配
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler { 
  // 我們需要的判斷跳轉(zhuǎn)
   return YES;
}

結(jié)束

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咐蚯,一起剝皮案震驚了整個濱河市童漩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌春锋,老刑警劉巖矫膨,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡侧馅,警方通過查閱死者的電腦和手機(jī)危尿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馁痴,“玉大人谊娇,你說我怎么就攤上這事÷拊危” “怎么了济欢?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長小渊。 經(jīng)常有香客問我法褥,道長,這世上最難降的妖魔是什么酬屉? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任半等,我火速辦了婚禮,結(jié)果婚禮上呐萨,老公的妹妹穿的比我還像新娘杀饵。我一直安慰自己,他們只是感情好谬擦,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布切距。 她就那樣靜靜地躺著,像睡著了一般怯屉。 火紅的嫁衣襯著肌膚如雪蔚舀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天锨络,我揣著相機(jī)與錄音赌躺,去河邊找鬼。 笑死羡儿,一個胖子當(dāng)著我的面吹牛礼患,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掠归,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼缅叠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了虏冻?” 一聲冷哼從身側(cè)響起肤粱,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厨相,沒想到半個月后领曼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸥鹉,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年庶骄,在試婚紗的時候發(fā)現(xiàn)自己被綠了毁渗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡单刁,死狀恐怖灸异,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情羔飞,我是刑警寧澤肺樟,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站褥傍,受9級特大地震影響浅辙,放射性物質(zhì)發(fā)生泄漏级解。R本人自食惡果不足惜荤西,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一渐裸、第九天 我趴在偏房一處隱蔽的房頂上張望毫炉。 院中可真熱鬧矢空,春花似錦椭更、人聲如沸蚪燕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至邻遏,卻和暖如春糠亩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背准验。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工赎线, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人糊饱。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓垂寥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親另锋。 傳聞我的和親對象是個殘疾皇子滞项,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容