在Swift怎样创建CocoaPod
原文链接:How to Create a CocoaPod in Swift 在制作这个美味的冰淇凌中的教程中学会如何使用自己的CocoaPod 你可能熟悉一些众所周知的东西,开源的open-source 幸运的是创建自己的CocoaPods很容易。 如果你已经针对你的元件创建一个Cocoa Touch框架,那么你已经完成了大部分困难的工作。如果你没有创建过,不要惊慌,因为他确实很简单。 如果你仅仅是创建了IOS应用的一部分,那也是ok的。你可以很轻松的创建一些新的pod用于特殊环境下使用的推送类和功能。 本教程以How to Use CocoaPods with 开始你的顶级客户是一个冰淇凌店,他们的冰淇凌是如此的受欢迎,他们的柜台跟不上客户的订单。他们需要创建一个简洁的IOS应用。让用户使用他们的Phone订购冰淇凌。你将开始开发这个应用程序。 从这下载这个开始的项目 这是How to Use CocoaPods with 这个应用有一些pod开发包已经包含在下载中,所以你不需要运行pod install去安装他们。 打开IceCreamShop.xcworkspace然后点击Main.storyboard,在ViewsStoryboards & Nibs看看这个应用是如何布局的。 下面是快速Choose Your Flavor的应用场景,核心功能如下
这个冰淇凌店的老板非常喜欢这个应用程序,但他们又添加了一个新的要求:在他们的应用程序中需要有相同的口味风格选择。 等等,那不是最初的设计,但是,应该没有问题的对于一个NB的开发者来说。 你能猜猜这个功能是怎么做的吗?是的,你讲把这个功能集成到你自己的CocoaPod!。 建立你自己的Pod创建一个新的Xcode项目并且选择*iOSFramework & LibraryCocoa  CocoaPods and Git自从CocoaPods傻瓜式引导,每一个pod将需要有他自己的git仓库。如果你已经有一个首选的git托管,好的,你可以用它来作为你的仓库。 如果没有,GitHub是一个很好的的选择因为它是众所周知的开发平台,与很多自由的开源项目。 这个教程使用GitHub,但你也可以使用你的git仓库。 GitHub设置First,Sign up or 首先创建或登陆你的GitHub账户。 下一步,点击顶部右侧+ (create new)图标并且选择 New repository展示如下: 进入RWPickFlavor仓库,并且选择Create repository Github将创建一个新的仓库在你的账户下。然后你会看到下面的屏幕与一个快速设置,现实您储存的仓库网址。 所以距离打开到现在你需要这个URL在短短的一瞬间。 现在你需要第二个仓库涌来存放你所有私有的pod,你将在本教程中使用。 打开github.com在你个新的栏目。再一次点击Create new图标,并且选择New repository。仓库名为RWPodSpecs,并且选择Create repository 离开这个标签,这样当你需要使用它的时候很简单去使用了。 Podspec 设置现在你需要创建RWPickFlavor.podspec文件对于RWPickFlavor,Podspec包含基础信息,尤其是pod的名字,版本和Git下载的URL 在终端输入以下命令。 cd ~/Documents/Libraries/RWPickFlavor
pod spec create RWPickFlavor
open -a Xcode RWPickFlavor.podspec
这是创建的RWPickFlavor.podspec并且打开它在Xcode 默认情况下有很多优秀的例子和文档,然而你并不需要大部分的他们。 以下RWPickFlavor.podspec代替了一切。 Pod::Spec.new do |s|
# 1
s.platform = :ios
s.ios.deployment_target = '8.0'
s.name = "RWPickFlavor"
s.summary = "RWPickFlavor lets a user select an ice cream flavor."
s.requires_arc = true
# 2
s.version = "0.1.0"
# 3
s.license = { :type => "MIT",:file => "LICENSE" }
# 4 - Replace with your name and e-mail address
s.author = { "[Your Name Goes Here]" => "[Your_Email@Your_Email_Domain.com]" }
# For example,
# s.author = { "Joshua Greene" => "jrg.developer@gmail.com" }
# 5 - Replace this URL with your own Github page's URL (from the address bar)
s.homepage = "[Your RWPickFlavor Homepage URL Goes Here]"
# For example,
# s.homepage = "https://github.com/JRG-Developer/RWPickFlavor"
# 6 - Replace this URL with your own Git URL from "Quick Setup"
s.source = { :git => "[Your RWPickFlavor Git URL Goes Here]",:tag => "#{s.version}"}
# For example,
# s.source = { :git => "https://github.com/JRG-Developer/RWPickFlavor.git",:tag => "#{s.version}"}
# 7
s.framework = "UIKit"
s.dependency 'Alamofire','~> 1.1'
s.dependency 'MBProgressHUD','~> 0.9.0'
# 8
s.source_files = "RWPickFlavor/**/*.{swift}"
# 9
s.resources = "RWPickFlavor/**/*.{png,jpeg,jpg,storyboard,xib}"
end
就像一个Podfile,Podspec是用Ruby写的。要格外小心,不要做任何错误,否则将可能无法验证安装后是否成功. 这是发生了什么?
推送Git你终于准备推送RWPickFlavor pod GitHub主页 在终端输入以下命令, cd ~/Documents/Libraries/RWPickFlavor
git init
git add .
git commit -m "Initial commit"
git tag 0.1.0
git remote add origin [Your RWPickFlavor Git URL]
git push -u origin master --tags
然后跳出提示,输入你的用户名和密码到Github 这所有文件在RWPickFlavor目录中,创建一个新的0.1.0标签,并且推送你每一个东西到你的远程仓库 祝贺你,你已经创建你的第一个CocoaPod! 你已经创建了第一个CocoaPod,但是你能真正的使用吗?并不能很快使用。 你首先需要添加你的Podspec去私有的specs repo,当你尝试去安装它这让CocoaPods发现pod。 在终端输入以下命令,确保你仍在RWPickFlavor目录中。 pod repo add RWPodSpecs [Your RWPodSpecs Git URL]
pod repo push RWPodSpecs RWPickFlavor.podspec
这将创建一个本地引用 RWPodSpecs在你的机器上,并推送RWPickFlavor.podspec到它上。 你现在有一个私有的pod specs repo被建立!比你想象的容易,对吗? 使用你的新CocoaPod最后来使用你创建的pod 对于IceCreamShop打开Podfile,输入以下命令 platform :ios,'8.0'
source 'https://github.com/CocoaPods/Specs.git'
source '[Your RWPodSpecs Git URL Goes Here]'
use_frameworks!
target 'IceCreamShop' do
pod 'RWPickFlavor',:path => '~/Documents/Libraries/RWPickFlavor'
end
确保你替换的[Your RWPodSpecs Git URL Goes Here]*Git URL是你的 *RWPodSpecs repo 然后运行 最后,用下面的替换 import UIKit
import RWPickFlavor
@UIApplicationMain
class AppDelegate: UIResponder,UIApplicationDelegate {
var window: UIWindow?
var rootViewController: UIViewController!
func application(application: UIApplication,didFinishLaunchingWithOptions
launchOptions: [NSObject : AnyObject]?) -> Bool {
setupRootViewController()
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.rootViewController = rootViewController
window?.makeKeyAndVisible()
return true
}
func setupRootViewController() {
let bundle = NSBundle(forClass: PickFlavorViewController.self)
let storyboard = UIStoryboard(name: "Main",bundle: bundle)
rootViewController = storyboard.instantiateInitialViewController() as! UIViewController
}
}
在In 构建并且运行。你将看到你熟悉的“Choose Your Flavor”界面。 抽象所有事物如果你像我一样,你可能会想,“哇,App Delegate一定知道很多关于RWPickFlavor结构” 幸运的是,有一些事情你可以做来减少这种耦合性,使用BetterBaseClasses– a CocoaPod使其创建CocoaPods更容易 添加一下代码带你的RWPickFlavor,: pod 'BetterBaseClasses','~> 1.0'
同样添加到RWPickFlavor.podspec: s.dependency 'BetterBaseClasses','~> 1.0'
现在替换版本: s.version = "0.2.0"
在这里,你声明BetterBaseClasses作为一个关系,然后加入你的CocoaPod 现在你在终端运行pod install安装这个新的依赖关系。 接下来添加提取 import BetterBaseClasses
然后替换类的定义 public class PickFlavorViewController: BaseViewController,UICollectionViewDelegate {
这种 现在你需要推送这些改变到你的RWPickFlavor and*RWPodSpecs*仓库。运行以下命令 cd ~/Documents/Libraries/RWPickFlavor
git add .
git commit -m "Added BetterBaseClasses dependency"
git tag 0.2.0
git push origin master --tags
pod repo push RWPodSpecs RWPickFlavor.podspec
接下来你需要提交这些改变到你的IceCreamShop. 更新IceCreamShop Podfile,替换`pod ‘RWPickFlavor’, pod 'RWPickFlavor','~> 0.2.0
在这里更新Podfile请求的版本就是你刚刚推送的。 在终端执行 最后用以下内容替换AppDelegate.swift import UIKit
import RWPickFlavor
@UIApplicationMain
class AppDelegate: UIResponder,UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { window = UIWindow(frame: UIScreen.mainScreen().bounds) window?.rootViewController = UINavigationController(rootViewController: PickFlavorViewController.instanceFromStoryboard()) window?.makeKeyAndVisible() return true } }
这很简单 BetterBaseClasses添加到 构建并且运行,又一次,你应该看见了熟悉的界面“Choose Your Flavor” 何去何从?你能在这和这完成IceCreamShop project和RWPickFlavor pod工程的下载, 你现在开始准备制作自己的CocoaPods!然而,本教程谈到的CocoaPods知识冰山一角。 最后创建一个CocoaPod,你可能考虑添加CocoaPods Master Specs Repo,因此他将可能通过CocoaPods 关于本教程如果你有任何问题或评论,欢迎加入讨论 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |