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,将其中一个静态库再包装成一个动态库

猜你喜欢

转载自blog.csdn.net/wnnvv/article/details/88690410