初學iOS第一次用簡書寫文章 很慌。
自己遇到的問題 百度很久沒找到 寫出來讓大家參考下 大佬們不要噴我。
背景
因為剛學iOS不久,師傅讓寫學習寫一下友盟分享。說啥賊簡單嘗試寫一下。
都說賊簡單了,當然要在大佬面前表現下了。
我的操作流程
首先當然是找到友盟分享文檔 友盟集成文檔
為了不讓大家在浪費時間去看我就在這里寫步驟了
-
這里下載SDK
image.png
這個時候把我們下載的SDK直接手動拖過去,也就是手動集成的時候
然后一定要把Copy items if needed 這個選項勾上 會把這個SDK復制到項目中 不然什么時候電腦里的SDK刪掉就GG了。
image.png -
添加配置項
image.png -
添加白名單
什么是白名單呢?只有白名單上的應用才能給你發送消息,只要將文檔中的白名單復制到info.plist ->source code 中就可以了。注意復制過去時的格式不要錯了<key/>LSApplicationQueriesSchemes</key> <array>白名單</array>
image.png -
配置URL Scheme
image.png
到這里就不多寫了 官方文檔寫的還蠻詳細的 因為到這里問題就出現了
問題1:調用不到友盟的庫
開始把SDK放入的項目的時候出現了一個問題 導致初始化的時候調用不到庫文件
一般來說將SDK copy到項目中SDK中的 .framework文件就會和項目建立連接
但是不知道是電腦問題還是Xcode的問題(解決問題后重新下載了Xcode 發現是Xcode的問題)
我的SDK拖到項目中跟沒有一樣 沒有建立連接的話 我們在項目中是調用不到這個庫的
聰明的我一樣開始就注意到了這個地方,于是我美滋滋的用添加依賴庫的方法把SDK里的幾個庫都手動導了一遍!然而并沒有卵用,因為庫還是沒有和項目建立連接,怎么看庫有沒有和項目建立連接呢?
如果項目中遇到不能調用到已經放到項目中的庫的時候 可以到這里查看一下 庫是不是有在這里。如果沒有的話是調用不到的。
那么遇到這種情況的話要怎么解決呢?簡單到令人發指,直接拖過去就完了。這樣就能正常完成初始化和分享功能的編寫了。
問題2:友盟分享面板不能彈出
在寫分享功能的時候遇到一個很嚴重的邏輯錯誤在這里也順便說一下。
在代碼沒有錯誤的情況下分享面板沒有彈出來,因為習慣每次寫項目的時候都會先把appDelegate里的窗口寫上 然后這里就和Main.stroyBoard沖突了。只要把這段代碼注釋掉就可以了。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//這里和Main.storyboard沖突了
// self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
// self.window.backgroundColor = [UIColor whiteColor];
// UINavigationController *view = [[UINavigationController alloc] initWithRootViewController:[[ViewController alloc] init]];
// self.window.rootViewController = view;
// [self.window makeKeyWindow];
/*打開調試日志*/
[[UMSocialManager defaultManager]openLog:YES];
/*設置友盟sdk*/
[[UMSocialManager defaultManager]setUmSocialAppkey:@"5861e5daf5ade41326001eab"];
[self confitUShareSettings];
[self configUSharePlatforms];
return YES;
}
問題3:微博分享網頁不能登錄
因為模擬器不能安裝微信和QQ 模擬器只能顯示微博 如果要測試能不能分享成功的時候點擊微博會自動跳轉到微博登錄界面 在輸入賬號和密碼不能登錄微博的話 并且出現這樣的錯誤
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
新特性要求App內訪問網絡請求,要采用 HTTPS 協議。
找到以下解決辦法:
1、在Info.plist中添加 NSAppTransportSecurity 類型 Dictionary ;
2、在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 類型Boolean ,值設為 YES;
最終真機顯示的效果是這樣的
大佬太多就不放代碼讓大佬嘲笑了。