前言
本文具有强烈的个人感情色彩,如有观看不适,请尽快关闭. 本文仅作为个人学习记录使用,也欢迎在许可协议范围内转载或分享,请尊重版权并且保留原文链接,谢谢您的理解合作. 如果您觉得本站对您能有帮助,您可以使用RSS方式订阅本站,感谢支持!
最近开发过程经常遇到工程中集成第三方工程中的时候 使用pod的方式集成.总忘记链接 第三方库的方式和podspec的写法.所以记录下来容易忘记的内容
podspec 创建
我们在测试工程目录下创建一个目录 起名叫 demoframeworks 然后在这个目录下执行如下:
1
pod spec create spec名称
spec名称
自己起个名字哈
本地会生成一个spec模板 然后用文本编辑器编译一下spec文件,这里我们拿声网的sdk举例.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Pod::Spec.new do |spec|
spec.name = "specdemo"
spec.version = "0.0.1"
spec.summary = "test pod spec"
spec.description = "demo test测试"
spec.homepage = "https://www.sunyazhou.com/"
spec.license = "MIT"
spec.author = { "東引甌越" => "https://www.sunyazhou.com/" }
spec.source = { :git => "git@gitee.com:sunyazhou/sunyazhou13.github.io-images.git"}
#加载第三方framework写法
spec.vendored_frameworks = 'AgoraRtcCryptoLoader.framework','AgoraRtcEngineKit.framework','AgoraRtmKit.framework','AgoraSigKit.framework'
#加载第三方.a
#spec.vendored_libraries = 'libProj4.a', 'libJavaScriptCore.a'
#系统内置动态库的依赖
spec.frameworks = 'Photos','PhotosUI','CoreMedia','Foundation','CoreGraphics','CoreMotion','QuartzCore','MobileCoreServices','Security','CoreText','VideoToolbox','CoreTelephony','AudioToolbox','SystemConfiguration','AVFoundation', 'CoreLocation','AdSupport','OpenGLES','CoreML'
#内置静态库的依赖
spec.libraries = "iconv", "c++", "z.1.1.3" ,"z","resolv" ,"sqlite3","icucore","z.1.2.5"
end
然后在Podfile内容里面添加
1
2
3
4
5
6
7
target 'PodSpecDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# 添加这行
pod 'specdemo', :path=>'./demoframeworks'
end
注意这里的specdemo
是我们给集成本地pod起的名字 最好和创建的spec名字保持一致.
然后 pod install
最后工程就变成了我们想要的样子
总结
记录经常忘记的知识点 防止着急用的时候各种找,更多spec的写法 参考官方的api
工程中移除了framework 因为github不允许上传超过100m以上的文件.很坑 大家下载后看下写法就好了.