本地的 pod 生成 framework
本地的 pod 生成 framework 请前往 https://www.jianshu.com/p/87dbab526deb
生成的 framework 创建上传pod库 .podspec 文件和测试使用
1、pod lib create 库名(HJPodTest) 例如:
pod lib create HJPodTest
创建HJPodTest库
创建完成之后的HJPodTest库
创建完成之后的pod库创建完成之后的podFile文件
创建完成之后的podFile文件HJPodTest库目录结构
HJPodTest库目录结构HJPodTest库 的 podspec 文件
podspec 文件(这里是framework包,可以让使用者不看源码)
2、导入framework文件
在生成的 XXXXX 项目中,找到对应的位置,用 .framework 替换 classes 里的 ReplaceMe.m 文件。
导入framework文件3、编辑.podspec文件
这里用到了trunk账号,点击trunk账号创建trunk账号;
Pod::Spec.new do |s|
s.name = 'XXXXX'
s.version = '0.0.1'
s.summary = 'A short description of XXXXX. 简介 ,自己填写'
s.description = <<-DESC
TODO: Add long description of the pod here. 详情,自己填写
DESC
s.homepage = 'https://github.com/****' # 自己的Git 主页
s.license = { :type => 'MIT', :file => 'LICENSE' } # 版本权限
s.author = { 'HJ' => '*******@qq.com' } # trunk 作者 => trunk 邮箱
s.source = { :git => 'https://github.com/*****/XXXXX_HJ.git', :tag => s.version.to_s }
s.ios.deployment_target = '9.0' # 最低版本
s.swift_version = '5.0' # 可选 ,支持的swift 最低版本
s.static_framework = true # 是否是静态库
s.requires_arc = true # 是否是 arc 环境
# s.source_files = 'XXXXX/Classes/**/*' # 因为是使用 .framework 所以只暴露头文件
s.vendored_frameworks = ['XXXXX/Classes/XXXXX.framework'] # .framework 资源路径
s.resource = 'XXXXX/Classes/XXXXX.framework/Headers'
# s.resource_bundles = { # 图片资源
# 'XXXXX' => ['XXXXX/Assets/*.png']
# }
s.public_header_files = 'XXXXX/Classes/**/*.h' # framework 暴露的头文件
s.frameworks = 'Foundation', 'CoreFoundation', 'UIKit' # 依赖的 frameworks
s.dependency 'YYCache', '1.0.3' # 依赖的 第三方
s.dependency 'YYModel' # 依赖的 第三方
s.dependency 'KVOController'# 依赖的 第三方
end
示例图
4、尝试在demo中使用
使用示例生成的 framework 创建上传到 pod库 并 pod 'XXXXX' 使用
上传pod 可以参照 创建自己的 pod 库 并上传这篇。
中间可能遇到的问题
1、使用framework时遇到的报错 Could not find auto-linked library 'swiftObjectiveC'
报错示例.png
创建一个 *****-Bridging-Header.h 桥接文件 或 创建一个swift 文件自动生成 *****-Bridging-Header.h 桥接文件
参考博客
1、本文档参考博客 iOS 将个人framework上传至私有pod库
网友评论