教你一步一步开发iOS私有SDK 到并上传到cocoapods

教你一步一步开发iOS私有SDK 到并上传到cocoapods,第1张

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工程中编写需求代码 在MySDK目录下创建一个Hud类进行测试
#import "Hud.h"
#import 
@implementation Hud
- (void)showToast:(NSString *)msg {
    [SVProgressHUD showInfoWithStatus:msg];
}
@end
拖进需要暴露的头文件
在MySDK.h中引入你的Hud#import
在demo中使用
#import 

[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地址

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/990806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存