iOS 环信SDK 的发布处理。

@hanq  2017年11月10日 14:10

RT:如果不是特别赶时间,特别想探究环信的技术与客服水平,不是特别懒,无其他选型的条件下,请不要轻易使用环信SDK,谨记!

闲话少说,当前使用的是Xcode9.1,最低适配iOS9.0系统,使用环信CEC iOS SDKV1.1.5,集成了环信CS客服系统,并经过一通删除功能,屏蔽入口,剔除环信冲突第三方库,环信SDK报错异常废弃方法等等后,模拟器可以正常运行环信的HelpDeskUI了,上述为大前提。

如果你做好上述的工作后,顺手切换为Generic iOS Device,然后你又十分高兴的去Product菜单点击了Archive,经过不是那么漫长又无聊的等待,点击Archives下的Upload to App Store,对着屏幕百般膜拜之后,不出意外,你会收到大约4+错误提示,而这个完美解决的办法,环信的官方文档是绝对绝对不会对你提及的,那么恭喜你,下面的教程可能让你在这三千世界中找到一丝丝光明。

1.合并.a文件,只留下AppStore允许的CPU架构支持

环信提供了三个framework,每一个framework都需要剔除.a文件冗余的CPU架构支持,需要依次执行(这里假定你可以找到每个framework的目录,并且熟悉Terminal操作,并在操作之前已经备份过所有文件):

cd到HelpDesk.framework同级目录

lipo HelpDesk.framework/HelpDesk -remove x86_64 -output HelpDesk

mv HelpDesk HelpDesk.framework/HelpDesk

lipo -info HelpDesk.framework/HelpDesk

cd到HelpDeskLite.framework同级目录

lipo HelpDeskLite.framework/HelpDeskLite -remove x86_64 -output

HelpDeskLite mv HelpDeskLite HelpDeskLite.framework/HelpDeskLite lipo

-info HelpDeskLite.framework/HelpDeskLite

cd到HyphenateLite.framework同级目录

lipo HyphenateLite.framework/HyphenateLite -remove x86_64 -remove i386

-output HyphenateLite mv HyphenateLite HyphenateLite.framework/HyphenateLite lipo -info

HyphenateLite.framework/HyphenateLite

2.清理bundle
在Xcode中找到HelpDeskUIResource.bundle,展开文件列表找到Info.plist,找到Executable file属性,点击删除减号

做完上述步骤后在我的项目中重新Archives并Upload,已经可以上传到iTunes去TestFlight分发测试了。

附:
Emoji表情问题:(怀着万分敬仰与期待的心情写下与环信客服沟通后了解到的Emoji表情功能相关代码)
以环信官方文档中提及的点,集成后不能正常的显示Emoji表情,需要在AppDelegate下的

"- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions

的方法内环信SDK初始化下方增加代码:
//添加自定义小表情

[[HDEmotionEscape sharedInstance] setEaseEmotionEscapePattern:@"\[1]{1,3}\]"];
[[HDEmotionEscape sharedInstance] setEaseEmotionEscapeDictionary:[HDConvertToCommonEmoticonsHelper
emotionsDictionary]];

就可以解决表情不显示的问题。ORZ~


  1. \[\

添加新评论