美胸汇APP_ios
2021-07-01 22:46:02 1 举报
AI智能生成
项目架构
作者其他创作
大纲/内容
原提议设计方案种类
脚本组件化构建者协助解决
预估完成耗时时间
如果更新库顺利的话..大概一天半即可.解决specs 索引库问题.既可彻底解决所有引发的问题
疏通整个脚本组件化管理的脉络..熟悉变更库的操作和命令原理.后续能够继续维护和开发;
不影响后续项目的进度和开发迭代;
优点: 高效 快捷 可以兼容任何开发水平代码风格 等开发
缺点: 对开发人员要求高 需要 cocopods 私有库组件化精通 脚本熟练操作ruby脚本语言
疏通整个脚本组件化管理的脉络..熟悉变更库的操作和命令原理.后续能够继续维护和开发;
不影响后续项目的进度和开发迭代;
优点: 高效 快捷 可以兼容任何开发水平代码风格 等开发
缺点: 对开发人员要求高 需要 cocopods 私有库组件化精通 脚本熟练操作ruby脚本语言
方案解决内容
1. 先解决cocopods 索引库 和本地库的路径版本 标签对比
2.解决每个组件库的第三方SDK正常更新和跌代 版本限制
3.解决每个组件 update 和 release 脚本命令操作正常运行
4.解决每个组件release 到主工程OK
5.删除本地组件关联--彻底解决主工程目录下的本地组件牵引路径关联,恢复正常release 代码提交
2.解决每个组件库的第三方SDK正常更新和跌代 版本限制
3.解决每个组件 update 和 release 脚本命令操作正常运行
4.解决每个组件release 到主工程OK
5.删除本地组件关联--彻底解决主工程目录下的本地组件牵引路径关联,恢复正常release 代码提交
项目复杂度
中等
解决方法
原脚本组件化iOS组长协助解决cocopods 索引库引起的第三方库 和 组件路径错误..导致的第三方库无法升级和正常运行 导致开发 打包的问题
项目干掉组件化全体工程合并组件.合并为常用MVC或者MVVM 架构模式项目
预估完成耗时时间
1.该方法需要 重新建立根项目: 仿照原来项目架构模式进行复制代码
2.比较难点就是 每个模块代码需要去看和验证 相当于50% 重构 和 验证功能逻辑
3.之前修改的SDK第三方 通过打包成私有库…不知道改了第三方SDK 什么业务和内容…涉及到的功能可能会有影响或者 覆盖掉…造成不知道的内容影响
4.预期先搭建根项目--> 拷贝项目每个基础组件(因为部分组件或者代码模块时间久远跨度比较大,部分组件或许不能使用 或者方法早已经废弃! 新组建的项目用的都最新SDK进行接入)--->验证每个模块的功能--->运行测试--->打包验证
5.目前由于老项目架构设计模式混乱 有MVVM MVC mvp 数据库也有好几种造成了 业务耦合错综复杂的代码太多..所以改动搬迁代码.还要额外需要查看逻辑改工作比较耗时费力
优点:初中高级都能快速上手
缺点: 开发协调难 后续增加项目成员一但多了..代码耦合多.代码包体积很大 相互兼容关联大 容易代码冲突 需要所有开发人员水平保持一致
2.比较难点就是 每个模块代码需要去看和验证 相当于50% 重构 和 验证功能逻辑
3.之前修改的SDK第三方 通过打包成私有库…不知道改了第三方SDK 什么业务和内容…涉及到的功能可能会有影响或者 覆盖掉…造成不知道的内容影响
4.预期先搭建根项目--> 拷贝项目每个基础组件(因为部分组件或者代码模块时间久远跨度比较大,部分组件或许不能使用 或者方法早已经废弃! 新组建的项目用的都最新SDK进行接入)--->验证每个模块的功能--->运行测试--->打包验证
5.目前由于老项目架构设计模式混乱 有MVVM MVC mvp 数据库也有好几种造成了 业务耦合错综复杂的代码太多..所以改动搬迁代码.还要额外需要查看逻辑改工作比较耗时费力
优点:初中高级都能快速上手
缺点: 开发协调难 后续增加项目成员一但多了..代码耦合多.代码包体积很大 相互兼容关联大 容易代码冲突 需要所有开发人员水平保持一致
方案解决内容
1.查找无用的项目组库删除,并除掉无用相关代的代码 和 引用头文件 (耗时费力)
2.每个组件都要一一对应验证是否使用的有效代码块
3.主工程合并完所有组件代码…尝试正常运行和打包
2.每个组件都要一一对应验证是否使用的有效代码块
3.主工程合并完所有组件代码…尝试正常运行和打包
项目复杂度
复杂且有点难度
解决方法
1.删除所有引用组件
2.每个通用组件项目合并到主工程里面
3.所有组件索引库路径进行整改
2.每个通用组件项目合并到主工程里面
3.所有组件索引库路径进行整改
iOS自行解决
预估完成耗时时间
大概五-6天即可以达到设备组件能正常集成第三方库, 能正常在该组件开发, 上传代码到该组件远程仓库, 多人开发同步代码;
但不保证以后会不会继续出现出现问题;没有根本性解决:
但不保证以后会不会继续出现出现问题;没有根本性解决:
方案解决内容
1.翻墙下载国外最新的cocopods库, 解决下载过程中下载失败, 下载超时问题, 远程cocopods和本地cocopods索引bug.
2.远程组件通过cocopods更新到本地索引库, 处理本地索引冲突问题, 代码缺失方法找不到等问题.
3代码提交远程, 处理和远程仓库冲突问题
2.远程组件通过cocopods更新到本地索引库, 处理本地索引冲突问题, 代码缺失方法找不到等问题.
3代码提交远程, 处理和远程仓库冲突问题
项目复杂度
中等
解决方法
1.解决cocopods升级问题.
2.更新ocopods本地库.
3.把远程组件更新到本地索引库.
4.本地索引库和远程组件同步关联.
5正常提交组件代码到远程
2.更新ocopods本地库.
3.把远程组件更新到本地索引库.
4.本地索引库和远程组件同步关联.
5正常提交组件代码到远程
原组件配置中心
主工程组件-MeiXiongHui
全局主工程主项目工程组-业务版块中心
组件-BBCLoveSharing
爱分享版块业务核心组件
组件-BBCMall
商城板块业务核心组件
组件-BBCBlue
智能蓝牙设备业务核心组件
组件使用注意事项
组件模块开发代码需要全部独立每个模.运行开发...代码进入每个组件的
Development Pods 目录下开发功能
如果新建xib 文件需要把 xib文件拖动到Resources 文件中 通过show in Finder 进入根目录查看是否存在
组件-BBCSpecs-索引目录表 -cocopods全局配置
组件-基于第三方SDK封装的私有库组件中心
组件-BBCCoreData
数据库
组件-BBCFMDB
缓存
组件-BBCChartKit
折线图
组件-BBCMapKit
地图
组件-BBCPhotoBrowser
图片
组件-BBCCalendar
日历
组件-BBCAd
广告轮播图
组件-BBCHttpTool
网络请求
组件-BBCPlayer
视频播放
组件-BBCJPVideoPlayer
旧(视频播放框架)
全局分类自定义组件
组件-ZWUIKit
组件-自定义私有库组件中心
组件-BBCBreastTool
旧一代胸膜工具组件
组件-BBCMediator
全局消息转发组件
组件- BBCPageTool
页码工具组件
组件-BBCCommunity
全局未知组件
组件-BBCIM
IM模块组件
组件-BBCCustomerServiceIM
IM 客服模块
组件-BBCGuidePage
开机启动页广告屏组件
组件-BBCMessage
消息内容IM 组件
组件-BBCDiscover
发现内容组件
组件-BBCClub
俱乐部组件
组件-BBCKissXML
未知组件
组件-BBCQuesAnswer
旧资讯问题组件
组件-BBCHezi
幸运盒子SDK组件
组件-BBCPerson
旧个人中心组件
组件-BBCLogin
登录模块组件
组件-BBCinfo
首页咨询板块内容
组件-全局基础集成组件
组件-BBCBase
全局基类(VC model View)
组件-BBCConfig
项目全局属性 名称等定义组件
组件-BBCMVVM
项目全局架构MVVM
组件-BBCCategory
全局分类组件
组件-BBCCommon
项目全局宏定义组件
组件-BBCMediatorModule
全局路由跳转组件
组件-BBCCellModule
全局自定义Cell 封装的组件
组件-cocopods 集成的第三方SDK
类似网络AFN Mansory YYImage等第三方库
旧的SDK打包上线流程方式
打包命令
更新组件命令
sh update.sh
提交上线命令
sh release.sh
1)同步代码,改版本号
2)finder中到BeautifulBreastClub目录,在AutoPacking文件夹中打开autopacking.sh修改更新说明,改好后保存关闭
3)cd到AutoPacking目录
4)sh autopacking.sh执行脚本
5)根据实际情况选择选项
2)finder中到BeautifulBreastClub目录,在AutoPacking文件夹中打开autopacking.sh修改更新说明,改好后保存关闭
3)cd到AutoPacking目录
4)sh autopacking.sh执行脚本
5)根据实际情况选择选项
项目架构
项目架构模块_首页
根控制器
BBCNewHomeVC
项目架构模块_爱分享模块
根控制器
BBCLoveSharingHomeVC
项目架构模块_商城模块
根控制器
BBCMallListVC
项目架构模块_我的模块
根控制器
BBCPersonCenterVC
项目架构模块_智能胸膜模块
蓝牙模块核心功能
设备管理中心Manager
第一代
BBCPleuraDeviceModeOneType
单利
BBCPleuraManager
第二代
BBCPleuraDeviceModeTwoType
单利
BBCPleuraNewManager
第三代(暂时隐藏不用)
BBCPleuraDeviceModeThreeType
单利
DeviceManager
服务中心
BBCPleuraNewService
网络服务
根控制器
BBCNewDeviceViewController
项目私有库组件(PrivateSpecs)
所有的组件都在改目录下开发或者修改
修改文件
podfile
交接文件
商城
商品分类:
1. 商品分类 -> BBCClassificationVC
2.刷选界面 -> BBCRighrScreeingVC
3.商品分类搜索 -> BBCCGoodsSearchVC
店铺
1.店铺推荐 -> BBCStorerecommendVC ->BBCClassrecommendVC
2.店铺首页 -> BBCShoppageVC -> BBCShopListVC
3.店铺商品搜索 -> BBCCGoodsSearchVC
4店铺详情 -> BBCShopDetailsVC
个人中心 收藏界面 (商品和店铺收藏暂时没上)
收货地址
1.新建地址 ->BBCCAddNewAddressVC.h
评价物流
1.评价详情 -> BBCCGoodsEvaluateVC.h
2.物流信息 - > BBClogisticsinformationVC.h
商品分类:
1. 商品分类 -> BBCClassificationVC
2.刷选界面 -> BBCRighrScreeingVC
3.商品分类搜索 -> BBCCGoodsSearchVC
店铺
1.店铺推荐 -> BBCStorerecommendVC ->BBCClassrecommendVC
2.店铺首页 -> BBCShoppageVC -> BBCShopListVC
3.店铺商品搜索 -> BBCCGoodsSearchVC
4店铺详情 -> BBCShopDetailsVC
个人中心 收藏界面 (商品和店铺收藏暂时没上)
收货地址
1.新建地址 ->BBCCAddNewAddressVC.h
评价物流
1.评价详情 -> BBCCGoodsEvaluateVC.h
2.物流信息 - > BBClogisticsinformationVC.h
优化后的组件配置中心
创建组件中心
GitLab开通权限-->添加项目名称-->git到本地
关联项目
cd /Users/bbcc/Documents/美胸汇工作/project_new/MeiXiongHuiAPP
添加git权限上传大小2G
git config --global http.postBuffer 20524288000
初始化添加git仓库
git init
git add .
增加一个远程仓库
git remote add origin http://git.meibbc.com/BBCC/IOS/meixionghuiapp
本地项目关联推送到gitlab--->强制推送远程服务器
git push origin master -f
查询cocopods 缓存目录
pod cache list
主工程组件-MeiXiongHui
全局主工程主项目工程组-业务版块中心
组件-BBCLoveSharing
爱分享版块业务核心组件
组件-BBCMall
商城板块业务核心组件
组件-BBCBlue
智能蓝牙设备业务核心组件
BabyBluetooth
组件-BBCSpecs-索引目录表 -cocopods全局配置
组件-基于第三方SDK封装的私有库组件中心
组件-BBCCoreData
数据库
组件-BBCFMDB
缓存
组件-BBCChartKit
折线图
组件-BBCMapKit
地图
组件-BBCPhotoBrowser
图片
组件-BBCCalendar
日历
组件-BBCAd
广告轮播图
组件-BBCHttpTool
网络请求
SDK
极光推送和地图
JCore
BaiduMapKit
BMKLocationKit
CHTCollectionViewWaterfallLayout
CWLateralSlide
布局和业务堆栈校验 加密等SDK
组件-ZWUIKit
AvoidCrash
Bugly
JTCalendar
DeepLinkKit
FDStackView
TarBar
CYLTabBarController
嵌套框架
JXCategoryView
JXPagingView
MagicalRecord
Masonry
业务SDK
LFLiveKit
MBProgressHUD
MJRefresh
MJExtension
SDAutoLayout
UITableView+FDTemplateLayoutCell
ZJJTimeCountDown
YYModel
音视频
图片处理
DZNEmptyDataSet
FLAnimatedImage
GTMBase64
KIOpenSSL
libwebp
SDWebImage
TZImagePickerController
YYWebImage
liiweb
阿里支付 视频播放SDK
AliPay_SDK
AliPlayerSDK_iOS
AliyunOSSiOS
AliyunVideoSDKBasic
BBCBannerView
轮播图组件
子主题
组件-自定义私有库组件中心
组件-BBCMediator
全局消息转发组件
组件-BBCGuidePage
开机启动页广告屏组件
组件-BBCDiscover
发现内容组件
组件-BBCClub
俱乐部组件
组件-BBCLogin
登录模块组件
组件-全局基础集成组件
组件-BBCNewCommon
全局基类 宏定义 分类 mvvm 等配置
组件-BBCMediatorModule
全局路由跳转组件
组件-BBCSpecs-索引目录表
组件-cocopods 集成的第三方SDK
类似网络AFN Mansory YYImage等第三方库
组件使用注意事项
组件模块开发代码需要全部独立每个模.运行开发...代码进入每个组件的
Development Pods 目录下开发功能
如果新建xib 文件需要把 xib文件拖动到Resources 文件中 通过show in Finder 进入根目录查看是否存在
新提议设计方案-->项目组件整改汇总
解决方法
组件声明唯一索引库
合并基础组件库例如: BBCCommon、BBCBase 、BBCConfilg 等配置组件为一个公用调用组件
bbcspecs 索引组件
查找索引目录本地cocopds 第三方名称 版本号 标签 和 提交的远程库 路径版本是否一致
解除相互组件库互相引用
查找出组件与组件之间的相互调用、相互引用
修改引用代码
组件模块测试
组件测试运行OK
远程打包release 提交带gitLab服务器上
组件测试运行失败,分析失败原因情况
系统cocopds 第三方库本地连接路径有问题
自定义组件时间久远方法调用不起来,运行失败问题
第三方SDK没更新造成组件库版本低和库冲突问题
自定义封装的库冲突问题
项目组件能正常运行,但是无法打包测试上传到服务器上
解决方案
cocopods 缓存和 release目录下对应下的路径 版本号 是否一样
磁盘目录下的隐藏文件.cocoapods文件下-->repos-->git.meibbc.com(私有库)
资源库-->caches-->cocopods-->pod文件目录
路径错误,查找索引库目录进行对比
/Users/bbcc/Library/Caches/CocoaPods/Pods/Release
/Users/bbcc/Library/Caches/CocoaPods/Pods/Specs
find ~/.cocoapods | grep /OpenSSL-XM.podspec.json
找出库的路径地址可以修改版本号
命令窗口代理设置
取消代理
git config --global --unset http.https://github.com.proxy
git config --global --unset http.https://github.com.proxy
本地设置代理
git config --global http.https://github.com.proxy socks5://127.0.0.1:1086
git config --global http.https://github.com.proxy socks5://127.0.0.1:1086
更新 索引目录
pod repo update git.meibbc.com
添加私有仓库到cocopods
pod repo add git.meibbc.com http://git.meibbc.com/BBCC/IOS/bbcspecs.git
添加master
pod repo add master https://github.com/CocoaPods/Specs.git
pod repo add master https://github.com/CocoaPods/Specs.git
更新内部仓库命令:pod repo update 0-ios-bbcspecs
验证 podspec
pod lib lint PodName.podspec
pod lib lint PodName.podspec
Cocoapods install时查看进度
输入命令:pod install --verbose --no-repo-update
项目复杂度
中等
预估完成耗时时间
时间相对快一点 有效解决根本问题
新打包上线流程
正常苹果机制打包-->achive-->导出ipa包文件
0 条评论
下一页