上周因为要搞活动预热,然后添加了很多功能,也出现了一些之前没有遇到过的报错信息,特此记录一下。
1.Umeng 分享
iOS 社会化组件SDK v6.4.5
iOS 10.3
使用当前版本的Umeng分享测试时出现了一个问题:分享的图片使用的Umeng默认图片而不是我进行分享的图片:
Umeng分享使用的默认图片既然出现了不同于预期的显示,就开始进行排查:
① 是不是网络的问题
在手机上开启进行模拟很差的网络环境:
模拟很差的网络环境这时候在其他应用中进行微信分享时,会发现:
微信分享
网络很差的环境下,图片仍然存在只是前面出现了等待发送的指令图标。
②是不是代码写错了
NSString *webUrl = [NSString stringWithFormat:@"%@/rest/golfball/golfballRonde/rondeDetailsById?rondaId=%@",URL_Out,self.rondaId];
NSString *title = [NSString stringWithFormat:@"%@",_model.courtName];
NSString *thumbURL = [NSString stringWithFormat:@"%@%@",ImageUrl_Out,_model.rondaImg];
UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:title descr:@"描述" thumImage:thumbURL];
shareObject.webpageUrl = webUrl;
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObjectWithMediaObject:shareObject];
[[UMSocialManager defaultManager] shareToPlatform:platformType
messageObject:messageObject
currentViewController:self
completion:^(id result, NSError *error) {
if (error) {
NSLog(@"error ------------%@",error.localizedDescription);
} else {
}
}];
跟着Umeng的官方文档写的代码不用怀疑出错性。
这时候,先看看应用中查看Umeng返回给我们的打印信息:
Umeng返回的打印信息
提示我们是由于错误的URL和URL下载失败,而且特别提示:
你必须为新的AppStore政策提供https URL请求
知道是Umeng自身的配置问题后,查看相应的代码发现:Umeng 的isUsingHttpsWhenShareContent属性是用来配置https请求,并且默认开启的状态:
/**
* 当前网络请求是否用https
* @discuss 针对ios9系统以后强制使用https的网络请求,针对分享的网络图片都必须是https的网络图片(此为苹果官方要求)
* @discuss 该函数默认开启https请求
* @discuss 如果开启ios9的请求后,自动会过滤ios的http的请求,并返回错误。
*
*/
@property(atomic,readwrite,assign)BOOL isUsingHttpsWhenShareContent;
方法一:如果要使用http请求图片地址,手动将其关闭:
[UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO;
方法二:更改图片分享的格式
Umeng可以进行分享的图片格式为:
thumImage 缩略图(UIImage或者NSData类型,或者image_url)
所以在传图片的时候能直接装换成NSData或者UIImage的格式
NSString *thumbURL = [[NSBundle mainBundle] pathForResource:@"ad1.jpg" ofType:@""];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:thumbURL]];
但是一定要注意的是:
转换成NSData的过程是同步的,如果图片数据过大,会造成不必要的卡顿。
2.二维码分享
现在说的二维码不是在一个html分享页面中的,而是直接将后台生成的二维码图片进行分享:
二维码分享图片最开始为400x400的像素,在安卓手机中进行分享的时候可以识别(微信、QQ等),但是在iPhone的设备上使用微信等无法识别。
其实依靠于网上的资料以及自己的尝试而言:
① 转换成.png格式的图片
②400x400像素的二维码需要装换成其他大小(如160x160或500x500等)。网上说是由于微信等对苹果导航栏的适配问题需要将二维码放大,但是实际上放大或缩小之后都是没问题的
3.Xcode突然报错
resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1
Xcode突然出现上面的报错,并不一定在新下载的Xcode版本时。查找了网络上的一些问题解决方法:
① 证书过期问题
进入Xcode账号以及钥匙串中确实有一个过期的证书,删除之后仍然报错
② 在工程目录下执行 xattr -rc .
在终端执行该条命令的时候,会返回对一堆第三方框架的没有权限:
这个应该是在对于项目中之前残余数据的修改删除,但是并不会作用于第三方框架,所以应该是项目中的残留数据的问题,不太确定是不是与电脑的剩余内存有关。
最后在进入项目的时候再执行一次clear,会发现报错已经没有了,成功运行。
stackoverflow参考
项目中的很多东西都在更新,所以还是隔一段时间要查看最新的版本。
网友评论