美文网首页
模块拆分(二)

模块拆分(二)

作者: S_Lyu | 来源:发表于2020-04-14 16:55 被阅读0次

第二步:新建一个子工程的bundle

1.新建bundle工程:

  • 在指定子模块下新增target


    image.png
  • 新增bundle target


    image.png

2.修改bundle的设置:

  • 因为bundle默认是macOS的所以要改成iOS
    需要将FrameworkBundle->Build Settings->Architectures->Base SDK改为iOS
    image.png
  • 关闭bitcode
    FrameworkBundle->Build Settings->Build Options->Enable Bitcode设置为NO.
    image.png
  • 设置开发环境
    分别将FrameworkBundle->Build Settings->Deployment下的iOS Deployment Target和macOS Deployment Target,选择为你最低支持的版本
    image.png
  • 设置
    将FrameworkBundle->Build Settings->User-Defined->COMBINE_HIDPI_IMAGES设置为NO
    注1:此属性在Base SDK 选择了iOS SDK之后才会出现
    注2:若不设置此项,bundle中的png图片经过编译打包会变成tiff的文件

    image.png
  • 添加资源
    常用资源如.png/.xib等
    image.png

3.添加依赖

  • 将bundle添加为子工程的依赖
    为了编译framework前自动编译bundle
    image.png
  • 将子工程添加为主工程的依赖(上一篇文章已做此操作)
    略...

4.子工程添加脚本

  • 创建脚本


    image.png
  • 将下面脚本内容复制,并做如下修改:

共两处:
1.子工程名称
2.bundle名称

image.png
//脚本内容
//脚本作用:编译子工程时,一并打包bundle,并导出至指定文件夹
#指定 FrameWork 与 bundle的target名称
Bundle_NAME="XHCommonBusinessBundle"

#打包结果存储地址
Products_DIR=${SRCROOT}/Products/

#定义framework与bundle存储路径
Bundle_INSTALL_DIR=${SRCROOT}/Products/${Bundle_NAME}.bundle


#将要生成包的路径
WRK_DIR=build

Bundle_SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${Bundle_NAME}.bundle
Bundle_IPHONEOS_DIR=${WRK_DIR}/Release-iphoneos/${Bundle_NAME}.bundle

#清理下工程
# -configuration ${CONFIGURATION}
# Clean and Building both architectures.

if [ "${CONFIGURATION}" == "Debug" ]; then
xcodebuild -configuration "Release" -target "${Bundle_NAME}" -sdk iphoneos clean build
xcodebuild -configuration "Release" -target "${Bundle_NAME}" -sdk iphonesimulator clean build

#清除下存储路径下的旧包

if [ -d "${Bundle_INSTALL_DIR}" ]
then
rm -rf "${Bundle_INSTALL_DIR}"
fi
mkdir -p "${Bundle_INSTALL_DIR}"

#拷贝bundle
cp -R "${Bundle_SIMULATOR_DIR}" "${Products_DIR}/"


else

xcodebuild -configuration "Release" -target "${Bundle_NAME}" -sdk iphoneos clean build
#清除下存储路径下的旧包

if [ -d "${Bundle_INSTALL_DIR}" ]
then
rm -rf "${Bundle_INSTALL_DIR}"
fi
mkdir -p "${Bundle_INSTALL_DIR}"

#拷贝bundle
cp -R "${Bundle_IPHONEOS_DIR}" "${Products_DIR}/"

fi

#判断release
#移除模拟器架构

rm -r "${WRK_DIR}"

  • 脚本执行后会自动生成"胖bundle"


    image.png
  • 将bundle拖入(引用至)主工程


    image.png

END

相关文章

  • 模块拆分(二)

    第二步:新建一个子工程的bundle 1.新建bundle工程: 在指定子模块下新增targetimage.png...

  • 架构学习-消息队列

    在公司中,目前服务拆分出来的订单模块,商品模块,发票申请模块,邮寄模块,退款模块,安全模块,公共模块,之前拆分出...

  • 已有项目模块化流程

    1 根据业务拆分模块,找出所有的业务模块。复杂的业务模块拆分为小的业务模块。2 根据模块的层级结构已文件夹...

  • AppDelegate如何瘦身?

    1、使用分类,拆分模块到分类中。(分类中同名方法覆盖问题)2、不使用分类,拆分模块,每个模块的处理数据方法注册到原...

  • 对SpringCloud微服务架构的理解

    微服务 微服务 将all in one的项目拆分,可以按业务拆分成独立的模块等,降低模块与模块之间的耦合性,每个微...

  • 在终端营销活动中:如何对整体项目进行有效拆分?

    项目拆分就是把整体项目拆分成几个模块,这几个模块彼此独立,又相互联系。 拆分项目的目的,是为了我们能更好的去管理推...

  • MongoDB快速入门教程 (4.3)

    4.3.Mongoose模块化 #4.3.1.为什么要进行模块化拆分? 模块化拆分的目的是为了代码的复用,让整个项...

  • Ⅲ.spring cloud

    一、从面试题开始 二、微服务概述 2.1 简介 all in one ——>one in one模块独立(拆分),...

  • 模块拆分(前言)

    前言 1.高耦合的app,到底怎么拆? *还有很多分支已经删掉了..." 2.业务边界清晰么? 无奈之举,抽离Co...

  • 模块拆分(一)

    第一步:新建子工程(子模块framework静态库) 1.创建framework: 2.直接关闭自动打开的工程文件...

网友评论

      本文标题:模块拆分(二)

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