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

训练机器学习模型

参考

相关推荐
黑科技iOS上架13 小时前
ReactNative入门介绍
经验分享·ios
智塑未来14 小时前
鸿蒙系统对比安卓、iOS,核心优势是什么?
android·ios·harmonyos
初雪云15 小时前
iOS 上架入门:证书、描述文件、IPA 上传到底是什么关系?
android·ios·自动化·产品经理·iphone
狂热开发者18 小时前
用 Typeoff 把会后口述整理成 Markdown 决策记录
人工智能·windows·macos·ios·安卓
2501_9159184120 小时前
PerfDog 太贵?iOS 性能监控工具的功能对比与选择
android·ios·小程序·https·uni-app·iphone·webview
带娃的IT创业者1 天前
深度解析:当 .NET 遇上 AI Agent,dotnet/skills 如何重塑软件开发方法论
人工智能·大模型·.net·软件开发·ai agent·dotnet/skills
MDM.Plus2 天前
苹果MDM技术演进:从远程控制到设备信任体系的构建
运维·服务器·安全·ios·mdm·手机店
韩曙亮2 天前
【Flutter】Flutter 进程保活 ③ ( 屏幕常亮设置 | Flutter 禁止息屏、关闭自动锁屏、屏蔽系统屏保 )
android·flutter·ios·屏幕常亮·禁止息屏
2501_915909062 天前
IPA 深度混淆是什么意思?从混淆强度到实际效果的解读
android·ios·小程序·https·uni-app·iphone·webview
灯澜忆梦2 天前
GO_函数_2
开发语言·golang·xcode