您的位置:首页 > 移动开发 > IOS开发

iOS中5+SDK项目升级个推静态库.a为.framework

2017-12-25 10:08 603 查看

说明

上篇写了升级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.6.3-SDK。他们已经在最新SDK中修改了这个错误。

问题:个推静态库文件导致模拟机崩溃

解决办法:升级个推静态库文件为最新

新问题:

个推老版本使用的都是.a格式的静态库文件,而从官网下载下来的最新SDK使用的是.framework格式。如何平滑替换?

开工

(1)备份项目(这是我开始大改动必须的工作)

(2)删除5+SDK中Feature-iOS中指定的静态库文件

liblibPush.a

libGeTuiPush.a

libGeTuiSdk.a

libGtExtensionSdk

(3)将最新SDK中相应库文件复制到.
4000
a文件相应的位置,方便管理。我使用的文件如下图:



引入后在项目中Build Phase -> Link Binary With Libraries引入framework库到项目中

(4)添加系统依赖库

根据个推官网添加系统依赖库,如图所示:



(5)5+SDK中LinkerFlags不变

(6)删除原项目中GeTuiSdk.h文件,导入头文件:

#import <GTSDK/GeTuiSdk.h>


(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];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: