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

本文介绍了解决iOS应用在升级个推SDK过程中遇到的问题,并针对iPhoneX的适配进行了详细说明,包括如何平滑地替换旧版静态库文件为新版.framework格式的库文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

上篇写了升级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中相应库文件复制到.a文件相应的位置,方便管理。我使用的文件如下图:
选择noidfa文件
引入后在项目中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];
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jarlen John

谢谢你给我一杯咖啡的温暖

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值