Xcode项目依赖

来源:互联网 发布:差分方程matlab编程 编辑:程序博客网 时间:2024/06/05 22:45

Demo地址

一、 我们用一个Podfile文件管理多个项目的第三方库

1、首先在ProjectRelyDemo文件夹下创建我们的第一个主项目

这里写图片描述

2、使用CocoaPods管理第三方库(假设你已安装过Cocoapods)

  • 在终端中切换到FirstProject目录,执行pod init,会在该目录下生产Podfile文件。
  • 应用我们要用cocoapods管理workspace下所有的project和library,多以我们要把Podfile文件移动到ProjectRelyDemo目录下。
  • 在执行pod install之前,我们先配置Podfile文件如下

     platform :ios, '7.0'  #忽略所有警告 inhibit_all_warnings! #指定workspace名称,没有则生成新的   路径是相对于Podfile路径(同下) workspace 'ProjectRelyDemo.xcworkspace' #配置默认的xcodeproj xcodeproj 'FirstProject/FirstProject' pod 'Masonry', '0.6.4'
  • 执行pod install
    xcode目录如下
    这里写图片描述
    文件目录如下
    这里写图片描述

3、添加第二个主项目

  • 在xcode的左下角点击加号,选择New Project..,创建SecondProject
    这里写图片描述
    -注意选择的是workspace,而不是某一个project,pods,library
    这里写图片描述

4、使用同一个Podfile文件管理两个项目

  • 配置podfile文件内容一下

    platform :ios, '7.0' #忽略所有警告inhibit_all_warnings! #指定workspace名称,没有则生成新的   路径是相对于Podfile路径(同下)workspace 'ProjectRelyDemo.xcworkspace' #配置默认的xcodeproj 路径是相对于Podfile路径xcodeproj 'FirstProject/FirstProject'target :FirstProject do    xcodeproj 'FirstProject/FirstProject'    pod 'Masonry', '0.6.4'endtarget :SecondProject do    xcodeproj 'SecondProject/SecondProject'    pod 'Masonry', '0.6.4'    pod 'ReactiveCocoa','2.5'end
  • 执行pod install:CocoaPods did not set the base configuration of your project 有这样的警告
    解决方案:http://www.bubuko.com/infodetail-975930.html
  • 编译出现ld: library not found for -lPods错误
    解决方案:对应项目 选择target-build Phases-Link Binaray With Libraries 删除 libPods.a(这是pod install上一次生产的,在多个项目时,则是libPods-FirstProject.a这样对应项目的名字)

至此我们的项目结构如下,第一步完成
这里写图片描述
这里写图片描述

二、 加入共享的 Business_lib

  • 在Xcode中点击左下角的加号,选择New Project…,选择ios-Framework&Library- Cocoa Touch Static Librarys
    这里写图片描述
  • 给FirstProject添加Business_lib依赖(三步走)(SecondProject类比)

    • 1、target-FirstProject-Build Phases- Target Dependencies 点击加号 选择Business_lib
    • 2、Build Phases- Link Binary With Libraries 点击加号 选择libBusiness_lib.a
      这里写图片描述
    • 3、Build Settings-Header Search paths 添加"${SRCROOT}/../Business_lib"
      这里写图片描述
    • Business_lib使用第三方库,配置Podfile文件内容如下
      platform :ios, '7.0' #忽略所有警告inhibit_all_warnings! #指定workspace名称,没有则生成新的   路径是相对于Podfile路径(同下)workspace 'ProjectRelyDemo.xcworkspace' #配置默认的xcodeproj 路径是相对于Podfile路径xcodeproj 'FirstProject/FirstProject'target :FirstProject do     xcodeproj 'FirstProject/FirstProject'    pod 'Masonry', '0.6.4'     pod 'ReactiveCocoa','2.5'endtarget :SecondProject do    xcodeproj 'SecondProject/SecondProject'    pod 'Masonry', '0.6.4'    pod 'ReactiveCocoa','2.5'   #library中使用工程中必须添加,否在报错"_OBJC_CLASS_$", referenced from:endtarget :Business_lib do   xcodeproj 'Business_lib/Business_lib'   pod 'ReactiveCocoa','2.5'end
  • 至此我们的项目结构如下,第二步完成
    这里写图片描述
    这里写图片描述

三、 添加不涉及业务的Base_lib

  • 创建方式 同Business_lib,给Business_lib添加Base_lib的依赖也同上
  • 不同之处在于 :只在FirstProject -build Settings-Header Search Path添加”${SRCROOT}/../Base_lib”,另外Build Phases的配置无需执行

  • 至此我们的项目结构如下,第三步完成
    这里写图片描述
    这里写图片描述

相关知识点

Xcode 的一些环境变量

  • SRCROOT :~/WorkSpace/Demo/PojectRelyDemo/FistProject
    SRCROOT 代表项目根目录下

  • PROJECT_DIR:~/WorkSpace/Demo/PojectRelyDemo/FistProject
    PROJECT_DIR 代表项目所在路径

即:SRCROOT宏和PROJECT_DIR宏都指xxx.xcodeproj所在的父目录
Demo地址

0 0
原创粉丝点击