XCode多项目(xcodeproj)使用Cocoapod管理

Author Avatar
纸简书生 5月 13, 2017

最近比较忙,空闲的时候看的是关于算法方面的。关于算法自己的脑子不够用想写点东西,但是感觉还没有很熟练。所以先写点其他的。

XCode多项目(xcodeproj)使用Cocoapod管理

最近在写demo的时候遇到这个问题。平时开发大都是一个workspace下面的一个xcodeproj开发。由于demo中有多个xcodeproj。而且这几个xcodeproj都需要用到cocoapod。这里顺便记录下解决的方法

更改podfile

首先工程的目录结构如下;

之所以会出现这样的问题还是对podfile文件格式不熟悉。

原来cocoapod允许我们指定workspace以及每个target的xcodeproj文件的路径。原理就是这样,在每个target下面添加对应的路径即可。

总体来说就是这个样子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
workspace 'SocketDemo.xcworkspace'
target 'SocketDemo' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for SocketDemo
xcodeproj 'SocketDemo.xcodeproj'
# 网络库
pod 'CocoaAsyncSocket', '~> 7.4.3’
end
target 'SocketServe' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for CocoaAstnSocketDemo
xcodeproj 'SocketServe/SocketServe.xcodeproj'
# 网络库
pod 'CocoaAsyncSocket', '~> 7.4.3’
end
target 'CocoaAstnSocketDemo' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for CocoaAstnSocketDemo
xcodeproj 'CocoaAstnSocketDemo/CocoaAstnSocketDemo.xcodeproj'
# 网络库
pod 'CocoaAsyncSocket', '~> 7.4.3’
end

需要注意有一下几点。

  1. workspace必须填而且在所有target外面
  2. 每个target对应的xcodeproj写在每个target配置里面
  3. 如果没有指明xcodeproj和workspace的路径默认就会用根目录下面的*.xcodeproj*.workspace为标