美文网首页
神剑若水哥:2015年老项目抢救

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

作者: 神剑若水哥 | 来源:发表于2021-02-22 10:36 被阅读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) ,添加上这个就行了

    相关文章

      网友评论

          本文标题:神剑若水哥:2015年老项目抢救

          本文链接:https://www.haomeiwen.com/subject/jjdhfltx.html