初学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拖到项目中跟没有一样 没有建立连接的话 我们在项目中是调用不到这个库的
image.png
聪明的我一样开始就注意到了这个地方,于是我美滋滋的用添加依赖库的方法把SDK里的几个库都手动导了一遍!然而并没有卵用,因为库还是没有和项目建立连接,怎么看库有没有和项目建立连接呢?
如果项目中遇到不能调用到已经放到项目中的库的时候 可以到这里查看一下 库是不是有在这里。如果没有的话是调用不到的。
image.png
那么遇到这种情况的话要怎么解决呢?简单到令人发指,直接拖过去就完了。这样就能正常完成初始化和分享功能的编写了。
image.png
问题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;
image.png
最终真机显示的效果是这样的
image.png
大佬太多就不放代码让大佬嘲笑了。
网友评论