一、 Xcode老版本的问题
Xcode8已经不提供ios7的sdk以及iphone4s设备的选取,但是由于项目的需要得继续适配低版本,这样工程从Xcode8版本转旧版本调试iphone4s时,xib文件会出现如下问题
xib_error.png
解决方法:
右击xib文件 --> Open As --> Source Code
删除<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>即可
二、 极光推送版本更新问题
-
首先开启推送设置
notification_Setting.png
- 新版本更新后,(Alias)别名和(Tags)的设置
ios10更新后,最新极sdk的api也发生了改变,具体查看官方文档
项目换上最新sdk后,发现推送不上,后台打印如下
"app not registed, give up set tag:xxx alias:xxx"
这样是因为网速较慢时,推送还未注册便调用了设置Tags和Alias的方法,可通过对极光推送的添加监听后调用设置Tags和Alias的方法,代码如下:
NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self
selector:@selector(setHgAlias)
name:kJPFNetworkDidSetupNotification
object:nil];
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
NSMutableSet *set = [NSMutableSet set];
[set addObject:@"test"];
NSString *alias = @"12345678";
[JPUSHService setTags:set alias:alias fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
NSLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, iTags, iAlias);
}];
}
3)ios10通知代理方法
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
NSDictionary *userInfo = notification.request.content.userInfo;
[JPUSHService handleRemoteNotification:userInfo];
NSLog(@"%@",userInfo);
if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
//自定义声效处理
[self showMessageSound];
}
}
网友评论