原文:Creating your first iOS Framework
假如你从前尝试过创立自己的 iOS 结构,你就会知道这并不合适胆怯的人 – 办理依靠联系和编写测验并不会让它变得简略。本教程将辅导你从头开始创立你的第一个 iOS 结构,这样你就能够出去创立自己的结构了。
咱们将创立一个结构,暴露一个名为 RGBUIColor(red:green:blue)
的函数,返回一个由这些值创立的新 UIColor
。咱们将运用 Swift 构建它,运用 Carthage 作为咱们的依靠办理器。咱们的结构将能够运用 Carthage、CocoaPods 或 git 子模块来消费。
让咱们开始吧!
设置 Xcode 项目
- 挑选 File → New → Project。
- 从左面的侧边栏挑选 “iOS → Framework & Library”,在右边挑选 “Cocoa Touch Library”。
- 点击 “Next” 并填写选项提示。保证挑选 “Include Unit Tests” 复选框。
- 挑选你想保存你的项目的当地。
- 取消勾选 “Create Git repository on My Mac”,咱们稍后会手动设置它。
- 点击 “Create”,该项目将在 Xcode 中翻开。
- 进入 “File → Save As Workspace”,将其保存在与 Xcode 项目相同的目录下,并运用相同的名称。咱们把项目放在一个作业区,由于咱们将把 Carthage 的依靠性作为子模块参加;它们必须在一个作业区,以便 Xcode 构建它们。
- 用 File → Close Project 关闭 Xcode 项目。
- 用 File → Open 翻开 workspace。
- 点击 Xcode 左上方的 scheme,挑选 “Manage Schemes”。咱们需求将咱们的计划标记为 “同享”,这样该项目就能够用 Carthage 来构建。
- 找到 “RGB” 计划并勾选 “同享” 复选框,然后点击 “关闭”。
让咱们跳转到 Terminal。
初始化 Git
首先,导航到你保存项目的目录。
- 运转
git init
来初始化一个空库房。 - 创立一个
.gitignore
文件,它将阻挠一些讨厌的 Xcode 和依靠性文件,咱们不想在 git 中盯梢。 - 这里有一个用于 Swift 项目的 标准 .gitignore 文件模版,并做了一些修正。咱们增加了
.DS_Store
并删除了 fastlane 和额外的注释。
## OS X Finder
.DS_Store
## Build generated
build/
DerivedData
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint
## Obj-C/Swift specific
*.hmap
*.ipa
# Swift Package Manager
.build/
# Carthage
Carthage/Build
增加 Carthage 和依靠联系
- 在你的项目目录下创立一个名为 Cartfile 的文件,并将运转时的依靠联系参加其中。咱们将增加 Curry。
github "thoughtbot/Curry"
github "Quick/Quick"github "Quick/Nimble"
- 创立一个
bin/setup
脚本。它是用来给咱们的贡献者(和咱们)一个简略的方法来设置项目和依靠联系。
mkdir bintouch bin/setupchmod +x bin/setup
- 翻开
bin/setup
,并填入以下内容。
#!/usr/bin/env sh
if ! command -v carthage > /dev/null; then
printf 'Carthage is not installed.n'
printf 'See https://github.com/Carthage/Carthage for install instructions.n'
exit 1
fi
carthage update --platform iOS --use-submodules --no-use-binaries
在这个脚本中,咱们保证用户现已装置了 Carthage,并运转其更新命令来装置 iOS 的依靠项。
咱们运用 --use-submodules
,这样咱们的依靠就会作为子模块参加。这允许用户在 Carthage 之外运用咱们的结构,假如他们乐意的话。咱们运用 --no-use-binaries
,这样咱们的依靠项就会在咱们的体系上构建。
创立了 bin/setup
后,让咱们运转它,这样 Carthage 就会下载咱们的依靠项。
- 在终端,运转
bin/setup
。
现在咱们需求设置咱们的项目来构建和链接新的依靠项。
将依靠项增加到作业区
由于咱们的依靠项是子模块,咱们需求将它们增加到咱们的作业空间。
- 翻开
Carthage/Checkouts
,将每个依靠项的.xcodeproj 增加到作业区的根部。它们能够从 Finder 拖到 Xcode 项目的导航器中。
当你完成后,它应该看起来像:
链接运转时的依靠性
- 在导航器中挑选 “RGB”,在中心的侧边栏中挑选 “RGB” 方针,挑选 “构建阶段” 标签并展开 “用库链接二进制” 部分。
- 点击 “+” 图标,挑选 Curry-iOS 方针中的 Curry.framework。
- 点击 “Add”。
链接开发依靠性
- 从中心的侧边栏挑选 “RGBTests” 方针。
- 运用与之前相同的进程,将 Quick 和 Nimble 结构增加到此方针的 “与库链接二进制” 部分。
- 当增加依靠联系到每个方针时,Xcode 将主动把它们增加到 “构建设置” 标签下的 “结构查找途径” 中。咱们能够从 “RGB” 和 “RGBTests” 方针中删除这些,由于 Xcode 将它们视为隐含的依靠联系,由于它们在同一个作业区。
- 挑选方针,找到 “结构查找途径” 设置,将其突出显现,并按键盘上的 “退格” 键。
- 接下来,在导航器中查看 “RGB” 项目;你会看到在根层有三个新结构。为了保持这个区域的有序性,突出显现一切三个,右击并挑选 “从挑选中新建组”,将它们放在一个命名的组中。我把我的称为 “结构”。
现在 Carthage 现已设置好了,让咱们来增加 CocoaPods。
增加 CocoaPods 支持
…