IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 教你一步一步开发iOS私有SDK 到并上传到cocoapods -> 正文阅读

[移动开发]教你一步一步开发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 frameworks
    use_frameworks!
    # Demo工程依赖的第三方, 如果和SDK依赖的一致, 则Pod install的只会安装一份
    pod 'SVProgressHUD'
    pod 'AFNetworking'

end

target 'MySDK' do
    #需要添加SDK路径,
    project './MySDK/MySDK.xcodeproj'
    # MySDK依赖 SVProgressHUD 和 AFNetworking
    pod '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实现
    DESC
    s.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地址

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章           查看所有文章
加:2022-03-24 00:42:07  更:2022-03-24 00:45:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/20 18:40:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码