CocoaPods为多个target添加依赖库/Podfile的配置

Podfile的相关配置,请看官方文档http://guides.cocoapods.org/syntax/podfile.html

1)多个target公用相同库,还可以添加额外的不同第三方库

编辑工程中的Podfile,根据需求修改库和target名称,Podfile其实是一个ruby文件

写法一:通过abstract方式引入

#targetA: [AFNetworking,Masonry]
#targetB:[AFNetworking,SDWebImage]
abstract_target 'abstract_pod' do  #这里的abstract_pod在实际targets中不存在,是虚拟
    pod 'AFNetworking'
    
    target 'targetA' do
        pod 'Masonry'
    end
    
    target 'targetB' do
        pod 'SDWebImage'
    end
end

写法二:循环target 添加pod

# -*- coding: UTF-8 -*-
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

# ruby语法
# target数组 如果有新的target直接加入该数组
targetsArray = ['targetName1', 'targetName2', 'targetName3', 'targetName4', 'targetName5']
# 循环
targetsArray.each do |t|
    target t do
        pod 'MJRefresh', '~> 1.4.6'
        pod 'Masonry', '~> 0.6.1'
    end
end

写法三:提取公共pods 各个target引入

workspace 'MST.xcworkspace'
project 'MST.xcodeproj'

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
inhibit_all_warnings!

#定义相同的依赖库
def commonPods
    pod 'Masonry', '~> 1.1.0'
end

#工程一:
target 'AnyDoorDemo' do
    commonPods
    pod 'AFNetworking', '~> 3.2.1'
    
    #测试相关
target 'AnyDoorDemoTests' do
    inherit! :search_paths
    pod 'Specta', '~> 1.0.7'
    pod 'OCMock', '~> 3.4.2'
    pod 'Expecta', '~> 1.0.6'
end

  target 'AnyDoorDemoUITests' do
    inherit! :search_paths
    # Pods for testing
  end
end

#工程二:
target 'HostApp' do
    commonPods
end

 

2)单个target依赖库

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'targetName1' do
    pod 'MJRefresh', '~> 1.4.6'
    pod 'Masonry', '~> 0.6.1'
end

 

3)不同target依赖库

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'targetName1' do
    pod 'MJRefresh', '~> 1.4.6'
    pod 'Masonry', '~> 0.6.1'
end

target 'targetName2' do
    pod 'MJRefresh', '~> 1.4.6'
    pod 'Masonry', '~> 0.6.1'
    pod 'AFNetworking', '~> 3.0'
end

 

posted on 2019-07-11 10:05  二狗你变了  阅读(1468)  评论(0编辑  收藏  举报

导航