iOS技术问题

1.问题:运行IOS_5.4.0r及以上 demo编译报错

原因:Demo是用cocoapods管理第三方库的,运行demo如果出现和第三方库相关的错误,建议先用cocoapods更新一下。打开终端,cd命令打开demo文件,然后输入pod update命令,更新完成即可。
 

2.使用Xcode9导入sdk需注意

使用 Xcode9 开发的开发者,需要注意一下,新的编译器发生了变化,不会主动把静态库编译进去,必须手动导入。我们的SDK包含静态库YTX_iOS_Full_SDK_v5.4.0r.a,所以导入SDK后,需要在如下位置手动导入该静态库
 

3. 重复接收离线消息

问题描述:登录成功后接收的离线消息,登出重新登录后又收到重复的消息,并且没有卸载重装或更换过设备。
分析:如果是卸载重装或更换设备,是因为消息版本号上报导致的,我们的消息版本号是10条才上报的。
原因:该问题是由于开发者调用NSUserDefaults standardUserDefaults清了缓存,这里有包含我们SDK的缓存信息,由于开发者每次在登出时都清理了缓存,导致出现重复拉取消息的问题。开发者可以判断一下,hasPrefix 自己的appid,就是SDK的缓存信息了,不要清理SDK缓存信息。
 

4. iOS离线推送说明

iOS离线推送的实现,需要开发者先在控制台上传推送证书,然后代码实现注册apns和上传devicetoken,我们会把消息推送给苹果服务器,苹果服务器将对应消息推送到相应设备上。
推送文本消息长度超出256个字节,就不会显示消息内容了,而是显示"您有一条新消息"。一般一个汉字占4个字节,一个英文字符占1个字节。也就是说,推送的消息如果都是汉字,超过64个就会显示成"您有一条新消息";推送英文消息,超过256个就会显示成"您有一条新消息"。
目前5.3.2及以上版本SDK新增发送消息自定义推送内容apsAlert字段,开发者可以设置该参数,实现自定义推送内容。如果是调用服务器推送接口,可以通过指令消息实现,设置extOpts字段里的apsalert参数就可以的
 

5. 调用服务器推送接口走iOS离线推送时昵称显示说明

1.推送给个人:调用设置个人信息接口设置了nickName,推送时就会显示这个昵称,不设置就显示账号;
2.推送给群组:sender账号在该群组中设置群名片信息时,如果设置了在群组里显示的昵称display,推送时就会显示这个昵称;如果没有设置这个昵称,就会去找调用设置个人信息接口设置的nickName。这两个字段都没有设置,就会显示账号。
 

6. app上架App Store报错90085

错误:ERROR ITMS-90046 /90085:"Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value '*' for key 'com.apple.
原因 : 生成的API 分析文件过大,系统不能在提交前,完成API使用信息的校验。
解决办法: command+Shift + K clean 下 Xcode 缓存,重新打包上传 即可。