原文链接:
iOS中5+SDK项目升级个推静态库.a为.framework
说明
上篇写了升级5+SDK的文章:
iOS离线打包项目升级5+SDK
本文属于上文补充,因为要适配iPhone X,原谅我穷买不起真机,只能用模拟机调试,在调试过程中发现一个个推致命的bug:
malloc: error for object 0x170242490: Invalid pointer dequeued from free list set a breakpoint in malloc_error_break to debug
1
查资料后发现,是个推在模拟器上运行的产生的错误,我使用的是1.6.3-SDK。他们已经在最新SDK中修改了这个错误。
问题:个推静态库文件导致模拟机崩溃
解决办法:升级个推静态库文件为最新
新问题:
个推老版本使用的都是.a格式的静态库文件,而从官网下载下来的最新SDK使用的是.framework格式。如何平滑替换?
开工
(1)备份项目(这是我开始大改动必须的工作)
(2)删除5+SDK中Feature-iOS中指定的静态库文件
liblibPush.a
libGeTuiPush.a
libGeTuiSdk.a
libGtExtensionSdk
(3)将最新SDK中相应库文件复制到.a文件相应的位置,方便管理。我使用的文件如下图:
选择noidfa文件
引入后在项目中Build Phase -> Link Binary With Libraries引入framework库到项目中
(4)添加系统依赖库
根据个推官网添加系统依赖库,如图所示:
添加系统依赖库
(5)5+SDK中LinkerFlags不变
(6)删除原项目中GeTuiSdk.h文件,导入头文件:
import <GTSDK/GeTuiSdk.h>
1
(7)将插件部分用到的方法名更换为最新即可
-
(void) bindAlias:(PGMethod )cmds {
NSString alias = [cmds.arguments objectAtIndex:1];
[GeTuiSdk bindAlias:alias andSequenceNum:@"seq-1"];
} -
(void) unbindAlias:(PGMethod )cmds {
NSString alias = [cmds.arguments objectAtIndex:1];
[GeTuiSdk clearAllNotificationForNotificationBar];
[GeTuiSdk unbindAlias:alias andSequenceNum:@"seq-1" andIsSelf:YES];
}
0 个评论
要回复文章请先登录或注册