原文: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” 复选框。

创立你的第一个iOS结构

  • 挑选你想保存你的项目的当地。
  • 取消勾选 “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” 计划并勾选 “同享” 复选框,然后点击 “关闭”。

创立你的第一个iOS结构

让咱们跳转到 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"
  • 创立一个 Cartfile.private。它将容纳像咱们的测验结构一样的私有依靠。咱们将运用 QuickNimble
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 项目的导航器中。

当你完成后,它应该看起来像:

创立你的第一个iOS结构

链接运转时的依靠性

  • 在导航器中挑选 “RGB”,在中心的侧边栏中挑选 “RGB” 方针,挑选 “构建阶段” 标签并展开 “用库链接二进制” 部分。
  • 点击 “+” 图标,挑选 Curry-iOS 方针中的 Curry.framework。
  • 点击 “Add”。

创立你的第一个iOS结构

链接开发依靠性

  • 从中心的侧边栏挑选 “RGBTests” 方针。
  • 运用与之前相同的进程,将 Quick 和 Nimble 结构增加到此方针的 “与库链接二进制” 部分。
  • 当增加依靠联系到每个方针时,Xcode 将主动把它们增加到 “构建设置” 标签下的 “结构查找途径” 中。咱们能够从 “RGB” 和 “RGBTests” 方针中删除这些,由于 Xcode 将它们视为隐含的依靠联系,由于它们在同一个作业区。
  • 挑选方针,找到 “结构查找途径” 设置,将其突出显现,并按键盘上的 “退格” 键。

创立你的第一个iOS结构

  • 接下来,在导航器中查看 “RGB” 项目;你会看到在根层有三个新结构。为了保持这个区域的有序性,突出显现一切三个,右击并挑选 “从挑选中新建组”,将它们放在一个命名的组中。我把我的称为 “结构”。

现在 Carthage 现已设置好了,让咱们来增加 CocoaPods。

增加 CocoaPods 支持