First things first, I would like to open a file or folder in xcode, I need to do the following:
open -a xcode <file/folder>
Now, that’s out of the way, I need to figure out what the hell xcode does on top of your existing project…
I see that a folder contains a .xcodeproj file? folder?.
I always get confused with that is or why is it ever required.
If we open it using vs code, it turns out that it’s a folder.
open -a Visual\ Studio\ Code <some>.xcodeproj
So, an xcodeproj folder is context managing folder for your xcode.
if you don’t use xcode to build and distribute your apps, then this is entirely not necessary.
All of my personal iOS and macOS apps I have built in the past have been done so using Xcode, so I simply can’t remove or drop the related .xcodeproj folder if I wanna keep the development and release flows same.
Inside a xcodeproj file, I found 3 more files and folders:
- Project.pbxproj
- xcsharedata folder
- project.xcworkspace
Project.pbxproj is a 1 file containing the config context on files, references & dependencies etc.
If this is wired wrongly, then when xcode builds your app for release, things could go wrong.
Project.pbxproj settings and config is responsible for how the files and folders are wired and show up in the xcode UI in our projects.
and finally, Project.xcworkspace inside .xcodeproj should never be tampered with.
It contains information for running your xcode workspace and mainly won’t contain changes to be commited to apps.
However, swift package manager lock files should be commited.
swiftpm/Package.resolved
this can change when adding or removing dependencies using swift package manager.
all this, for doing something that go.mod and go.sum files do.
for a novice, this seems like a declarative hell. honestly.
I really wish this isn’t normalized.
~ updated at: 2026-10-04T11:37:24.607Z

,
