Amplify requires a minimum deployment target of 10.15 and Xcode 13.2 or higher when targeting macOS. Additionally, you will need to enable networking, keychain entitlements, and code signing.

### Update Minimum Version

From your project root, navigate to the `macos/` directory and open the `Podfile` in a text editor of your choice. Update the target macOS platform to 10.15 or higher.

```bash
platform :osx, '10.15'
```

Open your project in Xcode and select Runner, Targets -> Runner and then the "General" tab. Under the "Minimum Deployments" section, update the macOS version to 10.15 or higher.

![XCode Minimum Deployment Version](/images/project-setup/flutter/mac/target-min-deployment-version.png)

Select Runner, Project -> Runner and then the "Info" tab. Update "macOS Deployment Target" to 10.15 or higher.

![XCode Minimum Deployment Version](/images/project-setup/flutter/mac/project-min-deployment-version.png)

### Enable Network Calls

Open your project in Xcode and select Runner, Targets -> Runner and then the "Signing and Capabilities" tab. Under "App Sandbox" select "Outgoing Connections (Client)".

![XCode Entitlements Screen](/images/project-setup/flutter/mac/xcode-entitlements.png)

For more info on the Networking entitlement, see Apple's documentation on [com.apple.security.network.client](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_network_client).

### Enable Keychain Sharing

<Callout>

This capability is required because Amplify uses the Data Protection Keychain on macOS as a platform best practice. 
See [TN3137: macOS keychain APIs and implementations](https://developer.apple.com/documentation/technotes/tn3137-on-mac-keychains)
for more information on how Keychain works on macOS and the Keychain Sharing entitlement.

</Callout>

Open your project in Xcode and select Runner, Targets -> Runner and then the "Signing and Capabilities" tab.

1. Click the "+ icon".

![XCode Enable Keychain Sharing](/images/project-setup/flutter/mac/enable-keychain-access.png)

2. Search for "Keychain Sharing" in the subsequent modal, and add it.

![XCode Keychain Sharing Search](/images/project-setup/flutter/mac/search-keychain-sharing.png)

3. Scroll down to "Keychain Sharing" in the "Signing and Capabilities" and click the "+" icon. By default, your bundle ID will be used.

![XCode Adding Keychain Sharing Group](/images/project-setup/flutter/mac/adding-keychain-access-group.png)

4. Finally, add a development team and enable signing.

![XCode Signing and Capabilities Screen](/images/project-setup/flutter/mac/enable-signing.png)
