使用Cocopods新建项目流程:
一、创建项目
使用pod lib create TestProj创建TestProj项目。
系统会提示你以下几个问题:
What language do you want to use?? [ Swift / ObjC ] ///< 工程语言,根据需要输入Swift或ObjC
Would you like to include a demo application with your library? [ Yes / No ] ///< 是否有Demo程序,可以根据需要输入Yes
Which testing frameworks will you use? [ Specta / Kiwi / None ] ///< 是否有测试框架,可以根据需要输入None
Would you like to do view based testing? [ Yes / No ] ///< 是否需要UI测试,可以根据需要输入No
What is your class prefix? ///< Demo工程里类名前缀,可以输入自己或公司标志做为前缀
二、配置Podspec文件
Podspec为pod工程的配置文件,可以根据如下方式进行配置。或者参考官方说明
Pod::Spec.new do |s|
#s.name = 'TestProj'
s.name = <#ChangeValue#>
# 版本号
# s.version = '1.0.0'
s.version = <#ChangeValue#>
# 作者信息(需要适配)
#s.author = { 'BlueMap' => 'bluemap@163.com' }
s.author = <#ChangeValue#>
# 工程主页(需要适配)
# s.homepage = '项目主页,如:https://github.com/rs/SDWebImage'
s.homepage = <#ChangeValue#>
# s.summary = '项目简介.'
s.summary = <#ChangeValue#>
# s.description = '项目详细描述'
s.description = <#ChangeValue#>
s.license = {
:type => 'Copyright',
:text => <<-LICENSE
BlueMap copyright
LICENSE
}
# 支持平台
s.platforms = { :ios => "7.0" }
# 依赖系统Library(需要适配!‘,’分隔)
# s.libraries = 'z'
# 依赖系统Framework(需要适配!‘,’分隔)
# s.frameworks = 'UIKit', 'MapKit'
# 依赖第三方Library(需要适配!‘,’分隔)
# s.vendored_libraries = 'xxx.a'
# 依赖第三方Framework(需要适配!‘,’分隔)
# s.vendored_frameworks = 'xxx.framework'
# 工程地址(需要适配)
# s.source = { :git => 'https://github.com/rs/SDWebImage.git', :tag => s.version.to_s }
s.source = <#ChangeValue#>
# 公开头文件(需要适配)
# s.public_header_files = 'TestProj/Classes/**/*.h'
s.public_header_files = <#ChangeValue#>
# 公开源码文件(需要适配)
# s.source_files = 'TestProj/Classes/**/*'
s.source_files = <#ChangeValue#>
# ARC属性(需要适配)
# s.requires_arc = false
s.requires_arc = <#ChangeValue#>
#指定依赖,可以连续指定多个依赖
#s.dependency 'AFNetworking', '~> 3.0'
#s.dependency 'NSData+Base64', '~> 1.0.0'
# xcconfig配置(需要适配)
s.pod_target_xcconfig = {
# 'ALWAYS_SEARCH_USER_PATHS'=>'NO',
# 'CLANG_CXX_LANGUAGE_STANDARD'=>'gnu++0x',
# 'CLANG_CXX_LIBRARY'=>'libc++',
# 'GCC_C_LANGUAGE_STANDARD'=>'gnu11',
# 'CLANG_ENABLE_MODULES'=>'YES',
# 'ENABLE_BITCODE'=>'NO',
# 'GCC_ENABLE_CPP_EXCEPTIONS'=>'NO',
# 'GCC_WARN_ABOUT_RETURN_TYPE'=>'YES',
# 'GCC_PREPROCESSOR_DEFINITIONS'=>'$(inherited) NDEBUG=1 DNS_BLOCK_ASSERTIONS=1 NS_BLOCK_ASSERTIONS=1',
# 'ONLY_ACTIVE_ARCH'=>'NO',
# 'GCC_OPTIMIZATION_LEVEL'=>'3',
# 'GCC_INLINES_ARE_PRIVATE_EXTERN'=>'YES',
# 'GCC_SYMBOLS_PRIVATE_EXTERN'=>'YES',
# 'ENABLE_NS_ASSERTIONS'=>'NO'
############### DEBUG Macro Define ###############
# 'GCC_PREPROCESSOR_DEFINITIONS'=>'$(inherited) DEBUG=1 _DEBUG=1',
# 'ONLY_ACTIVE_ARCH'=>'YES',
# 'GCC_OPTIMIZATION_LEVEL'=>'0',
# 减少代码体积
# 'GCC_INLINES_ARE_PRIVATE_EXTERN'=>'NO',
# 'GCC_SYMBOLS_PRIVATE_EXTERN'=>'NO',
# 'ENABLE_NS_ASSERTIONS' => 'YES',
}
end
三、测试Example工程
如果第一步我们选择创建“demo application”,那么生成的目录下会有一个Example子工程。
使用如下命令初始化Example子工程
cd Example路径 命令来切换目录
pod install
如果成功,则目录下会生成.workspace文件,打开该文件进行编译,如果编译成功,说明该子项目创建成功。
如果需要增删改子工程代码,则可以定位到前面s.source_files 配置的目录下,进行文件编辑操作,完成代码的增删改。
四、提交代码到仓库
- 创建一个git仓库,可以选择在github上创建公共仓库也可以bitbucket创建私有仓库
- CD到pod lib create目录
- git remote add origin git路径将本地仓库映射到远程地址。如:git remote add origin https://bluemap@bitbucket.org/bluemapstudio/TestProj.git
- 分别执行git add *\git commit -a\git push origin master三条命令,将本地仓库文件上传到服务端
注:在执行git push origin master的时候可能会碰到“fatal: refusing to merge unrelated histories”错误,如果碰到该错误则先执行git pull origin master --allow-unrelated-histories,然后再执行git push origin master命令
如此,cocoapods创建子项目工作完成。
其它项目需要使用该子项目时可以通过在Podfile中进行类似配置来集成:
pod 'TestProj', :git=>'https://github.com/rs/SDWebImage.git', :tag=>'1.0.0'