iOS9友盟社會化分享SDK應用的幾個要點

最近自己的項目上需要實現向各大平臺的分享功能,於是選擇友盟社會化分享SDK來實現,其官方文檔寫的非常詳細,但在應用過程中仍然遇到諸多問題,因此將幾個細節但卻關鍵的地方記錄下來。至於完整的實現過程,我覺得官方提供的文檔已經非常詳盡,所以沒必要自己再寫一篇或者demo,所以剛使用的朋友可以按官方文檔的指導完成整個實現。

1.原則:按文檔目錄一步一步來

iOS社會化分享SDK的文檔地址:http://dev.umeng.com/social/ios/operation#1

如果你和我一樣是個新手,那麼還是按照官方文檔目錄一步一步來進行吧,因爲我在向項目集成SDK的過程中,遇到的問題在官方文檔中都給出瞭解決方法,並且其在文檔中位置靠前,只是我略過了這些內容。本想能節省時間,跳躍閱讀,不料南轅北轍,反而花了更多的時間。下圖左側爲官方目錄,建議按照目錄一步一步的進行操作。



2. 錯誤:linker command failed with exit code 1 (use -v to see invocation)

當我在項目中集成友盟SDK之後使用模擬器進行調試並未發現問題,但改爲真機調試卻不能成功編譯,出現:“linker command failed with exit code 1 (use -v to see invocation)”,看紅框範圍內提示:“library 中不包含 bitcode,你需要使其支持bitcode 或者將項目中 bitcode 關閉”,直接關閉 bitcode就可以了。





進入到 PROJECT -> Build Setting -> Build Options -> Enalbe Bitcode = NO .

其實官方文檔中已經在集成SDK步驟之前,“適配iOS9系統 -> 3.應用瘦身(App Thining)”就有寫應當更改此處設置,如下圖:


至於爲什麼模擬器能成功編譯但真機卻不能通過,查了一下,應該是debug版本和release版本對第三發靜態庫設置不一樣吧,具體沒有深入研究,還望懂得朋友指點一下。

相關閱讀:

[1] 蘋果應用瘦身功能介紹

[2] iOS調試錯誤 linker command failed with exit code 1 (use -v to see invocation)


3.友盟分享 無法打開其他應用,提示“您的設備沒有安裝XX”

官方文檔在“適配iOS9系統 -> 2.應用跳轉(SSO等)”部分給出瞭解決方案,即向項目配置文件info.plist添加相應的跳轉白名單,全部內容在:[2.應用跳轉(SSO等)]



4.iPhone5,iPhone4s模擬器調試失敗

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_QQApiAudioObject", referenced from:
      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)
  "_OBJC_CLASS_$_QQApiImageObject", referenced from:
      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)
  "_OBJC_CLASS_$_QQApiInterface", referenced from:
      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)
  "_OBJC_CLASS_$_QQApiNewsObject", referenced from:
      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)
  "_OBJC_CLASS_$_QQApiTextObject", referenced from:
      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)
  "_OBJC_CLASS_$_QQApiVideoObject", referenced from:
      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)
  "_OBJC_CLASS_$_SendMessageToQQReq", referenced from:
      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)
  "_OBJC_CLASS_$_TencentOAuth", referenced from:
      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

錯誤提示:i386框架缺少對象的定義

騰訊開放平臺官方API調用說明[網址]中找到了原因:


iPhone5s之前的手機,即iPhone 5,iPhone 4s 都是i386框架的設備,而騰訊官方去除了對 i386框架的支持,因此項目無法成功編譯。

在官方論壇上查了一下解決辦法,有人說只要真機調試通過即可。由於手上沒有iPhone 5和 iPhone 4s,無法測試真機是否能通過編譯。今天剛把App打包上傳,晚上提交審覈,我會在第一時間更新審覈結果。

------------------------------------------------------------------------------------------------------ 7.9 更新 ----------------------------------------------------------------------------------------------------------------

提交的App通過審覈了,應該不用擔心這個問題,只是提交3.5吋屏幕截屏的時候會麻煩一些。

ps:google 和 stackOverFlow 真是神器,絕大多數問題的答案都能找到,最近藍燈掛了,建議大家自己租個服務器裝ShadowSocks翻牆。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章