Build, test, and submit your app with Apple's integrated development environment.


Xcode consists of a suite of tools that developers use to build apps for Apple platforms. Use Xcode to manage your entire development workflow—from creating your app to testing, optimizing, and submitting it to the App Store.

Screenshot of MacBook Pro running Xcode that shows SwiftUI with a preview and running the app on an iPhone device.

Xcode can launch its development tools, or you can launch them independently from the Xcode > Open Developer Tool menu:

  • Use Simulator for rapid prototyping and testing your app in a simulated environment when a real device isn't available. Simulator provides environments for iPhone, iPad, Apple Watch, and Apple TV devices with different settings, files, and operating system versions. For more information, see Simulator Help.

  • Use Instruments to profile and analyze your app, improve performance, and find memory problems. Instruments collects data and presents the results using different tools called instruments. For more information, see Instruments Help.

  • Use Create ML to create and train custom machine learning models for your app. See Create ML for more information.

  • Use Reality Composer to construct 3D compositions and augmented reality (AR) experiences. See Creating 3D Content with Reality Composer for more information.

To start using Xcode, see Creating an Xcode Project for an App.



Creating an Xcode Project for an App

Start developing your app by creating an Xcode project from a template.


Creating Your App's Interface with SwiftUI

Develop apps in SwiftUI with an interactive preview that keeps the code and layout in sync.

Supporting Dark Mode in Your Interface

Update colors, images, and behaviors so that your app adapts automatically when Dark Mode is active.

Creating Custom Symbol Images for Your App

Create symbol images and expand on the icons provided by SF Symbols.

Project Configuration

Adding Capabilities to Your App

Add capabilities to configure app services provided by Apple, such as push notifications, or Apple Pay.

Adding Package Dependencies to Your App

Integrate package dependencies to share code between projects, or leverage code written by other developers.

Creating a Mac Version of Your iPad App

Bring your iPad app to macOS with Mac Catalyst.

Debugging and Performance

Running Your App in the Simulator or on a Device

Launch your app in a simulated iOS, tvOS, or watchOS device or on a device connected to your Mac.

Improving Your App's Performance

Model, measure, and boost the performance of your app by using a continuous improvement cycle.


Preparing Your App for Distribution

Configure the information property list and add icons before you distribute your app.

Notarizing Your App Before Distribution

Give users even more confidence in your software by submitting it to Apple for notarization.

Code Sharing

Creating a Swift Package with Xcode

Create a Swift package to promote modularity and code reuse across your apps.

Publishing a Swift Package with Xcode

Publish your Swift package privately, or share it globally with other developers.