教你一步一步开发iOS私有SDK 到并上传到cocoapods
1、 需求
我们要提供一个iOS 私有 SDK, 对方可以通过cocoapods安装, 并且只能看到头文件
2、大致流程
- 使用Xcode创建一个framework工程, 在里面编写你需要提供的功能
- 创建
podspec
文件, 依赖这个framework, 然后上传到Cocoapods
.
3、具体流程
如果我们单独创建一个framework工程, 如果有需求修改每次都要导出framwork在demo工程中调试, 这就很麻烦,所以今天创建一个framework+demo的混合工程, 在一个工程中包含framework工程+demo工程+Pods工程。结构如下:
混和工程创建步骤
demo github地址
Step1: 创建Demo工程, 取名为MySDKDemo
- 创建完成加入Podfile文件, 并执行Pod install
platform :ios, '9.0'
target 'MySDKDemo' do
end
Step2: 创建framework工程, 取名为MySDK
Step3: 关联项目
- 把创建好的MySDK移动到MySDKDemo下面
- 然后把MySDK工程文件拖进项目
- 拖入之后
Step4: 配置Podfile
platform :ios, '9.0'#这里需要添加
workspace 'MySDKDemo.xcworkspace'target 'MySDKDemo' do# Comment the next line if you don't want to use dynamic frameworksuse_frameworks!# Demo工程依赖的第三方, 如果和SDK依赖的一致, 则Pod install的只会安装一份pod 'SVProgressHUD'pod 'AFNetworking'endtarget 'MySDK' do#需要添加SDK路径,project './MySDK/MySDK.xcodeproj'# MySDK依赖 SVProgressHUD 和 AFNetworkingpod 'SVProgressHUD'pod 'AFNetworking'
end
- cd 到MySDKDemo路径下, 执行pod install
- 当前选中demo工程进行调试
- 选中SDK, 进行编译
Step5: 联调
- 在demo中需要使用的时候,先在MySDK工程中command + B(确保demo中有效使用)
- demo中引入头文件#import <MySDK/MySDK.h>
以上工程架构搞定, 接下来开始改动MySDK工程, 进行测试
MySDK工程中编写需求代码
- 在MySDK目录下创建一个Hud类进行测试
#import "Hud.h"
#import <SVProgressHUD.h>
@implementation Hud
- (void)showToast:(NSString *)msg {[SVProgressHUD showInfoWithStatus:msg];
}
@end
- 拖进需要暴露的头文件
- 在MySDK.h中引入你的Hud
#import <MySDK/Hud.h>
- 在demo中使用
#import <MySDK/MySDK.h>[Hud showToast:@"Hello"];
导出framework
发布到Cocoapods
- 创建MySDK.podspec文件, 并把导出的MySDK.framework一同放入同一个文件
Pod::Spec.new do |s|s.name = "MySDK"s.version = "1.0.0"s.summary = "测试用SDK"s.description = <<-DESC
测试用SDK, 使用OC实现DESCs.homepage = "https://github.com/nieyinlong/MySDK_iOS"s.author = { 'nieyinlong' => 'nyl0819@126.com' }s.platform = :ios, "9.0"s.source = { :git => "https://github.com/nieyinlong/MySDK_iOS.git", :tag => s.version }# 过不支持真机调试则加上下面的s.pod_target_xcconfig = {'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64'}s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }# 不支持真机结束s.vendored_frameworks = 'MySDK.framework's.dependency 'AFNetworking', '~> 4.0's.dependency 'SVProgressHUD'
end
- 执行发布命令
- cd 到MySDK_iOS
pod lin lint --allow-warnings
pod tunk push
发布成功即可在其他项目中使用
pod 'MySDK'
报错解决’MySDK/MySDK.h’ file not found
demo github地址
教你一步一步开发iOS私有SDK 到并上传到cocoapods相关推荐
- 微信公众号开发JSSDK上传图片(多图上传)
前面做了微信公众号开发,涉及到了图片上传功能.微信jssdk-api带有一套完整的调用选择本地图片上传的功能,很多朋友在问到多图上传的问题.在这里分享一下自己的做法,其实并不是自己的做法,就是完全按照 ...
- Spring Boot(5) web开发(3)拦截器、文件上传、异常处理
Spring Boot(5) web开发(3)拦截器.文件上传.异常处理 学习视频: https://www.bilibili.com/video/BV19K4y1L7MT?p=49&spm_ ...
- PHP开发微信公众号,实现上传永久素材
众号永久素材从名字可以知道, 我们的永久素材上传到微信服务器后, 只要你不删除, 永久有效, 可以使用. 所以我们上传永久素材后, 获取它的media_id, 直接存入到我们的web服务器数据库, 这 ...
- 用Swift实现iOS相机及相册图片上传
最近要做一个iOS相机及相册图片上传,其中遇到了这些问题:1.图片增删在UICollectionView里的变化:2.获取相机拍摄的照片和相册的照片:3.将PHAsset对象转为UIImage对象: ...
- iOS开发中集成阿里云视频上传SDK总结
阿里云iOS视频上传SDK说明文档 安装 说明1:这两个Framework均需导入. 说明2:此处引入头文件 #import <VODUpload/VODUploadClient.h> # ...
- (0081)iOS开发之无限后台定位并上传数据到服务器
关键词:ios 后台持续定位 iOS 后台的理解 // http://blog.csdn.net/u013773524/article/details/52153917 // http://blog. ...
- iOS架构-自动打包并上传到App Store(python)(21)
这里是摘自一篇用python 语法写的脚本,这里只是为了更好的理解自动化打包上传App Store的原理的. 一. iOS 自动打包并上传到App Store(python) 我们平时大都是用Appl ...
- iOS fastlane 自动打包,上传蒲公英
文章目录 前言 fastlane 介绍: 1. 安装环境 1.1 安装 Homebrew 1.2 安装 fastlane 2. fastlane 配置 2.1 进入到工程目录 .xcworkspace ...
- 网站开发常用jQuery插件总结(15)上传插件blueimp
在介绍这个插件之前,先吐槽一下.这个插件功能很强大.带有的功能有:上传(单个文件或批量文件),自动上传或点击按钮上传,上传前缩略图显示,判断文件格式,上传前的文件操作,上传时进度条显示等功能.如果你用 ...
最新文章
- mysql 基本操作(二)
- MySQL 之视图、 触发器、事务、存储过程、内置函数、流程控制、索引(二)
- 解决iPhone网络软件在睡眠情况断线问题
- db2和mysql性能优化_DB2数据库性能调优的十个办法
- 怎样在减少数据中心成本的同时不牺牲性能?
- Problem I: 函数---判断某年某月某日是这一年中的第几天
- navicate使用小技巧
- linux root密码激活,Linux - root初始密码设置
- MySQL 跳过权限校验
- php apache 404,如何从PHP显示默认的Apache 404
- C语言中如何使用system函数
- 移动机器人路径规划:人工势场法
- Ubuntu 环境搭建系列--ubuntu20.04 tftp服务搭建
- 金融:收益利率计算器
- 小科普:浏览器的神玩法,将开启万能版浏览器?
- java黄金分割点游戏_黄金点游戏(单机版)
- 回溯法之符号三角形问题
- 【上课课件整理复习】第六章 网页数据的采集(1)
- 如何使用Robostudio加载地图?
- 什么是微服务?微服务架构的优缺点、应用
热门文章
- 斯阔谷冬奥会首次使用计算机,1960年第八届美国斯阔谷冬奥会
- FASTJSON性能优化
- ​力扣解法汇总732-我的日程安排表 III
- mysql frm 英文全称_考frm是全英文?
- 巴菲特致股东的一封信:1985年
- 计算机电子信息工程可以做什么的,电子信息工程就业方向 毕业后可以做什么...
- p3000显卡 驱动 linux,NVIDIA Linux官方驱动2010年度回顾
- 计算机科学与技术外文译文,计算机科学与技术外文翻译.doc
- 非负随机变量的数学期望
- 一院与极飞科技开展合作交流