本文主要介绍Swift控件发布流程。下文会以一个Mac OS渐变色的NSView控件为例进行介绍。
一、查找重名
放在第一步,因为有时候做到最后即将发布的时候才发现自己控件名字和别人家已发布的重名了,不得不修改一遍控件名。因此建议大家做之前先想好名字并且到CocoaPods的官网查找是否会重名:https://cocoapods.org
以本文为例,计划命名为:“NSGradientView”,查找后发现没有重复的,很棒。
二、新建项目
兴建一个项目“NSGradientView”并在过程中选择Target类型为macOS下的为=:“Cocoa Touch Framework”,iOS项目建议选 “Cocoa Touch Framework”:

完成后可以看到新建项目结构:

三、编写控件Swift代码
新建Swift文件,将控件代码编入其中,但要注意调整一下几点:
- 所有为外部访问的Class、Struct、Enum和函数都需要加上
open
或public
关键词 - 声明变量可选择前加
@IBInspectable
关键词,加入后相关内容可在xib控制面板中渲染
完成后结构如下:

四、新建Demo Target
接下来需要新建Demo,展示控件效果。新建Cocoa App的Mac OS Target,并写入Demo代码即可。需要注意的是,需要将Demo项目加入源文件中的Class定义文件的Target Membership中,否则访问不到。
随后编写Demo文件,写好之后选择运行target为Demo Target,随后试运行,如果成功即可。

五、创建描述文件
- 新建.podspec描述文件:
pod spec create NSGradientView
- 修改描述文件:
Pod::Spec.new do |s|
s.name = "NSGradientView"
s.version = "0.0.1"
s.summary = "NSView with gradient colors"
s.homepage = "https://github.com/rallets-network/NSGradientView"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "Jiawei Li" => "c@rallets.com" }
s.source = { :git => "https://github.com/rallets-network/NSGradientView.git", :tag => "#{s.version}" }
s.source_files = "NSGradientView/NSGradientView.{swift}"
s.requires_arc = true
s.platform = :osx, '10.9'
s.swift_version= '4.2'
end
其中内容如下:
- name: 包名
- version:版本号
- summary: 简介
- homepage: 项目主页
- license:协议
- author: 作者及邮箱
- source:代码托管地址
- source_files:控件源文件地址
- platform:平台及版本号
- swift_version:swift版本号
代码托管托送
- 新建github repo,把代码传上去,本例的github地址:https://github.com/rallets-network/NSGradientView/tree/master
- 添加version tag:
git tag '0.0.1'
git push --tag
- 添加一些Readme.md的内容方便他人使用
发布到CocoaPods:
最后我们需要把代码上传CocoaPods上
- 注册cocoapods:
pod trunk register '邮箱' '用户名'
- 校验
pod spec lint NSGradientView.podspec --allow-warnings
- 上传:
pod trunk push NSGradientView.podspec --allow-warnings
第一次上传时提示校验失败,原来cocoapods会发确认邮件到刚才register的邮箱。打开邮箱的垃圾箱,找到邮件验证后即可上传成功:

自此,此次发布成功!
网友评论