z***@163.com
z***@163.com
  • 发布:2017-12-25 10:21
  • 更新:2017-12-25 10:21
  • 阅读:2201

iOS中个推SDK升级

分类:5+ SDK

原文链接:
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 关注 分享

要回复文章请先登录注册