关于xcode Project navigator/项目导航栏的一些说明

本文基于 xcode12.4 版本做说明

首先要明确一点,导航栏这里展示的并不是当前工程在电脑硬盘中的文件结构,它展示的是xxxxxx.xcodeproj/project.pbxproj文件(后文简.pbxproj文件)中的内容。我们在导航栏中的操作就是修改该文件,有些操作会修改原有的磁盘文件结构(新增/删除 文件等)。

导航栏中的文件夹图标有三种,分别是:

蓝色的文件夹图标

这种代表导航栏中的该文件夹是对磁盘上某个文件夹的引用,文件夹展开后,内容与磁盘上的文件结构一致。

在【该目录下】,不管是在导航栏中还是在直接在磁盘上增/删,都会同步到另外一边。而对【该目录本身】右键删除时可以选择,会弹出提示框:

  • 选择"remove Refrences",会将该文件从项目(.pbxproj文件)中移除,但是不会删除磁盘中的文件
  • 选择"move to Trash",会将该文件从项目(.pbxproj文件)中移除,并且将磁盘中的文件移动到废纸篓

如何添加:导航栏里右键 "add files to xxxxxx" 选项,会弹出一个对话框,勾选"create folder references",然后选择要添加的文件夹

PS:勾选 "copy items if needed" 选项后,当选择的文件夹不在项目目录下时,会将该文件夹复制过来。这个看需求,如果接入sdk,建议勾选该选项;如果只是想方便在xcode浏览工程目录外的项目其他文件不要勾选。

黄色文件夹图标(两种)

这种颜色代表的是 .pbxproj文件中的一个组(group)

先说普通的,这种组(group)对应着磁盘上的某个文件夹,这种组(group)是将选择的磁盘上的文件夹的目录结构遍历并记录在项目(.pbxproj文件)中,它与上边的蓝色文件夹非常类似,新增/移动文件都会操作对应磁盘文件,但该目录并不保证完全显示磁盘上对应目录的所有文件:

  • 【该目录下】的删除操作均也会弹出"remove Refrences"/"move to Trash"的选项,即可能出现某个文件在这里不显示但是还在磁盘上
  • 如果在磁盘上删除了某个文件/文件夹,但是项目(.pbxproj文件)中仍然保存了它的信息, 这种情况下在导航栏中该条目就会被标为红色

这种有两个方式添加,右键 "new group";或者右键 "add files to xxxxxx" 选项,会弹出一个对话框勾选"create group",然后选择要添加的文件夹:

接下来是带脚标的黄色文件夹图标 ,就是这种就是纯粹逻辑上的组(group)了,主要是为了组织导航栏中的层次结构, 磁盘上不会存在与之对应的文件夹,新建/移动到该组下的文件默认置于工程的根目录下, 可以通过 "new group without folder" 创建。

相关推荐
roman_日积跬步-终至千里4 小时前
【Go语言基础】基本语法
开发语言·golang·xcode
Daniel_Coder14 小时前
Xcode 16.4 + iOS 18 系统运行时崩溃:___cxa_current_primary_exception 符号丢失的原因与解决方案
ios·xcode·ios 18·dyld·libc++abi
LAOning111 天前
xcode 各版本真机调试包下载
ide·macos·xcode
豪冷啊1 天前
iOS UIActivityViewController 组头处理
ios·objective-c·xcode
白总Server2 天前
Golang 依赖注入:构建松耦合架构的关键技术
linux·运维·服务器·macos·架构·golang·xcode
一丝晨光5 天前
Windows搭建Swift语言编译环境?如何构建ObjC语言编译环境?Swift如何引入ObjC框架?Interface Builder的历史?
linux·windows·macos·ios·objective-c·xcode·swift
面壁者LOGIC5 天前
xcode 编译运行错误 Sandbox: rsync(29343) deny(1) file-write-create
macos·xcode
面壁者LOGIC5 天前
xcode卡死问题,无论打开什么程序xcode总是在转菊花,重启电脑,卸载重装都不行
macos·xcode
龙之吻5 天前
iOS 使用CocoaPods 添加Alamofire 提示错误的问题
ios·xcode·cocoapods
lcz-20006 天前
xcode 旧版本、历史版本下载
ide·macos·xcode