---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

title: Pebble SDK 2.0 BETA4 - Changelog
date: 2013-12-23
---

 * Pebble SDK 2.0 is currently in BETA and intended for developers only.
 * SDK 2.0 will be released early next year as an over-the-air update to all Pebble users.
 * Applications written for Pebble 1.x are not compatible with SDK 2.0
 * If a 2.0 version of an application exists, the Pebble mobile applications will automatically install it when when a user upgrades her/his Pebble.

**You can start uploading your application to the Pebble appstore TODAY - [Please do so](http://dev-portal.getpebble.com/)!**

## What has changed since BETA3

Overview:

 - Fixed a problem where the iOS app would get killed after a few minutes in the background
 - Lots of Data Logging fixes on the firmware and on Android
 - Added timestamps on accelerometer samples
 - Improved error handling for PebbleKit JS apps on iOS and Android

### Firmware

 - Developers of apps can now register single and multi click handlers on the back button
 - Holding down the back button for 1.5s will force quit an existing app
 - Fixed bugs and optimize the filesystem: faster persist times, less problems with persistent storage, fix a bunch of rather complex problems where the recovery firmware could be damaged
 - Fixed scroll offset bug when displaying notifications
 - Dismiss missed call notfication after 180s
 - Fixed a bug where unicode characters were not supported in appinfo.json
 - Changed graphics_text_layout_get_max_used_size() to _not_ require a graphic context
 - Fixed a few more bluetooth bugs
 - Fixed a bug where Pebble could crash when you delete the last alarm
 - Fixed memory read exception that can occur when using a malloc-ed appsync buffer
 - Save notifications to storage during do not disturb
 - Document AccelAxisType in API Documentation
 - Fixed Music UI problems
 - Automatically center on screen a selected cell in a SimpleMenuLayer
 - Fixed bug where snprintf could crash the watch
 - Display an error message if a 2.0 pebble is connected to a 1.x mobile app
 - Fixed a bug where calling atoi() would crash an app
 - Many DataLogging improvements and fixes based on new unit tests
 - Display an alert on Pebble when we reset due to a system crash
 - Ignore NULL pointer passed to text_layer_destroy()
 - Limit the number of datalogging sessions to 20
 - Fixed a race condition that occurs when you set the sampling rate immediately after subscribing to the accel service
 - Keep persistent storage intact when upgrading an application
 - Added timestamps on accelerometer samples and a flag indicating if the watch was vibrating at the time of the sample
 - Fixed a bug where psleep could crash pebble
 - Fixed a bug where text_layer could add ellipsis to the wrong line

### iOS App

 - Fixed a bug where the iOS app would get killed in the background after just a few minutes
 - Show a local notification if a developer is connected but the app is about to get killed
 - PebbleKit JS: Fixed a bug where apps could not access localStorage with the array syntax
 - PebbleKit JS: Fixed a bug where a space in an URL opened with XmlHTTPRequest could crash the iOS app
 - PebbleKit JS: Fixed a bug where sending a byte array with 0xff in it would send 0x00 instead

### Android App

 - PebbleKit JS: Fixed a bug where a byte array would not be sent properly for named keys
 - Use new Android KitKat (4.4) APIs to do pairing on 4.4
 - PebbleKit JS: Do not send ack for ack/nack messages
 - Fixed Android crashing with OutOfMemory error when using Data Logging
 - Fixed Android Data Logging of byte array that was not working

### PebbleKit iOS

 - Do not ack ACKs...

### PebbleKit Android

 - No changes

### SDK Tools

 - Added support to libpebble to trigger reboot to recovery firmware
 - Added support for computers where python2 and python3 co-exist
 - Fixed an exception when receiving APP_LOG with extended characters
 - Fixed a bug where unicode characters were not supported in characterRegex field of `appinfo.json`
 - Fixed 30 second delay that can occur when building pebble apps on Ubuntu when there is no internet access
 - Added Pillow python dependency: needed for the screenshot functionality
 - Detect PIL/Pillow conflict and suggest a fix to the user

### Examples

 - Added a License to the examples