神剑若水哥:2015年老项目抢救

2021-02-22  本文已影响0人  神剑若水哥

1. 项目大致说明:

1.1今天接到通知,说之前的项目要上线,看svn 上传记录是2015年的。checkout 以后发现是6年前的项目。坑的是:.a 文件全部缺了(淡灰色)。猜测是svn 提交的时候忘记了 提交 .a 文件,由于时间太久了,找不到当时的开发,只能硬着头皮去升级了。如图:

image

初步分析,应该是缺少了:1.激光推送,2.微信分享 3.友盟分享,统计,用户反馈相关的库吧

1.2.解决办法,如果能在官网,下载在对应的库,就去下载一下,补充一下.a 文件。如果官网不提供下载,没办法只能去自己集成最新的了。

1.3 项目本身采用的是手动集成的工具,升级起来比较麻烦,为了避免后面人遇到类似的问题,我们采取pod 工具集成。

2添加pod 集成工具

2.1 在项目FzbxApp.xcodeproj 文件同级目录创建一个文件:Podfile

image

2.2在Podfile 文件中写入

platform :ios, '8.0'
#use_frameworks!个别需要用到它,比如reactiveCocoa

def pods
    # pod 'JPush', '3.2.6'
end

target 'FzbxApp' do
    pods
end

2.3 用命令打开到 Podfile 所在目录,执行 pod install 会生成对应的文件

image

2 升级JPush

1.去JPush 官网查看了一下,没有提供历史库的下载地址,不能不说一句坑

image

2.在终端输入:pod search JPush 查看JPUsh在git 升级历史,发现是有1.8.3 的。还算好,那我们不升级最新的SDK,直接用1.8.3 试一试

image

3.在pod 文件中 加入JPush 1.8.3,执行pod install

image

4. 删除手动集成的1.8.3 的库

image

运行以后貌似没有报错,还好

3 升级友盟

3.1友盟最新框架的说明

去官网看了一下,移动统计的SDK,最新的是V7.2.5 ,而且7.2.4 以下就不再提供集成方案了。支持最早是V5.5.0,没办法只能集成最新的友盟库了,已经找不到4.2.1(2018年3月13日)的库文件。表示很无赖。

分享的SDK 也是类似的。

当前日期2021年2月18日

image image image
image

3.2.友盟分享修改前大致情况

升级以前的情况

image

3 .3集成友盟- 微信分享和支付

https://developer.umeng.com/docs/128606/detail/193653

3.3.1友盟首先需要集成基础组件

image

pod 上搜索了一下,UMCommon最新版本为7.2.5


image image

一般我是喜欢在三方库后面加上版本号,方便后来人吧。毕竟被别人坑过,滋味不好受。还是不要坑别人了吧。

image

然后执行:pod install 。基础组件已经集成OK,如图

image

3.3.2 友盟集成微信分享和支付

集成分享的基础UI(项目跑不起来,所以不知道到底是不是需要,安装为上策) 和 微信分享(完整版的)

image

我猜想 的是:UM 微信包安装完成以后发现有两个包:一个精简版的:只有微信分享功能的。一个是支付功能的。也就是友盟现在集成微信包含了微信的支付和分享。如下图:

image

那我们可以把项目原来的微信分享和支付文件都删掉了。不用我们分别集成微信分享和支付了。把如下的微信WeChatSDK_1.4.1相关的文件夹全部删除即可。 真的是这样吗?

千万别着急删除。

千万别着急删除。

千万别着急删除。

我们还是来看一下项目没有改动时候的UM集成文件

image

所以,事情并不是我们猜想的的那样。友盟集成的完整版的微信SDK 也是不带支付宝功能。没办法啊,只能再去查友盟文档

https://developer.umeng.com/docs/128606/detail/129467?spm=a311a.7996332.0.0.74793080KI4xRu

image

这是太坑了吗?先用用pod 集成微信分享,大致意思,然后到微信官网去下载对应个微信SDK去替换微信.a 和相关文件。那我还用什么pod啊?

我个人觉得,如果微信分享和支付相关的,还是不使用友盟了吧,直接集成微信的官方SDK

说干就干,删除友盟的微信分享

3.3.3删除友盟的微信分享

image

执行

pod update

3.4 直接集成微信分享和微信支付

3.4.1 导入最新的SDK 为1.8.7.1(包含支付功能的)

image

3.4.2 写入注册程序的id

image

3.4.3 要在程序 的info.plist 文件中 加入weixin 和 weixinULAPI

image

3.4.4 要在程序中ohter flag 中加入:-ObjC 和 -all_load

image

3.4.5 最新的微信分享是需要UniverLink 通用链接。详细步骤就不说了,大家可以看我的另一篇文章:

https://www.jianshu.com/p/8275c7d8ca63(iOS开发微信登录的通用链接Univerasl Link的配置)

3.4.6 其他还要一些方法过时了,会报错,大家注意修改一下就行了:可以看我的另一篇文章:https://www.jianshu.com/p/24603c3c4b05

4 升级友盟的UMFeedBack

UMFeedBack 这个SDK,去友盟官网找了一下,没有提供下载了。打了客服电话,友盟给的回复是:他们的这个SDK 已经下架了,不再提供了。这边和产品沟通了,暂时可以去掉这个功能。下面是和友盟工单的截图:

image

5 升级支付宝SDK

这个比较简单

导入支付宝

image

如果微信,支付宝都报错,Undefined symbols for architecture arm64: refer XXX.o 文件的错误,或者 ld: library not found for -lPods

解决办法:可能是Ohter link flag 少了 $(inherited) ,添加上这个就行了

上一篇下一篇

猜你喜欢

热点阅读