目录 | 二级目录 |
---|---|
工程篇 | |
工 |
生成工作空间 |
程 |
Pod依赖管理[可选] |
篇 |
Development Pods |
索引文章 |
尾部注脚[1] |
使用初衷
- 当项目工程越来越庞大的时候,一般我们会选择将通用功能剥离成静态包组件,亦或托管于
[CocoaPods]
; - 当发布类似项目[1]时,我们会考虑使用
[TARGETS]
,或做版本管理; - 但存在不同功能端
[Client]
[2]时,我们又不想拆开项目[Project]
管理,[工作空间]
[3]是个非常合适的选择。
生成工作空间
- 创建一个空文件夹,如
ProjectWorkSpace
1 .在目录下:=Xcode=
⇧
+⌘
+N
创建两个工程,如Anchor
、User
2 .在目录下:=Xcode=
⌃
+⌘
+N
创建.xcworkspace
,如ProjectWorkSpace.xcworkspace
3 .在目录下:生成Podfile
并索引工程,
# 工作空间
workspace 'ProjectWorkSpace.xcworkspace'
# 商户端
target 'Anchor' do
use_frameworks!
project 'Anchor/Anchor.xcodeproj'
end
# 用户端
target 'User' do
use_frameworks!
project 'User/User.xcodeproj'
end
=备注:此处我选用CocoaPods
管理项目,因为比较方便~=
-
pod install
后打开ProjectWorkSpace.xcworkspace
,即可见工程中Anchor
、User
,且包含Pods
# 此时项目文件夹结构应为 ⬇️
| ----------------------------------------------- |
| ProjectWorkSpace | Anchor | // 主播端工程
| ↳ User | // 用户端工程
| ↳ ProjectWorkSpace.xcworkspace | // 工作空间
| ↳ Podfile |
| ↳ Podfile.lock |
| ↳ Pods |
| ----------------------------------------------- |
Pod依赖管理[可选]
- 更新
Podfile
# 工作空间
workspace 'ProjectWorkSpace.xcworkspace'
# 公共模块
def commonPods
# ##### UI #####
pod 'Masonry', '~> 1.1.0' #约束
# ##### Tools #####
pod 'ReactiveObjC', '~> 3.1.1' #RAC-OC
pod 'AFNetworking', '~> 4.0.1' #网络库
end
# 腾讯SDK模块
def txPods
pod 'WechatOpenSDK' #微信sdk(1.8.7.1)
end
# 商户端
target 'Anchor' do
use_frameworks!
project 'Anchor/Anchor.xcodeproj'
commonPods
end
# 用户端
target 'User' do
use_frameworks!
project 'User/User.xcodeproj'
commonPods
txPods
end
Development Pods
并非任何时候都需要用上远程私有库,为了更为便捷的剥离业务共用组件,可选用 本地私有Pod
,即 Development Pods
cd ProjectWorkSpace
1 .在目录下:创建CommonKit
文件夹,用于存放多个Development Pod
[可选]
2 .在目录下 / 在CommonKit
下,创建本地Pod
,如ImKit
3 .在目录下 / 在CommonKit
下,创建.podspec
,如ImKit.podspec
,=备注=.podspec
详细使用可参考姐妹篇[4]
4 .更新Podfile
,代码区 ⏬
5 .在目录下:pod install
后,打开ProjectWorkSpace.xcworkspace
即可在工程目录中可见,图片区-
代码区
def ImKit
pod 'ImKit', :path => './CommonKit'
# path: 会在此路径下,搜寻对应`podspec`
# 故`.podspec`存放位置可照`搭建喜好`配置
end
# 商户端
target 'Anchor' do
use_frameworks!
project 'Anchor/Anchor.xcodeproj'
commonPods
ImKit # 引入Kit*
end
# 用户端
target 'User' do
use_frameworks!
project 'User/User.xcodeproj'
commonPods
ImKit # 引入Kit*
end
-
图片区
工作区配合[CocoaPods]
食用还是非常便捷的,适合同项目独有功能的剥离与维护;
关于 Development Pods
的应用其实是 远程私有Pod
pod repo push
前的开发状态,仅针对单项目而言使用是没有问题的,但想抽离组件给予其他项目使用,还是得私有化~
索引文章
一、CocoaPods|安装流程与使用
- CocoaPods相关问题,可查看此文章
二、模块化工程 | CocoaPods篇|远程私有库搭建流程 [通用工具箱] =姐妹篇❤=
- 手把手搭建远程库,以及过程中遇见的问题及解决方法
三、iOS | 关于AppDelegate瘦身的想法与实践
-
:
马甲包
↩ ↩ -
如电商直播:同时存在
[商户端]
与[用户端]
↩ -
CocoaPods
管理不同Pod
其实也是依赖于.xcworkspace[工作空间]
↩ -
模块化工程 | CocoaPods篇|远程私有库搭建流程 [通用工具箱] ↩