要運行設備之前先選擇好設備
Product---->Destination---->選擇設備
首次運行手機提示
如出現 “未受信任的企業級開發者”
→ 手機打開 設置 ? 通用 ? VPN與設備管理 → 信任你的 Apple ID 即可
ContentView
是 SwiftUI 項目里 最頂層、最主界面 的那個“頁面”,相當于:
Flutter 的
MyApp()
或MaterialApp(home: …)
Android 的
MainActivity
Web 的
index.html
? 一句話理解:
ContentView
就是你 App 打開后第一眼看到的界面。
🏗? 它長什么樣?
新建 SwiftUI 項目時,Xcode 會自動生成下面這個文件:
// ContentView.swift
import SwiftUIstruct 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
里:
@main
struct MyFirstApp: App {var body: some Scene {WindowGroup {ContentView() // ← 這里決定啟動時顯示誰}}
}
🛠? 想改界面?
直接改 ContentView.swift
里的 body
就行。比如:
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 名稱
<key>CFBundleDisplayName</key>
<string>新名字</string>
想訪問相機必須加
<key>NSCameraUsageDescription</key>
<string>拍照用于頭像上傳</string>
Flutter 項目網絡白名單
<key>NSAppTransportSecurity</key>
<dict><key>NSAllowsArbitraryLoads</key><true/>
</dict>
123