iOS App 开发攻略

安装 Xcode

App Store 安装即可

创建项目

创建 iOS 类型 App,选 SwiftUI 格式。输入项目名称,会在选中目录下创建两个与项目同名嵌套文件夹。

复制代码
.
├── StudyTakesTwo
    ├── StudyTakesTwo
    │   ├── Assets.xcassets
    │   ├── ContentView.swift
    │   └── StudyTakesTwoApp.swift
    └── StudyTakesTwo.xcodeproj
        ├── project.pbxproj
        ├── project.xcworkspace
        ├── xcshareddata
        └── xcuserdata
  • ContentView.swift:页面视图
  • StudyTakesTwoApp.swift:启动入口,会自动在项目名称后面加上 App
  • Assets.xcassets:App 的资源管理中心(图片、颜色、图标),包括:定义 App 在手机桌面显示的图标、SwiftUI 默认使用的主题色
  • StudyTakesTwo.xcodeproj:Xcode 工程配置文件(一个 bundle 包目录,在访达中被合并成了一个文件,需要 右键 → 显示包内容 打开),告诉 Xcode:这个项目有哪些源代码、怎么编译、生成什么 App、用什么 Bundle ID、Target、Build Settings
    • project.pbxproj:最核心,记录了哪些 .swift 文件属于这个 App、哪些资源文件要被打包、Target / Scheme / Build Phases、编译选项(Swift 版本、iOS 最低版本)
    • xcuserdata/:用户私有

正确的 .gitignore 文件:

复制代码
# Xcode
DerivedData/
*.xcuserstate
*.xcuserdata
*.xcscheme
xcuserdata/
xcshareddata/

# macOS
.DS_Store

.xcodeproj 需要被提交

编译运行

点击 Run 或者左边小三角或者 Command + R 运行

会调出模拟机运行软件

可能遇到的问题

需要同时模拟 2 台手机

选中手机后,打开新的 Simulator

修改 Info.plist

Information Property List(Info.plist)是描述应用身份、能力和权限的系统级配置清单,系统在启动和运行应用时会严格按照它来执行。

Xcode 在某个版本后把 Info.plist 从文件目录中移除,现在需要在 UI 里面配置。

在这里面点击右键添加或者选中某一项点击加号添加即可,新添加的值除了在 Custom iOS Target Properties,还会出现在:

  1. 项目目录自动生成的一个 Info.plist 文件中

需选择 "Open As" -> "Source Code",以查看和编辑原始 XML 代码:

出现如下代码:

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
</dict>
</plist>
  1. 出现在 TARGETS - Build Settings 的 Info.plist Values 中

注:

如果未来删除掉目录的 Info.plist,要把 Build Settings - Info.plist File 删掉为空,否则会因为找不到 Info.plist 而编译失败。

在真机上测试

由于加入开发者计划 699 每年才能在 App Store 上架自己 App,故先在本机上测试

步骤:

  1. 连接电脑和手机
  2. 在 Product - Destination 中把设备选为自己手机
  3. 运行,会提示手机尚未开启开发者模式
  4. 在手机设置 - 隐私与安全性中打开开发者模式
  5. 重新编译运行,软件成功安装到手机

可能遇到的问题

编译版本与手机 iOS 版本不匹配

我下载的是 Xcode 26,手机版本是 iOS 18。系统提示要么手机升级,要么 Xcode 降级。但其实不用重装 Xcode 版本。可以直接在 Xcode 中设置部署版本。

方法一:

方法二:

两个地方修改了一个另一个也会同步修改

附录

Product 菜单讲解

Run

编译并运行 App

Test

运行单元/UI 测试

Profile

性能分析(耗时、内存)

Analyze

静态代码分析

Archive

打包发布用,生成一个正式安装包(.ipa)

Build

只编译,不运行

Clean Builder Folder

清空编译缓存

Build Document

生成代码文档

Destination

运行环境(Simulator 或真机)

Scheme

编译 & 运行方案

Scheme 勾不勾选 Shared 区别

不勾选:

Scheme 只存在于自己电脑上,是自己本地用的启动方案,位置:StudyTakesTwo.xcodeproj/xcuserdata/你的用户名.xcuserdatad/xcschemes/,不会被 Git 提交

勾选:

Scheme 变成"项目公共 Scheme",是这个项目官方的启动方案,位置:StudyTakesTwo.xcodeproj/xcshareddata/xcschemes/,会被 Git 提交,其他人打开后就能 Run,不用新建 Scheme

Developer Tool 工具说明

Instruments

性能 / 内存 / 卡顿分析工具

Simulator

iPhone 模拟器

Icon Composer

制作 App 图标

Reality Composer Pro

AR / 空间计算内容编辑器

Accessibility Inspector

无障碍检查工具

FileMerge

文件对比工具

Create ML

训练机器学习模型

参考

相关推荐
懋学的前端攻城狮11 小时前
iOS 列表性能优化实战:从 45fps 到 60fps 的蜕变
ios·性能优化·ui kit
斯班奇的好朋友阿法法12 小时前
鸿蒙 vs iOS vs 微信小程序:开发平台全面对比
ios·微信小程序·harmonyos
@大迁世界1 天前
14个你现在必须关闭的 iOS 26 设置,不然手机很快被它榨干
macos·ios·智能手机·objective-c·cocoa
YJlio1 天前
10.2.8 以其他账户运行服务(Running services in alternate accounts):为什么“把服务切到某个用户账号下运行”,本质上是在改变服务的整个安全上下文?
python·安全·ios·机器人·django·iphone·7-zip
pop_xiaoli2 天前
【iOS】KVC与KVO
笔记·macos·ios·objective-c·cocoa
90后的晨仔2 天前
《swiftUI进阶 第10章:现代状态管理(iOS 17+)》
ios
商业模式分析阿澄2 天前
【无标题】
软件开发·商业模式·电商运营·链动1+1·链动2+1·链动3+1·电商模式
sakiko_2 天前
UIKit学习笔记4-使用UITableView制作滚动视图
笔记·学习·ios·swift·uikit
启效云2 天前
启效云战略升级:本体论落地 AI 原生应用智能体,打造中国版 Palantir 数字基座
人工智能·低代码·软件开发·低代码开发·零码化编辑器
小锋学长生活大爆炸2 天前
【开源软件】这次iPhone也是用上Claw了 | PhoneClaw
ios·开源软件·iphone·claw