iOS 组件化将通用模块打包成动态库以及解决两个静态库中有相同的代码的冲突问题

1. 在workspace中管理多个project的方式实现组件化

  • 新建workspace,新建或者添加项目工程Project,比如叫Test
  • 新建Project比如叫Common,类型选择framework
  • Build Settings -> Mach-O Type 选择dynamic library动态库,选择静态库也可以,看需要
  • 将通用模块的代码放在Common中,添加需要的系统库,暴露相应的头文件

  • 在项目工程Test中,Build Phases -> Link Binary With Libraries中添加+ Common.framework
  • 动态库还需要在General -> Embedded Binaries中添加
  • 选择项目工程target,运行即可,自动联编Common.framework

2. 如果还想在项目工程中继续使用#import "",双引号的方式引用Common.framework中的头文件

  • 在项目工程中Build Settings -> Header Search Paths中添加 $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Common.framework/Headers
  • $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)这个路径是framework生成路径,可以自动识别debug还是release,也可以自行修改,在Common的工程中Build Settings->Per-configuration Build Products Path中查看

3. 解决两个静态库中有相同的代码的冲突问题

  • 用上述步骤,新建framework Project,将其中一个静态库再包装成一个动态库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值