要运行设备之前先选择好设备
Product---->Destination---->选择设备
首次运行手机提示
如出现 "未受信任的企业级开发者"
→ 手机打开 设置 ▸ 通用 ▸ VPN与设备管理 → 信任你的 Apple ID 即可
ContentView
是 SwiftUI 项目 里 最顶层、最主界面 的那个"页面",相当于:
-
Flutter 的
MyApp()
或MaterialApp(home: ...)
-
Android 的
MainActivity
-
Web 的
index.html
✅ 一句话理解:
ContentView
就是你 App 打开后第一眼看到的界面。
🏗️ 它长什么样?
新建 SwiftUI 项目时,Xcode 会自动生成下面这个文件:
Swift
// ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
}
.padding()
}
}
-
struct ContentView: View
→ 声明这是一个视图(界面)。 -
body
→ 描述界面的内容(文字、图片、按钮等)。 -
默认显示一个地球图标 + "Hello, world!" 文字。
🧩 它在哪被用到?
在 YourAppNameApp.swift
里:
Swift
@main
struct MyFirstApp: App {
var body: some Scene {
WindowGroup {
ContentView() // ← 这里决定启动时显示谁
}
}
}
🛠️ 想改界面?
直接改 ContentView.swift
里的 body
就行。比如:
Swift
Text("Hello, world!")
.font(.largeTitle)
.foregroundColor(.red)
保存后按 ⌘R 跑真机,手机界面立即更新。
✅ 总结一句话:
ContentView
就是 SwiftUI App 的"首页",你所有界面都从它开始。
Info.plist 是 iOS App 的"身份证+使用说明书",告诉系统"我是谁、能干嘛、需要什么权限"。
-
在 Xcode 左侧导航栏找到
Info.plist
→ 双击即可图形化编辑 -
或在 Flutter 项目:
ios/Runner/Info.plist
用 VS Code / Xcode 改都行 -
改完 ⌘S 保存 → ⌘R 重新跑真机即刻生效
类别 | 举例字段 | 作用 |
---|---|---|
身份识别 | CFBundleIdentifier (Bundle ID) |
App 的唯一包名,如 com.mycompany.myapp |
展示信息 | CFBundleDisplayName |
桌面图标下方的名字 |
版本号 | CFBundleShortVersionString |
App Store 向用户显示的版本(如 1.2.3) |
权限弹窗文案 | NSCameraUsageDescription |
首次调用相机时,系统弹出的提示文字 |
系统能力开关 | UIRequiredDeviceCapabilities |
声明必须支持的功能(如需要陀螺仪、ARKit 等) |
🛠️ 常见场景示例
想改 App 名称
Swift
<key>CFBundleDisplayName</key>
<string>新名字</string>
想访问相机必须加
Swift
<key>NSCameraUsageDescription</key>
<string>拍照用于头像上传</string>
Flutter 项目网络白名单
Swift
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
123