IOS 环信3.0升级到最新版本SDK填坑

❤️一、说说当时情况,因为项目上线也比较紧急,然后匆忙拿别人已经简化了的项目集成单聊页面。项目是可以运行起来,环信即时通讯也没有问题,环信集成版本是✅3.0✅版本,然后,当、当、当就提审了,但是后面却隐藏了个大问题。

❤️二、提审之后,发现苹果审核小组那边登录不上去,而且是两次拒绝了,都是在环信登录那里出问题,直接登录失败。然后就开始扒帖子,看到这句话,然后一顿mmp。


IOS 环信3.0升级到最新版本SDK填坑_第1张图片
image.png

❤️三、然后去咨询环信客服是否支持IPV6,下面是结果。不得不吐槽一下,妹的,环信还上市了,上市了,然而还得工单方式提问题,两三个小时不回一句话,说要升级VIP才能建QQ群回答问题,TMD就是变着法坑钱。


image.png

❤️以前集成环境:手动集成的环信3.0
1、下载环信最新官方SDK文件,正式开始升级环信
[环信官网地址]https://www.easemob.com/download/im

IOS 环信3.0升级到最新版本SDK填坑_第2张图片
image.png

❤️因为使用没有实时语音的,所以集成Lite版本就行。
IOS 环信3.0升级到最新版本SDK填坑_第3张图片
image.png

2、环信文件


IOS 环信3.0升级到最新版本SDK填坑_第4张图片
image.png

❤️老版本文件目录


IOS 环信3.0升级到最新版本SDK填坑_第5张图片
image.png

3、新版本SDK文件替换老版本SDK文件


IOS 环信3.0升级到最新版本SDK填坑_第6张图片
image.png

4、cmd+b 编译一下,报错,引用文件变化所致。


image.png

5、更换头文件,cmd+b

//将头文件更换一下
//#import "EMSDK.h"
#import 

6、提示文件找不到,直接将报错的地方改为下面代码


image.png
//现在引入路径都变为HyphenateLite下面,所以提示not found都换到HyphenateLite下面
#import 

7、报错,注释掉,环信历史消息获取,先注释


image.png

8、报错,成功枚举有改变,Fix一下,cmd+b 编译一下,不出意外,就编译成功!但是提交审核,却通不过


image.png

9、提交审核错误信息,就是苹果不允许将模拟器框架x86和i386包含进去


IOS 环信3.0升级到最新版本SDK填坑_第7张图片
image.png

10、将下面代码添加到 Targets > Build Phases > Run Script (❤️没有就直接添加)

//这段代码是脚本语言,因此颜色就是这样的,
//有可能会造成不起作用
//不起作用可以试着删除,重新添加Run Script

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

EXTRACTED_ARCHS=()

for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done

echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"

echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done

11、最后还有一步,那就是 Run script only when installing 勾上。 Run script only when installing,大概意思是在特定环境下才跑脚本。
(1)、说说不勾的情况:不勾选的的时候,App提交是可以通过,但是模拟器和真机都直接报错,说是Xcode 10 升级编译系统问题,但是没有深究。
(2)、勾选的情况:在提交上传App是通过的,并且在本地运行也不会有错误出现。并不是很理解,找个时间再看看这个问题。


IOS 环信3.0升级到最新版本SDK填坑_第8张图片
image.png

12、✅升级结束,项目还有一点,就是环信历史信息得看看。

[国外大牛参考文档]https://www.cnblogs.com/zhaofj/p/6305988.html
[上传失败参考文档]http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/

你可能感兴趣的:(IOS 环信3.0升级到最新版本SDK填坑)