> [!WARNING]
> **Warning:** Nearby Messages is deprecated and will stop working as of December 2023. Please navigate to [Nearby Connections](https://developers.google.com/nearby/connections/overview.md.txt) for further support or [Migration Guideline](https://developers.google.com/nearby/messages/ios/migrate-to-nc.md.txt) on how to migrate existing Nearby Messages usage to Nearby Connections.

This document explains how to start developing with the Nearby Messages API on
iOS.

## Step 1: Get the latest version of Xcode

To build a project using the Google Nearby Messages API for iOS, you need
**version 6.3** or later of [Xcode](https://developer.apple.com/xcode/).

## Step 2: Get CocoaPods

The Google Nearby Messages API for iOS is available as a
[CocoaPods](https://cocoapods.org/) pod. CocoaPods is an open source dependency
manager for Swift and Objective-C Cocoa projects.

If you don't already have the CocoaPods tool, install it on OS X by running the
following command from the terminal. For details, see the [CocoaPods Getting
Started guide](https://guides.cocoapods.org/using/getting-started.html).

    $ sudo gem install cocoapods

## Step 3: Install the API using CocoaPods

Create a `Podfile` for the Google Nearby Messages API for iOS and use it to
install the API and its dependencies.

- If you don't have an Xcode project yet, create one now and save it to your local machine. (If you're new to iOS development, create a Single View Application, and ensure that Use Automatic Reference Counting is turned on.)
- Create a file named `Podfile` in your project directory. This file defines your project's dependencies.
- Edit the `Podfile` and add your dependencies. Here is a simple Podspec,
  including the name of the pod you need for the Google Nearby Messages API for
  iOS:

  ```
  source 'https://github.com/CocoaPods/Specs.git'
  platform :ios, '7.0'
  pod 'NearbyMessages'
  ```

  <br />

- Save the `Podfile`.

- Open a terminal and go to the directory containing the `Podfile`:

  $ cd
- Run the `pod install` command. This will install the APIs specified in the
  Podspec, along with any dependencies they may have.

  $ pod install
- Close Xcode, and then open (double-click) your project's `.xcworkspace` file
  to launch Xcode. From this time onwards, you must use the `.xcworkspace` file to
  open the project.

## Step 4: Create a bridging header (Swift only)

If you created your project using Swift, you must add a bridging header to your
project so that it can use the libraries that were installed by the pod file.
Take these steps to add a bridging header:

1. In the same directory as your project's `.xcworkspace` file, add a new header file (name it whatever you like and use a filename extension of ".h").
2. Paste the following code into the file you created: `#import <GNSMessages.h>`.
3. Save the file.
4. In the project editor left pane, select the main project.
5. Click **Build Settings** at the top of the build editor.
6. In Build Settings, navigate to "Swift Compiler - Code Generation" (type "Swift Compiler" into the search box to locate it quickly).
7. Click the arrow to expand the **Objective-C Bridging Header** section.
8. Under **Debug** and **Release**, add the path to the header file you created.
9. Build the project to make the changes take effect.

## Step 5: Get a Google account

To use the Nearby Messages APIs, you need a [Google Account](https://www.google.com/accounts/NewAccount).
If you already have an account, then you're all set. You may also want a
separate Google Account for testing purposes.

## Step 6: Get an API key

Take these steps to enable the Google Nearby Messages API for iOS and get an
API key:

1. Go to the [Google Developers Console](https://console.developers.google.com/flows/enableapi?apiid=copresence&keyType=CLIENT_SIDE_IOS&reusekey=true).
2. Create or select a project to register your application with.
3. Click **Continue** to Enable the API.
4. On the **Credentials** page, create a new **iOS key** (and set the API Credentials).  
   Note: If you have an existing **iOS key**, you may use that key.
5. In the resulting dialog, enter your app's bundle identifier. For example:

   ```
   com.example.nearbyexample
   ```
6. Your new iOS API key appears in the list of API keys for your project. An API key is a string of characters, something like this:

   ```
   AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0
   ```
7. To prevent quota theft, secure your API key following these [best practices](https://developers.google.com/console/help/console#apikeybestpractices).

> [!NOTE]
> **Note:** If you are also developing an Android app, or using the Proximity Beacon REST API, make sure you generate all respective API keys within the same Google Developers Console project. For more information, see the [Getting Started guide for Android](https://developers.google.com/nearby/messages/android/get-started.md.txt), and [Get Started with the REST API](https://developers.google.com/beacons/proximity/get-started).

## Step 7: Create a message manager object

The message manager object lets you publish and subscribe. Message exchange is
unauthenticated, so you must supply the API key you created in the previous
step.

<br />

### Objective-C

<br />

```objective-c
#import <GNSMessages.h>

GNSMessageManager *messageManager =
    [[GNSMessageManager alloc] initWithAPIKey:@"API_KEY"];
```

<br />

### Swift

<br />

```swift
let messageManager = GNSMessageManager(APIKey: "API_KEY")
```

<br />

<br />