OC 經(jīng)驗 微信,QQ,登錄,分享失敗-PBItemCollectionServicer connection disconnected.

一直覺得自己寫的不是技術(shù)菩浙,而是情懷迎罗,一個個的教程是自己這一路走來的痕跡睬愤。靠專業(yè)技能的成功是最具可復制性的纹安,希望我的這條路能讓你們少走彎路尤辱,希望我能幫你們抹去知識的蒙塵,希望我能幫你們理清知識的脈絡(luò)厢岂,希望未來技術(shù)之巔上有你們也有我光督。

發(fā)現(xiàn)一個天大的秘密,我當時在2021.7.2號寫的QQ登錄沒有問題的 結(jié)果到了2021.7.5號發(fā)現(xiàn)登錄不了塔粒,原因是我在2021.7.2號的時候修改過QQ開放平臺里面的信息结借,然后看到驗證通過了。如果馬上生效的話2021.7.2號應該是不能登錄的卒茬,結(jié)果到2021.7.5號星期一運行才發(fā)現(xiàn)登錄不了船老,證明資料的更新有一定的延時

首先,這個問題我在網(wǎng)上搜索了很多資料扬虚,都沒有最終的解決辦法努隙,后來根據(jù)自己的實際情況自己想了好久,終于解決了辜昵,

我當時用的是微信的SDK版本是1.8.9荸镊,由于IOS 9之后需要用通用鏈接。

出現(xiàn)這個BUG我打算用開發(fā)的時間順序來去詳細說明一下,我當時在開發(fā)公司的項目的時候呢躬存,首先沒有問產(chǎn)品經(jīng)理去拿蘋果開發(fā)者賬號张惹,配置證書,配置IDS岭洲,配置項目描述文件宛逗,上微信開發(fā)平臺填寫信息,就去開發(fā)項目盾剩。(以后開發(fā)公司新項目前要做好這些工作再去開發(fā)是最好的雷激,為什么呢?)

因為:我當時新建了個項目用的證書就是上一家公司的證書(假如:abc)告私,boundleID是現(xiàn)在公司的boundleID(假如:123)屎暇,這樣子的話,boundleID的IDS文件就會生成在上一家公司了(abc)驻粟。到時候現(xiàn)在的公司開發(fā)者賬號給我們配置上架的話就不能用現(xiàn)在公司的boundleID(123)根悼,生成的時候回提示重復命名的,所以就會造成很大的麻煩蜀撑,如果你無法在上一家公司的開發(fā)者賬號里面刪掉這個IDS文件就用不了現(xiàn)在公司的boundleID(123)挤巡,只能重命名一個了(假如:456)。我當時就不管他酷麦,一直用上一家公司的證書(abc)矿卑,然后就做第三方微信登錄,在開放平臺填的信息是boundleID(123)贴铜,然后填通用鏈接 當時我通用鏈接是按照格式亂填的(假如:zxc)粪摘,真正的通用鏈接我還沒有做出來,畢竟沒有公司的開發(fā)者賬號绍坝,沒有生成IDS和Appid衅金,無法做通用鏈接粟誓。就這樣我就開始做微信的第三方登錄狂魔,結(jié)果就這樣搞好了微信的第三方登錄和微信分享侠讯。

等項目準備上架的時候,我在去問公司拿開發(fā)者賬號把介,去搞證書勤讽,配置IDS,跟填寫App的上架信息拗踢。配置IDS的時候我無法用現(xiàn)在公司的boundleID(123)脚牍,所以自己重新命名一個boundleID(456),然后證書巢墅,IDS(456),App填寫資料完成了诸狭。然后就去搞通用鏈接券膀。

通用鏈接的整個步驟我會在寫一篇文章詳細說明。

那么我的通用鏈接搞好之后驯遇,我就去微信開發(fā)平臺上面去修改BounleID(改為456)和通用鏈接(url)芹彬,結(jié)果去驗證微信的登錄的時候發(fā)現(xiàn)登錄都登錄不了,分享更加分享不了叉庐。我首先還以的是boundleID對不上舒帮,所以就把之前備份的微信登錄的代碼拿出來運行看看是否能登錄,結(jié)果發(fā)現(xiàn)真的能登錄陡叠,備份的微信登錄代碼的boundleID 是(123),但問題是我已經(jīng)把微信開放平臺的boundleID已經(jīng)修改了(456),不可能微信開放平臺新修改的信息沒有生效吧玩郊,如果要把boundleID 修改回(123)的話,在微信開發(fā)平臺修改就簡單了匾竿,改一下就可以瓦宜,問題是項目用123的boundID的證書對應是上一家公司的證書(abc),而且IDS岭妖,項目配置文件,填寫的Apps信息都是用boundleID(456)...............

哎反璃,沒有辦法昵慌,換就換啦,鬼叫現(xiàn)在登錄不了..........

修改boundleID過程

更換了IDS之后我發(fā)現(xiàn)淮蜈,仍然登錄不了哦斋攀,這就奇怪了。然后我有運行之前備份的微信登錄代碼能夠登錄梧田,新的準備上架的代碼大家都是同樣的boundleID登錄不了淳蔼,說明不是boundleID的問題了。所以boundleID換不換都沒有問題裁眯。

哪新的代碼多了什么呢鹉梨?

到了中午吃飯的時候,整個第三方的登錄跟分享沒有進展穿稳,想不到怎么去解決存皂。后來下午上班的時候我想了一下,以前在(拿貨)工作的時候用就得SDK不需要做通用鏈接的那種逢艘,都能登錄跟分享旦袋,怎么現(xiàn)在換了最新的SDK就不行呢,想了想它改,我的BoundleID已經(jīng)換回來的疤孕,微信開發(fā)平臺的BoundleID跟項目的BoundleID已經(jīng)是一致。剩下的就是通用鏈接的問題了央拖,所以我做了個決定祭阀,把項目的最新的SDK移除它鹉戚,用舊的SDK(不需要通用鏈接的那種)。結(jié)果能夠登錄跟分享柬讨。開始看到曙光了崩瓤。證明確實去通用鏈接的問題。

通用鏈接踩官。我當時亂寫了一個通用鏈接的却桶,不過現(xiàn)在做好了通用鏈接不可能修改為亂寫的那個吧,我還是試試蔗牡。微信開放平臺用的是真正能用的那個(url)颖系,只是代碼修改為之前亂寫的那個(zxc)結(jié)果運行報錯。

image

說明什么呢辩越?微信第三放登錄的時候嘁扼,微信開放平臺填的通用鏈接要跟代碼里面的通用鏈接要一致,不管你是亂填的還是寫個真正能用的黔攒,最重要的是一致趁啸。(重點:我說的亂填,也要按照微信開放平臺的鏈接格式來填的例如:https://nahuoshangcheng/app/督惰,不然你也無法保存)

所以不傅,我把代碼的鏈接修改為跟開放平臺一樣的通用鏈接。就是真正能用的鏈接赏胚。這個步驟是對的访娶。結(jié)果程序崩掉(不能登錄),為什么呢觉阅。還有一個地方崖疤。

image

我把這個地方刪掉它重新運行一下,發(fā)現(xiàn)可以登錄了典勇。其實應該還有有問題的劫哼,如果使用通用鏈接的話這個步驟還是必須要填的,但是為什么反而不填就能登錄痴柔。填了反而出問題沦偎,不填寫代理的回調(diào)方法是這個:

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options

后來上去網(wǎng)上找了一下,人家用通用鏈接回調(diào)得代理是下面的這個的咳蔚。結(jié)果我換成下面的這個代理豪嚎。有回調(diào)了,

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler NS_AVAILABLE_IOS(8_0);

然后我再次把通用鏈接補上谈火,因為微信的SDK1.8.9的通用鏈接的做法一定要補上的侈询,


image.png

注意證書配置哪里也要記得打開按鈕


image.png

最終得到一個啟迪的是什么呢?如果做第三方微信登錄的話糯耍。其實通用鏈接做不做都是無所謂的扔字,你亂填一個都是可以的囊嘉,亂填也要按照微信的格式去填 例如:https://nahuoshangcheng/app/ 不然你也無法保存。那么登錄成功的回調(diào)AppDelegte里的代理方法就是

重點:重點:重點 SDK要支持通用鏈接例如我現(xiàn)在用的是SDK1.8.9

如果你亂填一個通用鏈接的話革为,會走下面的代理方法扭粱。


-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
    if ([url.host isEqualToString:@"qzapp"]) {//騰訊
        return [TencentOAuth HandleOpenURL:url];
    }else if ([url.host isEqualToString:@"oauth"]) { //微信
        return [WXApi handleOpenURL:url delegate:self]; 
    }else if ([url.host isEqualToString:@"response"]){//微博
        return [WeiboSDK handleOpenURL:url delegate:self];
    }
    return YES;
}

如果用了真正能用的通用連接的話 AppDelegte的代理方法就是

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler NS_AVAILABLE_IOS(8_0); {
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *url = userActivity.webpageURL;
if([[NSString stringWithFormat:@"%@",url] rangeOfString:@"oauth"].location !=NSNotFound){
//微信登錄
return [WXApi handleOpenURL:url delegate:self];
}else if ([[NSString stringWithFormat:@"%@",url] rangeOfString:@"tencent"].location !=NSNotFound){
//QQ登錄
return [TencentOAuth HandleUniversalLink:url];
}
}
return YES;
}

其實我還有一個很舊的微信SDK,這個SDK是iOS9 之前的震檩,當時還有出通用鏈接的概念的琢蛤,如果用這個SDK的話,微信開放平臺的通用鏈接亂填一個抛虏,到時候代碼里面注冊微信信息的時候不用填通用鏈接的博其,例如下面的代碼:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [WXApi registerApp:AppID universalLink:Links];
    return YES;
}

用這個SDK集成的話,直接微信登錄迂猴,分享慕淡,支付都沒有通用鏈接的概念的 不用煩這個通用鏈接的問題。

SDK下載了鏈接后面補上沸毁。

總結(jié):PBItemCollectionServicer connection disconnected.

這個BUG的可能性:

1.開發(fā)平臺上填寫的通用鏈接要跟代碼的通用鏈接一定要一致(不一致會提示通用鏈接校驗失敗的)

image

2.通用鏈接必須能用的峰髓,不能亂填。怎么能不能用呢息尺。我上面有文章跳去制作過程的儿普。如果能用AppDeleegte的代理方法會跳去


-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler NS_AVAILABLE_IOS(8_0);

然后里面返回的rul 打印的信息包含你的通用鏈接地址:code值,wechat_auth_token信息等 例如:

https://www.xxxxx.com/apple-app-site-association/wx1234567890ff/oauth?code=1234567890&state=1234567890&wechat_auth_token=1234567890&wechat_auth_context_id=1234567890
3.這里要填寫通用鏈接的域名

image.png

4.開發(fā)者賬號的ADS證書 按鈕要打開


image.png

5.檢查下面的地方有沒有填寫:必須要填掷倔,不填無法分享,能登錄个绍。

image

6.對照微信開放平臺上面的boundleID 有沒有填錯勒葱。boundleID對應項目的boundleID boundleID對應開發(fā)者賬號的IDS

7.如果還不行的話就是集成微信有問題,移除重新集成巴柿。

肯定在這幾個可能里面的凛虽。

這個的問題所在 IDS boundleID 對應的開發(fā)者賬號以及證書 通用鏈接 沒有搞好就去搞微信登錄和微信分享還有一個代理方法沒有寫,到上架的時候有換來換去導致的广恢。

經(jīng)過這次教訓得到什么凯旋,第一:開發(fā)要拿到開發(fā)者賬號,配置好證書钉迷,IDS,app信息能填多小就多小至非,做好通用鏈接,再去開發(fā)項目糠聪,如果做第三方微信登錄荒椭,分享,支付舰蟆,先到微信開放平臺填寫好信息趣惠,之后就不要再改了狸棍,就不會有太大問題了,改來改去很容易出現(xiàn)問題味悄。


其實當時2021.07.02當時測試沒有問題的 到2021.07.05回來有不行了 不知道為什么草戈,后來還是用回就得微信SDK 不用通用鏈接的那種結(jié)果可以了(舊的SDK不用通用鏈接的)

最后2021.07.10 本來打算用(拿貨)舊的微信SDK打包上架的,發(fā)現(xiàn)里面有使用蘋果廢棄的UIWebView導致無法打包侍瑟。

所以只能夠用最新的微信SDK +最新的QQ SDK +最新的微博SDK 之前就是因為使用微信的SDK 導致QQ無法分享唐片。

我再次使用微信的SDK 重新導入一次。然后下面圖片的地方?jīng)]有填寫通用鏈接丢习,結(jié)果微信登錄 分享 QQ登錄 分享 微博登錄成功可以用了牵触。

image.png

AppDelegate的回調(diào)是走openUrl的
QQ登錄回調(diào)


image.png

微信回調(diào)


image.png

這個的問題高度懷疑是 通用鏈接的問題

其實我現(xiàn)在能用微信登錄跟分享 QQ能登錄跟分享 微博能登錄 但是PBItemCollectionServicer connection disconnected這個錯誤依然存在,通用鏈接還沒有真正的搞好咐低。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揽思,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子见擦,更是在濱河造成了極大的恐慌钉汗,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲤屡,死亡現(xiàn)場離奇詭異损痰,居然都是意外死亡,警方通過查閱死者的電腦和手機酒来,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門卢未,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人堰汉,你說我怎么就攤上這事辽社。” “怎么了翘鸭?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵滴铅,是天一觀的道長。 經(jīng)常有香客問我就乓,道長汉匙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任生蚁,我火速辦了婚禮噩翠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘守伸。我一直安慰自己绎秒,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布尼摹。 她就那樣靜靜地躺著见芹,像睡著了一般剂娄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玄呛,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天阅懦,我揣著相機與錄音,去河邊找鬼徘铝。 笑死耳胎,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的惕它。 我是一名探鬼主播怕午,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼淹魄!你這毒婦竟也來了郁惜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤甲锡,失蹤者是張志新(化名)和其女友劉穎兆蕉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缤沦,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡虎韵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了缸废。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片包蓝。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖企量,靈堂內(nèi)的尸體忽然破棺而出养晋,到底是詐尸還是另有隱情,我是刑警寧澤梁钾,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站逊抡,受9級特大地震影響姆泻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冒嫡,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一拇勃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孝凌,春花似錦方咆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榆骚。三九已至,卻和暖如春煌集,著一層夾襖步出監(jiān)牢的瞬間妓肢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工苫纤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碉钠,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓卷拘,卻偏偏與公主長得像喊废,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子栗弟,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

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