iOS 子模块
来源:互联网 发布:mysql skipnetworking 编辑:程序博客网 时间:2024/05/17 06:11
前言
随着业务的增多,app的模块必然增多,开发也会拆分出相应的小组负责维护某些模块,这时候很有必要将模块从主的代码中抽取成子工程。
子工程
- 子工程创建成Static Library
也可以创建成Framework,但是xib引用图片资源就不方便了
- 子工程创建Bundle Target
Static Library不能处理资源,需要单独建立一个Bundle Target收集资源。
创建好Target记得给Lib Target添加依赖,在生成.a的同时生成Bundle.Bundle,如图:
- 资源分类
在创建新的文件是,要加入到对应的Target中,否则会有奇怪的问题。
xib 中使用的图片都是在MainBundle中搜索,现在把资源打包到子Bundle就引用不到,需要在集成到主工程的时候,通过脚本把子Bundle内的资源移动到MainBundle中,下文介绍主工程再作说明
如此炮制做出其他的子工程
此处省略N字。。。
主工程
- 引用子工程
手动拖动子工程的.xcodeproj文件引用到主工程中,结束后如下图:
- 配置
1.设置Target依赖
2.search path
3.other link flags
$(inherited)很有用,特别是在使用Cocoapods的时候
-all_load是强制加载子工程和Class相关的文件,因为有时候使用NSClassFromString()会找不到class
-ObjC防止子工程存在分类导致的运行时闪退
4.处理子工程资源
在Build Phases中添加脚本块
根据自己的实际情况处理,我的demo中只有三个子工程拥有Bundle,处理如下:
modules=( "ModuleA" "ModuleB" "ModuleC" )cd $CONFIGURATION_BUILD_DIRfor file in ${modules[@]}do if [ -d "$file""Bundle.Bundle" ] then rm ${file}"Bundle.Bundle/info.plist" cp -rf ${file}"Bundle.Bundle/" $CONTENTS_FOLDER_PATH fidone
添加之后的效果:
Run查看效果:
.app内部资源:
模拟器:
随着子工程的越来越多,越来越大,管理就很有必要,稍后补上Cocoapods管理子工程。
最后:这里是demo
最后的最后:如果喜欢还请点赞~~
0 0
- iOS 子模块
- 子模块
- git子模块
- SciPy子模块
- Git下载子模块
- git submodule子模块
- SAP 子模块
- git子模块
- git-子模块submodule
- git-子模块subtree
- GIT-子模块
- SourceTree<四>子模块
- 数据结构-子模块调用函数
- 存储之SCSI子模块
- 6.6 Git 工具 - 子模块
- 新手学习Maven子模块
- 项目子模块设计分析
- git递归下载子模块
- android 6.0在关机界面添加截图功能
- move_base 配置文件说明
- ORACLE 优化器和Hints
- 百度统计
- cmake如何写
- iOS 子模块
- Darwin中RTSP协议的实现
- Android的JNI【实战教程】2⃣️--AS下NDK环境配置及第一个工程
- Rose框架中controller分页
- CCF-权限查询
- 进程通信&线程同步
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- 为什么要使用线程池
- 获取分辨率