# Xcode 16

Published articles for Xcode 16.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Stop Using Groups in Xcode

DevFeed: [Stop Using Groups in Xcode](<https://devfeed.tech/articles/stop-using-groups-in-xcode-29461.md>)

Original publisher: [Read original article](<https://medium.com/mobile-app-development-publication/stop-using-groups-in-xcode-9759abd85837?source=rss----f9c208bdbb09---4>)

Author: Elye - A Dev By Grace

Published: 2025-12-07T13:07:57Z

Content type: article

Language: en

Sources: [Mobile App Development Publication](<https://devfeed.tech/sources/mobile-app-development-publication-medium.md>)

Topics: [Xcode](<https://devfeed.tech/topics/xcode.md>), [legacy systems](<https://devfeed.tech/topics/legacy-systems.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [coding](<https://devfeed.tech/tags/coding.md>), [developers](<https://devfeed.tech/tags/developers.md>), [directory](<https://devfeed.tech/tags/directory.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [file](<https://devfeed.tech/tags/file.md>), [files](<https://devfeed.tech/tags/files.md>), [groups](<https://devfeed.tech/tags/groups.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [navigator](<https://devfeed.tech/tags/navigator.md>), [project](<https://devfeed.tech/tags/project.md>), [projects](<https://devfeed.tech/tags/projects.md>), [reference](<https://devfeed.tech/tags/reference.md>), [structure](<https://devfeed.tech/tags/structure.md>), [xcode](<https://devfeed.tech/tags/xcode.md>), [xcode-16](<https://devfeed.tech/tags/xcode-16.md>)

### AI overview

For projects created before Xcode 16, developers can manage files with either Groups or Folders; new projects use Folders by default. The excerpt says Groups let the structure shown in Xcode differ from the on-disk directory structure or reference files outside the project. It introduces Folders as displaying folders in the Project navigator, then recommends replacing Groups in legacy projects, but cuts off before explaining the seven reasons.

### Source excerpt

Seven Reasons Folders Are Better -- Especially for Legacy Projects Continue reading on Mobile App Development Publication "

## Format Swift with a Git Commit Hook

DevFeed: [Format Swift with a Git Commit Hook](<https://devfeed.tech/articles/format-swift-with-a-git-commit-hook-21085.md>)

Original publisher: [Read original article](<https://useyourloaf.com/blog/format-swift-with-a-git-commit-hook/>)

Author: Keith Harrison

Published: 2025-11-24T10:29:58Z

Content type: tutorial

Language: en

Sources: [K. Harrison](<https://devfeed.tech/sources/k-harrison.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Git](<https://devfeed.tech/topics/git.md>), [hooks](<https://devfeed.tech/topics/hooks.md>), [software-development](<https://devfeed.tech/topics/software-development.md>)

Tags: [actions](<https://devfeed.tech/tags/actions.md>), [auto-layout](<https://devfeed.tech/tags/auto-layout.md>), [automatically](<https://devfeed.tech/tags/automatically.md>), [changes](<https://devfeed.tech/tags/changes.md>), [code](<https://devfeed.tech/tags/code.md>), [code-style](<https://devfeed.tech/tags/code-style.md>), [commit](<https://devfeed.tech/tags/commit.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [configure](<https://devfeed.tech/tags/configure.md>), [custom](<https://devfeed.tech/tags/custom.md>), [directory](<https://devfeed.tech/tags/directory.md>), [dump](<https://devfeed.tech/tags/dump.md>), [external](<https://devfeed.tech/tags/external.md>), [file](<https://devfeed.tech/tags/file.md>), [files](<https://devfeed.tech/tags/files.md>), [format](<https://devfeed.tech/tags/format.md>), [formatting](<https://devfeed.tech/tags/formatting.md>), [git](<https://devfeed.tech/tags/git.md>), [git-commit](<https://devfeed.tech/tags/git-commit.md>), [ios](<https://devfeed.tech/tags/ios.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [with](<https://devfeed.tech/tags/with.md>), [wwdc](<https://devfeed.tech/tags/wwdc.md>), [xcode](<https://devfeed.tech/tags/xcode.md>), [xcode-16](<https://devfeed.tech/tags/xcode-16.md>)

### AI overview

Xcode 16 includes `swift-format`; it runs from the active Xcode toolchain, which may be a beta or release. Formatting can use a `.swift-format` file found beside the source files or in a parent directory, falling back to defaults; a project-level file can override a shared configuration. The described pre-commit hook selects staged Swift files with Git's cached diff, formats them in place, and stages the changed files again. A nonzero exit cancels the commit. Because it is a client-side hook, it must be installed for each new or cloned repository. The excerpt notes that the hook can be bypassed with a flag but does not show which flag or the complete script.

### Source excerpt

How do you automatically format your Swift code every time you commit it to your Git repository? Swift Format There are several Swift formatting tools. Xcode 16 shipped with swift-format included in the toolchain: $ xcrun --find swift-format /Applications/Xcode.app/Contents/Developer/Toolchains/ XcodeDefault.xctoolchain/usr/bin/swift-format To run the formatter: $ swift format MyFile.swift Note: This runs the swift-format bundled with the active Xcode development directory (beta or release). Configuring swift-format The Xcode settings let you configure various formatting options including indentation but I prefer to use an external configuration file for swift-format. By default, swift-format looks for a configuration file named .swift-format in the same directory as the files you are formatting. If there isn't one it looks in each successive parent directory. If it doesn't find a configuration file it uses a default configuration. You can dump the default configuration to get started: $ swift format dump-configuration > swift-format Modify the configuration file to meet your own code style: { "fileScopedDeclarationPrivacy" : { "accessLevel" : "private" }, "indentConditionalCompilationBlocks" : true, "indentSwitchCaseLabels" : false, "indentation" : { ... I keep my default configuration file in my base Developer directory: $ mv swift-format ~\Developer\.swift-format When needed, I can override the defaults by placing a modified configuration file in the project-specific root directory. Note: Don't forget to prefix the configuration file with a . Git Commit Hooks Git Hooks are a way to run custom scripts when different Git actions occur. A pre-commit hook runs when you commit changes to a repository. Here's the pre-commit script I'm using to run swift-format: #!/bin/bash GIT=/usr/bin/git GREP=/usr/bin/grep SWIFT=/usr/bin/swift # Staged (cached) added/copied/modified/renamed files FILES=$($GIT diff --cached --name-only --diff-filter=ACMR | $GREP '\.swift$') # Exit ear

## Actions: Xcode 16.2 will replace Xcode 16.0 in macOS-14 Images

DevFeed: [Actions: Xcode 16.2 will replace Xcode 16.0 in macOS-14 Images](<https://devfeed.tech/articles/actions-xcode-16-2-will-replace-xcode-16-0-in-macos-14-images-72817.md>)

Original publisher: [Read original article](<https://github.blog/changelog/2025-01-02-actions-xcode-16-2-will-replace-xcode-16-0-in-macos-14-images>)

Author: Allison

Published: 2025-01-02T18:08:17Z

Content type: release

Language: en

Sources: [GitHub Changelog](<https://devfeed.tech/sources/github-changelog.md>)

Topics: [macOS](<https://devfeed.tech/topics/macos.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [actions](<https://devfeed.tech/tags/actions.md>), [all](<https://devfeed.tech/tags/all.md>), [arm64](<https://devfeed.tech/tags/arm64.md>), [beta](<https://devfeed.tech/tags/beta.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [images](<https://devfeed.tech/tags/images.md>), [intel](<https://devfeed.tech/tags/intel.md>), [macos](<https://devfeed.tech/tags/macos.md>), [policy](<https://devfeed.tech/tags/policy.md>), [roadmap](<https://devfeed.tech/tags/roadmap.md>), [runner](<https://devfeed.tech/tags/runner.md>), [service](<https://devfeed.tech/tags/service.md>), [support](<https://devfeed.tech/tags/support.md>), [tools](<https://devfeed.tech/tags/tools.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [version](<https://devfeed.tech/tags/version.md>), [xcode](<https://devfeed.tech/tags/xcode.md>), [xcode-16](<https://devfeed.tech/tags/xcode-16.md>)

### AI overview

Starting January 6, 2025, GitHub-hosted macOS-14 Intel and ARM64 runner images will replace Xcode 16.0 with Xcode 16.2. Workflows that rely on Xcode 16.0 should upgrade to Xcode 16.1 to maintain service continuity. The stated macOS-14 support policy keeps all Xcode 15 minor releases with the full platform tools suite, while Xcode 16 follows a "last two" policy: two minor releases are supported, excluding visionOS tools, and the oldest is replaced as updates are released. Beta versions are excluded.

### Source excerpt

Starting January 6, 2025 GitHub-Hosted macOS runner images will be replacing Xcode 16.0 with Xcode 16.2. This change applies to both macOS-14 Intel and ARM64 based runner images. If you...