What is new in Xcode 14

What is serverless?
9th September 2022
do awesome code
7 problems that might prevent your PHP code from being awesome
20th September 2022
Show all

What is new in Xcode 14

Xcode 14 includes everything you need to develop, test, and distribute apps across all Apple platforms. Leverage the simplicity and power of Swift and SwiftUI with a new multiplatform app experience, code faster with enhanced editor features, and start testing and deploying from Xcode Cloud to TestFlight and the App Store. Creating amazing apps has never been easier.

Lighter. Faster.

Xcode 14 lets you get started faster than ever with a binary that’s 30% smaller than before. Now with downloadable simulator runtimes for watchOS and tvOS, Xcode makes the latest platforms available as you need them.

Projects build up to 25% faster thanks to improved parallelism in all build and link phases.

And the new Build Timeline helps identify unexpectedly long-running build tasks and bottlenecks in your build.

Designed for multiplatform

The new multiplatform target creates a single SwiftUI interface for use across iOS, iPadOS, macOS, and tvOS. Your code is easier to maintain, and ready to be customized to take advantage of each platform’s unique capabilities.

With the redesigned App Icon experience in Asset Catalogs, you can provide a single icon size for all platforms and Xcode will generate all the rest.

Productive coding

Be more productive than ever with many language and editing improvements. Smarter code completion and additional dynamic snippets will get you the code you want more quickly. While you scroll, code structure (like function declarations) stays visible so you always know where you are. And regular expressions in Swift are integrated with syntax highlighting, refactoring operations, and more.

Swift, SwiftUI, Swift Package

Swift, SwiftUI, and Xcode 14 work together as one. SwiftUI previews are immediately interactive, and UI variations, such as light and dark appearances, are just a click away. The new template for Instruments makes it easy to debug and optimize usage of distributed actors and other Swift concurrency features. And with build and command package plug-ins, you can customize Xcode and your build process like never before.

New Features

  • Xcode 14 enables a single target to support multiple platforms and conditionally include dependencies, code, resources, and build settings for specific platforms. (74664328)
  • Xcode 14 supports development of DriverKit drivers for iPadOS. (81117498)
  • Xcode 14 includes a default template for watchOS apps that combines the WatchKit App and WatchKit App Extension targets into a single Watch App target, simplifying code, asset, and localization management. You can deploy single-target watchOS apps to watchOS 7 and later. (83222217)

Resolved Issues

  • Fixed: When a storyboard is open and watchOS or tvOS content is deleted from Xcode Settings, the storyboard won’t close. (87471381)

Deprecations

  • Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14.Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: “Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode.” The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols for past bitcode submissions remain available for download. (86118779)

Build System

New Features

  • Xcode provides a new assistant editor for build logs that focuses on parallelism to help identify build performance issues. This visualization displays events as a grid of colored blocks where the vertical axis represents level of parallelism and the horizontal axis represents time. (47858322)
  • Xcode 14 can now compile targets in parallel with their Swift target dependencies. (57116972)
  • Swift driver, the component that orchestrates Swift front-end invocations, is now integrated into Xcode’s build system, allowing for more fine-grained dependencies to other build system tasks and explicit scheduling. (72440175)
  • In the Build Phases pane, you can now batch edit files in the multi-select table view. When you edit the platform filters column of that table, the system applies changes to all files in the selection. (80683128) (FB9340886)
  • Swift-only framework and dynamic library targets can opt into a new build system optimization using the EAGER_LINKING build setting. When you enable this, Xcode emits additional artifacts during Swift compilation, which allows Xcode to unblock linking of downstream targets earlier, increasing parallelism in builds. (82396635)
  • The build system runs tasks from different build phases in parallel when input and output dependencies don’t enforce their ordering. You can opt into this new behavior for run script build phases using the FUSE_BUILD_SCRIPT_PHASES build setting. (82396977)
  • The App Store now supports app thinning for precompiled Metal shaders. (82902821)
  • Xcode builds for watchOS devices now include the arm64 architecture by default. (83319300)
  • Added a new :relativeto= macro replacement operator for build settings, which you can use to compute the relative path from one path to another; for example: $(INSTALL_PATH:relativeto=/usr/lib)where INSTALL_PATH is “/usr/bin”, and evaluates to “../lib”.You can use this in a build rule to copy a series of file references while preserving their directory hierarchy under the destination directory, or to compute a target’s expected rpaths using the relative path between its own install path and the known install paths of its dependencies. (88293015)
  • Xcode now provides RECOMMENDED_MACOSX_DEPLOYMENT_TARGETRECOMMENDED_IPHONEOS_DEPLOYMENT_TARGETRECOMMENDED_TVOS_DEPLOYMENT_TARGETRECOMMENDED_WATCHOS_DEPLOYMENT_TARGET, and RECOMMENDED_DRIVERKIT_DEPLOYMENT_TARGET build settings that indicate the recommended minimum deployment versions for each supported Xcode platform. (90464341)
  • You can now enable sandboxing for shell script build phases using the ENABLE_USER_SCRIPT_SANDBOXING build setting. Sandboxing blocks access to files inside the source root of the project as well as the Derived Data directory unless you list those files as inputs or outputs. When enabled, the build fails with a sandbox violation if a script phase attempts to read from or write to an undeclared dependency, preventing incorrect builds. (90506067)

for more information contact to XpertLab