Pod私有库制作podspec, umbrella, pod spec lint –sources, pod repo push, resource_bundles, pod_target_xcconfig, vendored_frameworks, vendored_libraries
sudo gem install -n /usr/local/bin cocoapods
以下所以本地路径,均为相对路径,和 podspec
文件在同一级目录。
三方库可统一配置:
s.subspec 'VenderFramework' do |ss| ss.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '$(PODS_ROOT)/Framework/*.framework/Headers', 'OTHER_LDFLAGS' => '-ObjC' } ss.vendored_frameworks = 'Framework/**/*.framework' ss.vendored_libraries = 'Framework/**/*.a' ss.subspec 'Wechat' do |sss| sss.source_files = 'Framework/Wechat/*.h' sss.public_header_files = 'Framework/Wechat/*.h' end end
如果在引用OC的库时,报找不到umbrella的问题,可通过以下解决:
s.prepare_command = <<-EOF rm -rf Framework/Tencent/TencentOpenAPI.framework/Modules mkdir Framework/Tencent/TencentOpenAPI.framework/Modules touch Framework/Tencent/TencentOpenAPI.framework/Modules/module.modulemap cat <<-EOF > Framework/Tencent/TencentOpenAPI.framework/Modules/module.modulemap framework module TencentOpenAPI { umbrella header "Tencent.h" export * module * { export * } } /EOF EOF
引用bundle资源时,做如下:
s.resource_bundles = { 'PPXXX' => ['PPXXX/Assets/**/*.png'] }
引用系统的framework,library时,如下:
s.frameworks = 'CoreLocation', 'QuartzCore', 'OpenGLES', 'SystemConfiguration', 'CoreGraphics', 'Security', 'CoreTelephony' s.libraries = 'sqlite3.0', 'stdc++', 'z', 'iconv'
限定swift版本,需加上: s.swift_version = '3.0'
在引用pod本地库时,需要修改Podfile文件,需要这种样式去添加:
pod 'PPModules', :path => '../'
引用私有远程库时,需要改成这样:
– 添加源
source 'https://github.com/CocoaPods/Specs.git' source 'http://xxx.com/xxSpecs.git'
pod 'PPXXX'
拉取分支上传,统一合并打 tag
,做 repo push
git
仓库中打 tag
,代码提交完毕后,下一个版本要发布的为1.0.0,如下:
– 创建一个tag
git tag 1.0.0
git push --tags
git tag -d 1.0.0
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :1.0.0
提交代码时,记得把podspec文件中的版本号加1。
如果自己创建的私有库,做打包时,需要先做验证:
pod spec lint --sources='http://xxx.com/xxSpecs.git,https://github.com/CocoaPods/Specs.git' --allow-warnings
由于引用的一个三方库中有warning,所以这里要忽略warning。
做完lint验证后,需要推送到远程:
pod repo xxSpecs xxx.spec --allow-warnings
其中 xxSpecs
为私有库在你本地仓库中的名称,可通过 pod repo list
查看。