本文中给出开发者集成时遇到的常见问题,我们对问题所属的模块进行了标记,以便更快速的检索。
解决方法:
setFetchProfileBlock:
接口设置的block获取profile-[SPKitExample exampleSetProfile]
方法及调用时机。解决方法
WXOUIModuleResources.bundle
中找到OpenIM-Theme.plist
文件,尝试修改其中的选项并运行观察效果。IMSDK没有控制导航栏,您需要自己定制导航栏,请参考iOS Demo中-[SPKitExample exampleCustomGlobleNavigationBar]
方法。
解决方法:
检查推送证书是否已经上传,生产环境的服务器推送证书必须上传,必须设置导入密码。(必须是p12文件,cer文件不行)
目前OpenIM只支持生产环境的推送,因此客户端必须使用Distribution证书的AdHoc Provision打包,请务必检查是否可以正常获取到DeviceToken
注意,在xcode中使用AdHoc打包运行会弹出如下提示,请确认你打包会弹出:
成功获取到DeviceToken,登录IM成功后,控制台会打印DeviceToken上传成功的Log,请确认是否有该日志
请确认在线消息可以收到后,进入后台。
上述步骤均检查,仍然无法收到APNS推送,请旺旺联系IM后台的开发:不冲。
解决方法:
解决方法:
解决方法:
解决方法:
解决方法:
解决方法:
-[SPKitExample exampleSendCustomMessageWithConversationController]
和-[SPKitExample exampleShowCustomMessageWithConversationController]
方法。分别用于发送和显示自定义消息。SDK中有不少添加监听的接口,如果您添加了监听,但是没有回调到,请检查:
你需要判断YWConversation的class,如果是YWP2PConversation,则可以强制转换指针,从中取出YWPerson对象。例如:
if ([conv isKindOfClass:[YWP2PConversation class]]) { YWPerson *person = [(YWP2PConversation *)conv person]; ... }
现象:
初始化或者调用接口时Crash
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[YWAPI syncGetPrefixOfAppKeys:getError:]: unrecognized selector sent to instance 0x7fbd4bc4e790'
解决方法:
遇到上述提示类似的错误,请检查您的工程设置中, Build Settings
> Lnking
> Other Linker Flags
中是否已经添加-ObjC
选项,并且请注意大小写是否正确。
解决方法
TaeWXSDKForFree.framework
现象:
弹出空白页面并提示或者直接crash,提示无法找到nib文件
Application tried to push a nil view controller on target <WXOUINavigationController: 0x7fcdcac69b90>.
解决方法:
从SDK包中找到WXOpenIMSDKResource.bundle
资源包,将其拖到您的Xcode工程中,确保其能被复制到您App的MainBundle中。
将专属于您的yw1222.jpg
身份图片,添加到您的Xcode工程中,并确保其能被复制到您App的MainBundle中。
解决方法
可能是因为您已经链接了百川平台的TAESDK,该SDK中包含了上述静态库。您只需要将上述冲突的库从您工程的链接列表中去除。
打开会话列表或者聊天页面时crash
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/huanglei/Library/Developer/CoreSimulator/Devices/D9D2B27D-6788-41C9-9A5E-F264D61C56AD/data/Containers/Bundle/Application/821C05D7-8551-4DBE-9332-A0510A015808/WXOpenIMSampleRelease.app> (loaded)' with name 'SessionListViewController''
从SDK包中找到WXOUIModuleResources.bundle
资源包,将其拖到您的Xcode工程中,确保其能被复制到您App的MainBundle中。