---
title: "Migrating to Pebblekit iOS 3.0"
canonical_url: https://developer.repebble.com/blog/2015/10/29/ios-migration/
last_updated: 2026-10-11
sdk_version: 4.33.1
---
# Migrating to Pebblekit iOS 3.0

Source: https://developer.repebble.com/blog/2015/10/29/ios-migration/

This is the Pebble Developer Blog. For general Pebble news and announcements, visit the main blog at [repebble.com/blog](https://repebble.com/blog).

- 29 October 2015
- [Alex Lin](https://developer.repebble.com/blog/authors/alex/)
- [Freshly Baked](https://developer.repebble.com/blog/tags/freshly-baked/)
- [Comments](https://developer.repebble.com/blog/2015/10/29/ios-migration.md#comments)

![](https://developer.repebble.com/assets/images/blog/ios-migration-banner.png)

Starting with Pebble Time Round, we are moving towards communicating with Bluetooth Low-Energy only. This means there are some updates to PebbleKit iOS to support this. Here are the major changes and steps to take to support the new BLE connection.

**What's New**

- Companion apps have dedicated, persistent communication channels
- Start mobile apps from Pebble
- 8K AppMessage buffers
- Swift support

## What do you need to do?

Import the new PebbleKit iOS 3.0 library into your project.

### API Changes

#### NSUUIDs

You can now use `NSUUID` objects directly rather than passing [`appUUID`](https://developer.repebble.com/docs/pebblekit-ios/Classes/PBPebbleCentral.md#//api/name/appUUID "appUUID") as a `NSData` object.

**PebbleKit 2.x**

```
uuid\_t myAppUUIDbytes;NSUUID \*myAppUUID = [[NSUUID alloc] initWithUUIDString:@"226834ae-786e-4302-a52f-6e7efc9f990b"];[myAppUUID getUUIDBytes:myAppUUIDbytes];[PBPebbleCentral defaultCentral].appUUID = [NSData dataWithBytes:myAppUUIDbytes length:16];
```

**PebbleKit 3.0**

```
NSUUID \*myAppUUID = [[NSUUID alloc] initWithUUIDString:@"226834ae-786e-4302-a52f-6e7efc9f990b"];[PBPebbleCentral defaultCentral].appUUID = myAppUUID;
```

#### Cold start PBPebbleCentral

You'll want to start [`PBPebbleCentral`](https://developer.repebble.com/docs/pebblekit-ios/Classes/PBPebbleCentral.md "PBPebbleCentral") in a cold state now so users don't get a pop-up asking for Bluetooth permissions as soon as the app initializes. Call `[central run]` when it makes sense for the pop-up to show up. Add some custom text to the dialog with `NSBluetoothPeripheralUsageDescription` to your `Info.plist` file.

**PebbleKit 2.x**

```
// MyAppDelegate.m - Set up PBPebbleCentral and run if the user has already// performed onboarding- (BOOL)application:(UIApplication \*)application didFinishLaunchingWithOptions:(NSDictionary \*)launchOptions {[PBPebbleCentral defaultCentral].delegate = self;[PBPebbleCentral defaultCentral].appUUID = myAppUUID;if ([MySettings sharedSettings].userDidPerformOnboarding) {[[PBPebbleCentral defaultCentral] run];}}
```

**PebbleKit 3.0**

```
// MyOnboarding.m - Once the pop-up has been accepted, begin PBPebbleCentral- (IBAction)didTapGrantBluetoothPermissionButton:(id)sender {[MySettings sharedSettings].userDidPerformOnboarding = YES;[[PBPebbleCentral defaultCentral] run]; // will trigger pop-up}
```

### Specify that your app is built with PebbleKit 3.0 in the Developer Dashboard

Go to edit the companion app listing in your [developer dashboard](https://developer.repebble.com/dashboard) page and check the box for "Was this iOS app compiled with PebbleKit iOS 3.0 or newer?" This way, users on Pebble Time Round will be able to see your app in the appstore.

![](https://developer.repebble.com/assets/images/blog/checkbox.png)

### Final thoughts

With a few quick steps, you can bring compatability for the BLE connection to your app. In the coming months, we'll be rolling out updates for users of Pebble and Pebble Time to take advantage of BLE-only connection as well. In the short term, if you intend to support Pebble Time Round, these steps are mandatory. For the complete details on migrating to PebbleKit 3.0, take a look at our migration guide. If you have any issues in migrating or have any questions concerning PebbleKit 3.0, feel free to [contact](https://developer.repebble.com/contact.md) us anytime!

* * *
