iOS 多Bu工程解耦

本文介绍了一种方法来处理iOS项目中的多bundle工程解耦问题,通过脚本遍历并复制bundle资源到app中,实现资源的管理和解耦。此过程涉及到检查每个bundle,将其中的文件复制到相应的app目录,并根据文件类型进行处理。
摘要由CSDN通过智能技术生成

在集成多Bu的大规模工程下,存在如下问题
1、资源混乱:
同样的资源由于缺乏系统管理,可能存在一种资源存在多份、无用资源的问题。

2、类的存放和命名:
为了不和别的Bu的类名发生冲突,必须时刻考虑类命名问题,每个Bu都需要自己管理自己的文件夹

3、误操作可能导致整个工程无法使用,成本很高

4、类之间的引用混乱

所以有必要使用系统的方法,解耦整个工程,使各个Bu独自管理自己的业务模块。

下面分2部分介绍Bu工程解耦的方法:

1、代码解耦

假如:存在主工程:Main_Project
  Bu工程:Bu1、Bu2
基础业务:Business

步骤1、为每个Bu和基础控件建立新的工程,并把主工程中各个Bu的“业务代码”移入子工程,注:子工程必须为library类型

BE50F726-3EB1-4D8B-A0F3-F9DFBE1DBF68.png

步骤2、添加依赖关系
411BAAA4-A0C5-4F3E-8C53-2CD8C9815286.png
如上图,主工程需要依赖于Bu1和Bu2
Bu1工程依赖于Business(基础控件)
Bu2工程依赖于Business(基础控件)

步骤3、添加头文件路径
为每个工程添加依赖的工程的代码路径
主工程中添加Bu1 和Bu2的代码路径
Bu1工程添加Business代码路径
Bu1工程添加Business代码路径
7B038C01-1287-4B87-A5B4-DE7AA1C12183.png


步骤 4、添加Target Dependencies和.a
8F444971-7BB9-4C5F-A2D3-10B19C8BD0B3.png
5B16EA24-F74D-4E3E-BD12-DD4E39278578.png

以上完成了代码依赖,这样以来,主工程可以使用Bu工程的代码和控件工程的代码,Bu工程可以使用控件工程代码,Bu工程可以通过互加依赖来引用其他Bu(还可以通过Bus总线来实施Bu之间的调用,下一节介绍)


2、资源解耦
众所周知,工程依赖并不能传递资源,所以我们需要使用一些工具来完成资源的解耦。在工程中有一种包叫做“Bundle”,把所有子工程的资源加入Bu,并通过runscript把Bundle中的内容拷贝到.app中。

步骤1、建立Bundle
命名规则 = BuName + Bundle
新建Target ->Bundle(OS X->Framework&Library)
结果如图:
2364F074-3A4E-4B8E-8190-5A4EC724D0D9.png
同样为所有子工程添加Bundle

步骤2、把子工程资源添加到Bundle中
405836.png
注:所有的.xib文件,图片文件和文本文件都属于资源文件,都必须添加到Bundle中

步骤3、更改runscript

cd "$BUILD_DIR/$CONFIGURATION-$TARGET_PLATFORM"


for file1 in `ls`

do

if echo "$file1" | grep -q "bundle"

then

echo "***检查[$file1], 复制资源中的文件到app***"

for item_path in ./$file1/* 

do

item_file_name=${item_path##*/};

item_file_sufix=${item_path##*.};

item_dest_path="${CONTENTS_FOLDER_PATH}/${item_file_name}";

file_path="${file1}/${item_file_name}";

if [ "$item_file_name" == "$IgnoreFileList" ]; then

va="x" 

elif [ -f "$file_path" ] || [ -d "$file_path" ]; then 

rm -rf "$item_dest_path";

cp -rf "$file_path" "$item_dest_path";

fi

done

fi

done




总结:
当然还需要处理资源命名问题,可以使用如下命名规则,bussinessName_image





Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值