友盟集成(九) —— UShare模塊之UShare常見問題 (六)

版本記錄

版本號 時間
V1.0 2018.04.05

前言

相信很多人用過友盟,包括友盟的第三方登錄、分享以及統計。這里我們就分幾個模塊進行詳細的說明 —— 移動統計(U - App)、網站統計(U - Web)、消息推送(U - Push)、社會化分享(U - Share)、游戲統計(U - Game)、互聯網運營數據服務(Dplus) - 多維度、一站式、精細化數據管理服務。感興趣的可以看上面幾篇。
1. 友盟集成(一) —— UShare模塊之快速集成(一)
2. 友盟集成(二) —— UShare模塊之快速集成(二)
3. 友盟集成(三) —— UShare模塊之第三方登錄(一)
4. 友盟集成(四) —— UShare模塊之進階說明之第三方平臺SDK說明(一)
5. 友盟集成(五) —— UShare模塊之進階說明之分享到第三方平臺(二)
6. 友盟集成(六) —— UShare模塊之進階說明之分享面板UI(三)
7. 友盟集成(七) —— UShare模塊之進階說明之自定義平臺(四)
8. 友盟集成(八) —— UShare模塊之進階說明之U-Share API說明(五)

UShare常見問題

1. U-Share返回錯誤碼

//平臺的失敗錯誤碼
/**
 *  U-Share返回錯誤類型
 */
typedef NS_ENUM(NSInteger, UMSocialPlatformErrorType) {
    UMSocialPlatformErrorType_Unknow            = 2000,            // 未知錯誤
    UMSocialPlatformErrorType_NotSupport        = 2001,            // 不支持(url scheme 沒配置,或者沒有配置-ObjC, 或則SDK版本不支持或則客戶端版本不支持)
    UMSocialPlatformErrorType_AuthorizeFailed   = 2002,            // 授權失敗
    UMSocialPlatformErrorType_ShareFailed       = 2003,            // 分享失敗
    UMSocialPlatformErrorType_RequestForUserProfileFailed = 2004,  // 請求用戶信息失敗
    UMSocialPlatformErrorType_ShareDataNil      = 2005,             // 分享內容為空
    UMSocialPlatformErrorType_ShareDataTypeIllegal = 2006,          // 分享內容不支持
    UMSocialPlatformErrorType_CheckUrlSchemaFail = 2007,            // schemaurl fail
    UMSocialPlatformErrorType_NotInstall        = 2008,             // 應用未安裝
    UMSocialPlatformErrorType_Cancel            = 2009,             // 取消操作
    UMSocialPlatformErrorType_NotNetWork        = 2010,             // 網絡異常
    UMSocialPlatformErrorType_SourceError       = 2011,             // 第三方錯誤

    UMSocialPlatformErrorType_ProtocolNotOverride = 2013,   // 對應的    UMSocialPlatformProvider的方法沒有實現
    UMSocialPlatformErrorType_NotUsingHttps      = 2014,   // 沒有用https的請求,@see UMSocialGlobal isUsingHttpsWhenShareContent

};

2. 集成SDK問題

用了U-Share v5.x版本,現在加入6.x編譯鏈接報錯

U-Share SDK 5.x和6.x版本不相兼容,v6.x是完全重構的一個版本,升級到6.x時請完全移除v5.x或更早版本。

分享面板很多平臺沒顯示

這是U-Share SDK內部處理,對于模擬器以及在設備上未安裝或不支持授權/分享的平臺應用進行了隱藏,以增強分享體驗及解決審核App時可能被拒的問題。

3. 授權/分享跳轉與回調問題

授權或分享未跳到目標App

可能在工程中配置iOS9以上白名單缺少對應平臺參數,參考配置SSO白名單

failed for URL: ""weibosdk://"" - error:

類似還有微信、QQ等需要打開相應app的都會有這樣的log,在模擬器上可能出現此log,因為沒安裝對應app,此條日志可以忽略。 而如果出現error: "This app is not allowed to query for scheme xxx",說明白名單沒有配置,參考上一個問題。

在目標App授權或分享后未跳轉回原App

未配置URL Types,參考添加URL Types

授權或分享結束后未回調數據

檢查系統回調函數,參考設置系統回調

跳轉收到UIKeyboardWillShow消息

在分享到第三方平臺,如QQ、微信,在某些情況下可能會收到UIKeyboardWillShowNotification消息,U-Share SDK內部并無此消息發出。 發生的情況可能在跳轉到第三方平臺編輯頁面彈出鍵盤后或跳回App后收到,可參考以下兩種方式解決:

  • viewDidDisappear中移除此消息的注冊。
  • 用下列代碼過濾非本控件觸發的消息。
- (void)keyboardWillShowNotification:(NSNotification *)note
{
    if (!myTextField.isFirstResponder) {
        return;
    }
    // code
}

4. 蘋果審核(ATS)及HTTPS

HTTP圖片發送失敗

由于ATS的原因,所有HTTP鏈接在SDK內都被禁止,并提示錯誤告知非https圖片不可分享,請使用https圖片,保證ATS環境下可以順暢的進行分享操作。分享圖片方式如下: 1. 分享圖片僅適用本地圖片加載,如UIImage或NSData數據傳輸。 2. 如需使用網絡圖片,確保URL為HTTPS圖片鏈接,以便于U-Share SDK下載并進行分享,否則會分享失敗。

關于ATS(審核時強制應用支持HTTPS)的問答

問:友盟分享和第三方登錄的SDK,現在要升級HTTPS,是否所有的都需要必須換成最新的sdk才可以?如果不升級而用原來的SDK,可以設置嗎?HTTPS協議與SDK的版本號有沒有關系? 答:這可能是多數開發者的疑惑,ATS的支持需要本地SDK將訪問地址由http調整為https前綴的鏈接才可以,無法設置,所以從U-Share 6.1開始已經支持全部HTTPS訪問。 但目前有一個例外新浪微博的官方SDK還未全部支持ATS,在通過網頁進行授權依然是HTTP請求導致頁面加載失敗,請關注官方U-Share iOS SDK后續會保持跟進。

  • 上線的應用是否有影響
    在AppStore的應用不會有影響,也不會下架。這個變化是針對新提交審核的,也就是說,只要更新應用,就需要支持ATS。

  • 在蘋果執行ATS后友盟分享SDK4.x版和5.x版本分享是否可用
    跟上面的問題一樣,只要在線上的應用均不會受到影響。但如果需要更新應用提交審核,則需要更新SDK到6.1以上版本,即現在全新的U-Share SDK已支持ATS。

  • 微博SDK設置redirectURL為HTTP的,是否影響審核,以及安卓是否需要同步修改
    官方建議修改為前綴是https的redirectURL,并且http和https前綴的redirectURL互相兼容,不會導致不匹配而授權失敗的問題。由于微博后臺的設置無需修改,安卓客戶端也不會有影響。

  • 微信、新浪微博和QQ頭像是HTTP URL
    目前第三方平臺返回的頭像鏈接依然是HTTP地址,不過U-Share SDK已經做了兼容處理,升級到6.1.2以上版本SDK使用,開發者無需擔心獲取頭像因為ATS的原因而失敗。

5. 分享參數問題

網頁類型發送失敗

發送網頁link card形式的分享,需要設置縮略圖,如demo中的示例:

UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"分享標題" descr:@"分享內容描述" thumImage:[UIImage imageNamed:@"icon"]];

其中需要設定thumImage。

6. 分享面板UI

更新6.1后UI編譯錯誤

由于6.1版開始更新了全新的分享面板,所以導入形式也略有改變

  • 導入文件
##import "UMSocialUIManager.h"

改為

##import <UShareUI/UShareUI.h>
  • 回調block
 [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMShareMenuSelectionView *shareSelectionView, UMSocialPlatformType platformType) {

    }];

接口沒變,回調參數調整為

    [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
    }];

分享面板無法彈出

由于 1. 創建Xcode項目會默認添加Main.storyboard作為Main Interface(General - Deployment Info),也就是項目的主Window。 2. 如果沒使用Main.storyboard而又另外在AppDelegate中創建了UIWindow對象,如

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]

如果項目中同時出現Main Interface以及代碼創建UIWindow會導致分享面板無法正常彈出,解決方法是移除其一即可。如果移除了Main.storyboard,需要clean工程后再重新運行。

7. 更新Cocoapods問題

找不到UMengUShare

如果通過Cocoapods集成U-Share SDK(Cocoapods集成)出現更新失敗或查找失敗,如:

Unable to find a pod with name matching 'UMengUShare/Social/Wechat'

原因可能是未更新Cocoapods庫,使用pod update進行更新遠端數據庫,切記不要使用--no-repo-update參數,更新Cocoapods庫時間較長,請耐心等待。

從4.x或5.x版本升級U-Share 6.0報錯library not found for xxx

由于老版本通過cocoapods集成下載接入全量的平臺,包括APOpenSDK、facebook、twitter等。在新版U-Share通過cocoapods集成可以靈活的單選平臺,沒有加入Podfile配置文件的不會下載。 可以到項目 - Build Setting - Other linker flag 查看是否有多余的庫依賴,確認后刪除即可。

cocoapods library not found for -lPods

新版cocoapods1.0鏈接庫名稱為libPods-[target_name].a,不再是libPods.a,刪除libPods.a即可。

報錯"not used in any concrete target"

Cocoapods1.0版本語法問題,需改為

target '工程target名稱' do
    pod ‘cocoapods庫名'
end

以上工程target名稱需改為開發者工程內對應的target名。

通過cocoapods集成Linkedin領英

linkedin會和Cocoapods產生鏈接時沖突

duplicate symbol _OBJC_CLASS_$_PodsDummy_Pods

可將Pod中的PodsDummy_Pods類名修改為_PodsDummy_Podsxx

8. QQ

分享網頁類型失敗source code 5

檢查url中是否含有中文字符,將中文部分進行url轉碼后可正常分享。

9. 微博

微博授權頁顯示sso package error

微博SSO錯誤是項目的bundle id和在微博平臺bundle id設置的不一致導致的,必須保證字符完全匹配。

提示redirect_uri_mismatch

項目中設置的redirectURL和授權Request傳遞的回調地址(WBAuthorizeRequest.redirectURI-微博后臺設置)不一致導致的,必須保證字符完全匹配。 如

[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"3921700954"  appSecret:@"04b48b094faeb16683c32669824ebdad" redirectURL:@"http://sns.whalecloud.com/sina2/callback"];

以上redirectURL必須和微博后臺設置一致。

彈出授權窗口后瞬間消失

兩個可能 1. bundle id不一致導致 2. 檢查info.plist文件里有沒添加加URL Types,在URL Schemes里填上wb+APPKEY

授權后沒有返回應用

檢查info.plist里設置的URL Scheme是否正確,需要是wb+appkey的形式。

未安裝微博客戶端分享音樂、視頻的顯示問題

目前微博分享不支持在未安裝微博客戶端時分享音樂、視頻類型的內容。已安裝客戶端可在微博客戶端編輯頁正常顯示,發送后顯示狀態可參考上面的微博 LinkCard問題。

微博(完整版)webview回調的崩潰

未安裝新浪微博客戶端時會彈出Webview進行登錄和分享,之后會回調至以下函數:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

如果用戶沒有重載此函數的話,會導致微博SDK通過Webview的回調而崩潰。 開發者需重載此方法接受系統回調。

10. 支付寶

支付寶返回“-4”“鑒權失敗”

檢查bundle id是否和支付寶后臺配置的bundle id一致。

后記

本篇主要講述了UShare模塊之UShare常見問題,感興趣的給個贊或者關注~~~

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379

推薦閱讀更多精彩內容