创建并跑通第一个 App
按截图走完 New Project → 模板 → 选项 → Create → 模拟器。
01新建工程
菜单 File → New → Project…(⇧⌘N),或欢迎窗点 Create New Project。不要点 File from Template(那是加单个文件)。
① File → New · ② 子菜单里选 Project…(⇧⌘N)。点图可放大。
顶部选 iOS → Application 里选 App(蓝框)→ 右下角 Next。其它模板先别管。
① Product Name · ② Team · ③ Organization Identifier(下方 Bundle ID 自动生成)· ④ Interface=SwiftUI · ⑤ Language=Swift · ⑥ Testing=None · ⑦ Storage=None · ⑧ Next。点图可放大。
① 选保存文件夹 · ② 勾选 Create Git(推荐)· ③ Add to 保持 Don’t add… · ④ Group 可灰 · ⑤ 需要时可 New Folder · ⑥ 显隐选项 · ⑦ Create。点图可放大。
| 编号 | 字段 | 建议 |
|---|---|---|
| ① | Product Name | 英文开头,如 HelloWorld / HelloIOS(会进 Bundle ID) |
| ② | Team | 选你的 Apple ID(Personal Team 即可练手) |
| ③ | Organization Identifier | 反域名,如 com.yourname;下面 Bundle ID 会自动拼好 |
| ④ | Interface | 选 SwiftUI(本教程路线) |
| ⑤ | Language | Swift |
| ⑥ | Testing System | 新手选 None |
| ⑦ | Storage | None;CloudKit 先别勾 |
| ⑧ | Next | 进入选目录对话框 |
| 保存页 | 项 | 建议 |
|---|---|---|
| ① | 保存位置 | 选一个空目录或专用练习文件夹 |
| ② | Create Git repository | 建议勾选,方便以后对照改动 |
| ③④ | Add to / Group | 保持 Don’t add to any project or workspace(见下说明) |
| ⑦ | Create | 点完就生成工程并打开 |
.xcodeproj,不挂进别的工程/工作区。
下拉里若出现其它名字(例如已打开的 HelloIOS、某个 .xcworkspace),选中等于把新工程嵌进那个容器——适合多 App 共用一个 Workspace 的进阶场景。
新手练手请保持 Don’t add,避免和现有教程工程文件缠在一起;此时 Group 可忽略(只有 Add to 选了已有工程时才有意义)。
Add to 保持 Don’t add…;Create Git 建议勾上。点图可放大。
02模板生成了什么
Create 之后会自动打开工程。先认左侧文件树和中间/右侧预览,别被吓到。
左:工程文件树 · 中:ContentView.swift · 右:Canvas 已显示 Hello, world!。点图可放大。
HelloWorldApp.swift
带 @main 的入口(名字随 Product Name 变,也可能是 HelloIOSApp.swift),相当于「程序从哪启动」。
ContentView.swift
你第一个界面。新手 90% 的时间改这里;右侧 Canvas 会跟着刷新。
Assets.xcassets 放图标和图片资源,此刻先不用管。import SwiftUI
@main
struct HelloWorldApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
03跑到模拟器
工具栏选一台 iPhone 模拟器 → 点 ▶ 或按 ⌘R。成功后会弹出模拟器窗口。
模拟器(如 iPhone 17 Pro)里出现地球图标和文案,即表示 Run 成功。点图可放大。
04改一行字验证闭环
打开 ContentView.swift,把 Text 改成自己的句子;Canvas 会跟着变(或再按 ⌘R 进模拟器确认)。
把 Text("Hello, world!") 改成 Text("你好,iOS") 后,右侧预览同步更新。点图可放大。
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
Text("你好,iOS")
}
.padding()
}
}