Swift 环境搭建
Swift是一门开源的编程语言,该语言用于开发 OS X和 iOS 应用程序。
在正式开发应用程序前,我们需要搭建 Swift 开发环境,以便更好友好的使用各种开发工具和语言进行快速应用开发。由于Swift开发环境需要在 OS X系统中运行,因此其环境的搭建将不同于 Windows 环境,下面就一起来学习一下swift开发环境的搭建方法。
成功搭建swift开发环境的前提:
- 必须拥有一台苹果电脑。因为集成开发环境 XCode 只能运行在 OS X 系统上。
- 电脑系统必须在 OS 10.9.3 及以上。
- 电脑必须安装 Xcode 集成开发环境。
安装 Xcode 16
在 macOS 上开发 Apple 平台应用,Xcode 是官方唯一的完整 IDE。
打开 App Store 搜索 Xcode 安装,或者到 developer.apple.com/xcode 下载安装包。
下载完成后,双击下载的 dmg 文件安装,安装完成后我们将 Xcode 图标移动到应用文件夹。
你也可以在 App Store 中搜索 xcode 安装,如下图所示:
Xcode 16 自带的 Swift 编译器是 6.x,支持 Swift 6 语言模式,也向下兼容 Swift 5 模式。
安装完成后第一次启动需要同意许可协议并安装额外组件,这一步会占用几分钟。
验证是否安装成功,在终端执行:
$ swift --version swift-driver version: 1.148.6 Apple Swift version 6.3.3 (swiftlang-6.3.3.1.3 clang-2100.1.1.101) Target: arm64-apple-macosx26.0
只要能看到 Apple Swift version 和对应的目标平台,就说明工具链已经可用。
注意:Xcode 的命令行工具需要单独激活一次。如果提示找不到 swift 命令,执行 xcode-select --install 安装命令行工具,再执行 sudo xcode-select -s /Applications/Xcode.app 指定路径。
第一个 Swift 程序
Xcode 安装完成后,我们就可以开始编写 Swift 代码了。
接下来我们在应用文件夹打开 Xcode,打开后在屏幕顶部选择 File => New => Playground。
接着 为 playground 设置一个名字并选择 iOS 平台。
Swift 的 playground 就像是一个可交互的文档,它是用来练手学swift的,写一句代码出一行结果(右侧),可以实时查看代码结果,是学习swift语言的利器!
以下是 Swift Playground 窗口默认的代码:
import UIKit var str = "Hello, playground"
如果你想创建 OS x 程序,需要导入 Cocoa 包 import Cocoa 代码如下所示:
import Cocoa var str = "Hello, playground"
以上程序载入后,会在Playground 窗口右侧显示程序执行结果:
Hello, playground
至此,你已经完成了第一个 Swift 程序的学习,恭喜你入门了。
创建第一个项目
1、打开 xcode 工具,选择 File => New => Project
2、我们选择一个"Single View Application",并点击"next",创建一个简单示例app应用。
3、接着我们输入项目名称(ProductName),公司名称(Organization Name),公司标识前缀名(Organization identifier) 还要选择开发语言(Language),选择设备(Devices)。
其中Language有两个选项:Objective-c和swift,因为我们是学习swift当然选择swift项了。 点击"Next"下一步。
4、选择存放的目录,如果要使用Git源代码管理,将勾上Source Control的create git repository on My Mac. 点击create创建项目。
5、项目创建后,默认生成了一个示例文件,可以看到swift将oc中的h和m文件合并成了一个文件(即swift后缀名文件). Main.storyboard相当于xib文件,有比xib更多的功能。
6、打开main.storyboard,默认看到一个简单的空白的应用界面,大小为平板界面大小。 如果开发都只需要开发兼容iphone手机的app,那么可以把Use Auto Layout的勾去掉(默认为勾上)。
7、弹出了一个对话框,让我们选择界面尺寸,iPhone 或 iPad。我们选择iPhone的尺寸。
8、可以看到,界面大小变为了手机iphone的宽度和高度。
大家可以记住界面相关的尺寸,方便以后布局计算位置:
![]()
9.我们为界面添加点内容,在右下方找到Text控件,将它拖入storyboard上,并双击写入文本"Hello World!"。
运行一下模拟器(command+R 快捷键或在菜单栏中选择 Product => Run)。
至此,我们的第一个Swift项目就完成了。
新建一个 SwiftUI 项目
Xcode 16 新建项目时默认推荐 SwiftUI,它是 Apple 目前主推的声明式 UI 框架。
启动 Xcode,选择 File → New → Project,在 iOS 页签下选择 App,然后按下面填写。
| 选项 | 建议值 | 说明 |
|---|---|---|
| Product Name | RunoobDemo | 项目名称,同时作为模块名 |
| Team | 个人账号或 None | 真机调试才必须选择 |
| Organization Identifier | com.runoob | 反向域名,用于生成 Bundle ID |
| Interface | SwiftUI | 另一个选项是 Storyboard |
| Language | Swift | 另一个选项是 Objective-C |
Interface 这一项决定项目用哪套 UI 框架,选错不会报错,但后续写法完全不同。
SwiftUI 用声明式的代码描述界面,界面随数据自动更新;Storyboard 用可视化拖拽加 XML 描述界面,再通过 IBOutlet 连接代码。
新项目建议选 SwiftUI,因为它是 Apple 当前的重点方向,新系统特性会优先在 SwiftUI 上提供。
创建完成后,Xcode 会自动生成 RunoobDemoApp.swift 和 ContentView.swift 两个文件。
点击左上角的运行按钮,或者按 Command + R,模拟器就会启动并显示默认界面。
使用 Playground
Playground 是最适合练习语法的工具,输入代码后右侧会实时显示结果,不需要手动编译运行。
在 Xcode 中选择 File → New → Playground,选择 Blank 模板,保存到本地即可。
输入一行 print("RUNOOB"),右侧结果栏会立刻显示 RUNOOB。
Playground 左侧还有两个特殊目录:
| 目录 | 作用 | 注意事项 |
|---|---|---|
| Sources | 存放辅助代码与自定义类型 | 这里的代码需要是 public 才能被主页调用 |
| Resources | 存放图片、JSON、音频等资源 | 用 Bundle.main 读取 |
Playground 也支持 import SwiftUI 后直接预览界面,适合快速试验 UI 效果。
注意:Playground 里顶层代码可以写表达式并自动显示结果,但用 swift 命令运行 .swift 文件时,普通表达式不会自动打印,必须显式调用 print。
命令行运行
不打开 Xcode 也能运行 Swift,这在验证一小段代码时最快。
先用任意编辑器新建文件 hello.swift:
实例
// 命令行程序的入口就是文件顶层的代码
let site = "RUNOOB"
print("Hello, \(site)!")
用 swift 命令直接运行源文件:
$ swift hello.swift Hello, RUNOOB!
swift 命令会把文件当脚本执行,适合快速验证,但每次都要重新编译,不适合大型项目。
用 swiftc 编译成可执行文件
如果想把代码编译成独立的二进制文件,用 swiftc。
$ swiftc hello.swift -o hello $ ./hello Hello, RUNOOB!
-o 指定输出文件名,生成的可执行文件可以直接分发给相同平台的其他机器。
编译出错时 swiftc 会给出精确到行列的错误信息,例如把字符串赋给 Int:
$ swiftc bad.swift bad.swift:1:14: error: cannot convert value of type 'String' to specified type 'Int'
用 swift repl 交互式输入
不带任何参数的 swift repl 会启动一个交互式环境,输入一行执行一行。
$ swift repl Welcome to Apple Swift version 6.3.3 (swiftlang-6.3.3.1.3 clang-2100.1.1.101). Type :help for assistance. 1> let site = "RUNOOB" site: String = "RUNOOB" 2> print(site) RUNOOB 3> :quit
REPL 会把表达式的值和推断出的类型一起打印出来,适合观察类型推断的结果。
输入 :quit 或者按 Control + D 退出。
Swift Package Manager 初体验
Swift Package Manager(简称 SwiftPM)是 Swift 官方的包管理与构建工具,Xcode 也内置了它。
新建一个可执行包,在空目录里执行:
$ swift package init --type executable Creating executable package: demo Creating Package.swift Creating .gitignore Creating Sources Creating Sources/demo/demo.swift Creating Tests/ Creating Tests/demoTests/ Creating Tests/demoTests/demoTests.swift
生成的目录结构是固定的,源文件必须放在 Sources 下,测试放在 Tests 下。
demo/
├── Package.swift
├── Sources/
│ └── demo/
│ └── demo.swift
└── Tests/
└── demoTests/
└── demoTests.swift
生成的 Package.swift 描述了包的名称、目标和语言模式:
实例
import PackageDescription
let package = Package(
name: "demo",
targets: [
// 可执行目标:编译后产生一个命令行程序
.executableTarget(
name: "demo"
),
// 测试目标:依赖主目标
.testTarget(
name: "demoTests",
dependencies: ["demo"]
),
],
// 使用 Swift 6 语言模式,开启严格并发检查
swiftLanguageModes: [.v6]
)
默认生成的入口文件用 @main 标注结构体,这是 SwiftPM 可执行目标的推荐写法:
实例
@main
struct demo {
static func main() {
print("Hello, RUNOOB!")
}
}
用 swift run 编译并运行:
$ swift run Build of product 'demo' complete! (13.94s) Hello, RUNOOB!
常用的三个命令是 swift build 只编译、swift run 编译并运行、swift test 运行测试。
Linux 与 Windows 上的 Swift
Swift 从 2015 年开源后逐步支持了 Linux 与 Windows,官方提供预编译工具链。
到 swift.org/install 可以下载各平台的安装包。
| 平台 | 安装方式 | 说明 |
|---|---|---|
| Ubuntu | 官方 tarball 或 apt 源 | 支持最完整的 Linux 发行版 |
| 其他 Linux | 官方 tarball | 需要自行安装依赖库 |
| Windows | 官方安装程序 | 需要 Visual Studio 组件支持 |
Linux 和 Windows 上没有 Xcode,也没有 UIKit、SwiftUI 这些 Apple 平台框架。
但 Foundation、SwiftPM、async/await 这些核心能力都能正常使用,所以写服务端程序和命令行工具完全没问题。
注意:在 Linux 上 Foundation 由 swift-corelibs-foundation 实现,个别 API 与 Apple 平台存在差异,跨平台项目要避免依赖 Apple 专属的类型。
常见问题
下面整理环境搭建阶段最常遇到的几个问题。
提示 command not found: swift
说明命令行工具没有装好或路径没指定,执行 xcode-select --install 安装,再执行 sudo xcode-select -s /Applications/Xcode.app 指向正确的 Xcode。
swift 命令每次都要重新编译,能直接执行吗
用 swiftc 编译出可执行文件后,加上执行权限就能直接运行,也可以在脚本第一行写 #!/usr/bin/swift 把它当脚本执行。
Xcode 下载太慢怎么办
可以在 developer.apple.com/download/all 下载 xip 安装包,用下载工具加速,再手动安装。
Playground 一直转圈不出结果
通常是 Playground 卡在编译中,按 Command + B 手动触发一次构建,或者关闭后重新打开。
能否只装命令行工具而不装完整 Xcode
可以,xcode-select --install 会安装 Command Line Tools,里面包含 swift 与 swiftc,足以学习语法和写命令行程序,但没有 IDE 和模拟器。
