p2pkit Release Notes

Below you’ll find release notes and known issues for p2pkit (iOS / macOS and Android).

iOS / macOS

2.1.0: August 9th, 2017

  • New messaging API (Pro Edition): interact with nearby peers following a discovery event.
  • Added a getter for the maximum size of messages.
  • Additional bug fixes and improvements

2.0.6: May 18th, 2017

  • Fixed an issue that could prevent BLE state restoration from working when the app is restored while being offline.
  • p2pkit can now be enabled regardless if the device is offline/online. Validation will execute as soon as the internet connection is available again.
  • Additional bug fixes and improvements
Removed error code
PPKErrorCode
  • PPKErrorServerConnectionUnavailable

2.0.4: February 22nd, 2017

p2pkit 2.0 has undergone a major architectural improvement, here are some of the highlights:

  • Accelerated performance - thanks to our new cloud assisted discovery architecture p2pkit 2.0 will discover devices much faster, more stable and more consistent than ever before.
  • p2pkit 2.0 requires an active internet connection. Please enable p2pkit only when connection is available. If the device loses connection after p2pkit was enabled, discovery will be suspended. p2pkit will self recover once internet connection is re-established.
  • Introduced ephemeral IDs for discovery
  • Removed online messaging and GEO APIs
  • Discovery info API is throttled to one push per 60 seconds
  • Added support for Objective-C nullability to improve Swift compatibility
  • Added support for Swift 3
  • Add/remove/rename various error codes, please refer to our API documentation for more info.

This release introduces breaking changes and is not backwards compatible to previous versions. Please make sure to update your apps for maximal compatibility.

1.3.7: November 4th, 2016

  • Fixed a bug related to the way Swift 3 handles object bridging to Objective-C

1.3.6: July 20th, 2016

  • Uepaa! Proud to announce we have launched a new & exciting pricing model for p2pkit, more information on our pricing page
  • Our Terms of Service and Privacy Policy have been updated accordingly and replaces the previous versions: Terms, License & Policies
  • Bug fixes and improvements
Added error code
PPKErrorCode
  • PPKErrorInvalidBundleId for when the bundle ID does not match the configured bundle IDs in the p2pkit console

1.3.5: June 9th, 2016

  • Good news! This release fixes discovery incompatibilities that were introduced in the previous version (1.3.3), now discovery between version 1.3.0 and the latest will work normally.

Reminder: New App Keys generated from June 8th, 2016 onwards are of a new format and require p2pkit version 1.3.3 and above.

1.3.3: June 8th, 2016

  • Although there is not much that meets the eye, some important changes took place under the hood. This release is tight to architectural changes in the way app keys are created and validated and is a preparation for important upgrades we will be introducing to p2pkit in upcoming releases.
  • New App Keys generated from now onwards are of a new format and will require p2pkit version 1.3.3 and above
  • Optimised the speed in which new discovery info is propagated to nearby peers when in inactive mode
  • Bug fixes and improvements

This release introduces breaking changes and is not backwards compatible to previous versions. Please make sure to update your apps for maximal compatibility.

Update: We have fixed the backwards compatibility issue in the newer version 1.3.5.

Deprecated error codes
PPKErrorCode
  • PPKErrorAppKeyExpired
  • PPKErrorOnlineAppKeyInvalid
  • PPKErrorOnlineAppKeyExpired

1.3.0: May 17th, 2016

  • NEW: Support for OS X! Although currently in beta, you can already test and enjoy the whole range of features for your desktop apps.
  • Added new P2P discovery states for when BLE is unsupported or unauthorized
  • Optimized P2P discovery for handling more peers faster
  • Additional bug fixes and improvements
Added P2P discovery states
PPKPeer2PeerDiscoveryState
  • PPKPeer2PeerDiscoveryUnsupported for when BLE is not supported on the device
  • PPKPeer2PeerDiscoveryUnauthorized for when the user did not give permission to use BLE

1.2.3: April 13th, 2016

  • Fixed a bug that caused BLE State Restoration not to work properly when enabled

1.2.2: April 11th, 2016

  • Improved speed of proximity ranging: proximity strength changes are noticeably faster now.
  • BLE State Restoration is now turned off by default. You can still enable it by calling startP2PDiscoveryWithDiscoveryInfo:stateRestoration:
  • Improved P2P discovery context by prioritizing closer peers (BLE)
  • Optimised discovery by further reducing unnecessary background connections. Read more about it in our FAQ.
  • Added method isEnabled to check if P2PKit is already initialised
  • Additional bug fixes and improvements
Deprecated methods
PPKController
  • The method startP2PDiscoveryWithDiscoveryInfo:(NSData*)info was deprecated in favor of startP2PDiscoveryWithDiscoveryInfo:(NSData*)info stateRestoration:(BOOL)enabled
Removed methods
PPKControllerDelegate
  • The delegate method didUpdateP2PDiscoveryInfoForPeer:(PPKPeer*)peer was removed. Please use discoveryInfoUpdatedForPeer:(PPKPeer*)peer instead.
PPKController
  • The method startP2PDiscovery was removed. Please use startP2PDiscoveryWithDiscoveryInfo:(NSData*)info stateRestoration:(BOOL)enabled instead.

1.1.1: January 22nd, 2016

  • NEW: Proximity Ranging API (iOS only, Beta) adds context to the discovery events by providing 5 levels of proximity strength (from “immediate” to “extremely weak”). Check here for more infos.
  • Improved background discovery with BLE state restoration support: p2pkit for iOS now uses the Bluetooth Low Energy state restoration API and is enabled by default.
  • Added support for CocoaPods
  • Fixed an issue where the lost event was not always called in background on iOS 9
  • Additional bug fixes and improvements
Deprecated methods
PPKControllerDelegate
  • The delegate method didUpdateP2PDiscoveryInfoForPeer:(PPKPeer*)peer was deprecated and replaced by discoveryInfoUpdatedForPeer:(PPKPeer*)peer
PPKController
  • The method startP2PDiscovery was deprecated in favor of startP2PDiscoveryWithDiscoveryInfo:nil

1.0.4: November 6th, 2015

  • Improved stability of discovery in a group
  • Protect against corruption of the discovery info while transfer is in progress
  • Additional bug fixes and improvements

1.0.1: September 25th, 2015

  • NEW: Nearby devices can exchange a payload using the discovery info API. The payload is attached to the peer delivered with the discovery event (optionally).
  • Improved discovery performance and stability.
  • Various bug fixes and improvements.

Note: This release introduces breaking changes and is not backwards compatible to previous beta versions. Please make sure to update your apps for maximal compatibility.

Known Issues

  • On devices running iOS 10.3+ background support can be limited due to a bug in the OS which prevents timers from firing. As a result, losts may be delayed or not be delivered at all when the app is in background. New discoveries should not be affected by this.
  • iOS may show a pairing dialog when an iOS 9 device tries to connect to an iOS 8 device.

Android

2.1.3: August 24th, 2017

  • Fixed an issue occurring when starting and stopping discovery multiple times.

Note: You should always wait for the callbacks/state changes before calling startDiscovery/stopDiscovery.

2.1.2: August 9th, 2017

  • New messaging API (Pro Edition): interact with nearby peers following a discovery event.
  • Added a getter for the maximum size of messages.
  • Additional bug fixes and improvements

2.0.6: April 21st, 2017

  • Introduced new Discovery Power Modes: HIGH_PERFORMANCE and LOW_POWER for optimizing the performance vs power consumption.
  • With the introduction of the Discovery Power Modes the startDiscovery method was modified to expect a Discovery Power Mode.
  • Added two new methods getDiscoveryPowerMode() and setDiscoveryPowerMode(DiscoveryPowerMode discoveryPowerMode) accordingly.
  • Added a new callback to the P2PKitStatusListener: onException(Throwable throwable) is called when an unhandled exception is thrown within p2pkit and p2pkit exits. The previous StatusResult INTERNAL_ERROR has been removed accordingly.
  • Renamed INVALID_PACKAGE_NAME to INVALID_APPLICATION_ID.

This release introduces API changes.

2.0.4: February 22nd, 2017

p2pkit 2.0 has undergone a major architectural improvement, here are some of the highlights:

  • p2pkit 2.0 for Android no longer requires P2PServices
  • Accelerated performance - thanks to our new cloud assisted discovery architecture p2pkit 2.0 will discover devices much faster, more stable and more consistent than ever before.
  • p2pkit 2.0 requires an active internet connection. Please enable p2pkit only when a connection is available, if the device will lose the connection after p2pkit was enabled discovery will be suspended. p2pkit will self recover once the internet connection is re-established.
  • Introduced ephemeral IDs for discovery
  • Removed online messaging and GEO APIs
  • Discovery info API is throttled to one push per 60 seconds
  • Removed StatusResultHandler. Please observe P2PKitStatusListener and handle onError(StatusResult result) appropriately.
  • Add/remove/rename various StatusResults codes, please refer to our API documentation for more info
  • Renamed Peer.getNodeId() to Peer.getPeerId()
  • Added API to enable proximity ranging. Please call P2PKit.enableProximityRanging() to activate the feature.
  • Add/remove/rename various DiscoveryListener states, please refer to our API documentation for more info
  • ProximityStrength.WIFI_PEER has been removed. Expect ProximityStrength.UNKNOWN when p2pkit is unable to determine a proximity strength value.
  • Removed Content Provider
  • Added support for runtime permissions on Marshmallow and above.
  • Added P2PKit.getDiscoveryState() for obtaining the current discovery engine state
  • Renamed InfoTooLongException to DiscoveryInfoTooLongException
  • Added STATE_LOCATION_PERMISSION_NOT_GRANTED in case the location permission was not granted

This release introduces breaking changes and is not backwards compatible to previous versions. Please make sure to update your apps for maximal compatibility.

1.3.9: December 9th, 2016

  • Bug fixes and improvements

1.3.8: July 20th, 2016

  • Uepaa! Proud to announce we have launched a new & exciting pricing model for p2pkit, more information on our pricing page
  • Our Terms of Service and Privacy Policy have been updated accordingly and replaces the previous versions: Terms, License & Policies
  • Bug fixes and improvements
Added error code
  • StatusResult.INVALID_PACKAGE_NAME for when the package name does not match the configured package names in the p2pkit console

1.3.7: June 9th, 2016

  • Good news! This release fixes discovery incompatibilities that were introduced in the previous version (1.3.4), now discovery between version 1.3.2 and the latest will work normally.

Reminder: New App Keys generated from June 8th, 2016 onwards are of a new format and require P2PServices version 1.3.4 and above.

Deprecated error codes
  • StatusResult.LICENSE_EXPIRED

1.3.4: June 8th, 2016

  • Although there is not much that meets the eye, some important changes took place under the hood. This release is tight to architectural changes in the way app keys are created and validated and is a preparation for important upgrades we will be introducing to p2pkit in upcoming releases.
  • New App Keys generated from now onwards are of a new format and will require P2PServices version 1.3.4 and above
  • Bug fixes and improvements

This release introduces breaking changes and is not backwards compatible to previous versions. Please make sure to update your apps for maximal compatibility.

Update: We have fixed the backwards compatibility issue in the newer version 1.3.7.

Added P2P discovery state
P2PListener
  • STATE_LOCATION_SUSPENDED when location service is disabled and therefore no bluetooth scan results are delivered. This affects only Android M and onwards.

1.3.2: May 17th, 2016

  • Improved speed of discovery between Android devices over WiFi Direct
  • Additional bug fixes and improvements

1.2.2: April 11th, 2016

  • NEW: Proximity Ranging API (Beta) adds context to the discovery events by providing 5 levels of proximity strength (from “immediate” to “extremely weak”). Visit the Get Started Android for more info.
  • Improved speed of discovery info update by additionally using the online channel (internet connection via our cloud) to relay discovery info updates.
  • All listeners get removed when disableP2PKit is called.
  • Optimised discovery by further reducing unnecessary background connections. Read more about it in our FAQ.
  • Added onDisabled and onResumed callback to the P2PKitStatusCallback.
  • Improved P2P discovery context by prioritizing closer peers (BLE)
  • Additional bug fixes and improvements

1.1.1: January 22nd, 2016

  • API is re-designed to feel more natural and is easier to use than ever before. A light migration guide can be found here
  • The content provider is now deprecated
  • Improved Android discovery Speed: p2pkit additionally uses the online channel (internet connection via our cloud) to relay discovery info, which makes it much faster!
  • Improved handling of recovery after losing connection to P2P Services
  • Improved bluetooth discovery
  • Additional bug fixes and improvements

1.0.9: November 26th, 2015

  • Fixed a bug which prevented p2pkit from recovering fully when P2P Services has exited abnormally

1.0.5: November 6th, 2015

  • Improved stability of discovery in a group
  • Resolved an issue when p2pkit is installed on devices with no hardware compatibility
  • Fixed an error message which appears when P2P Services exits abnormally
  • Fixed a lifecycle issue which occurs when creating a KitClient instance before checking isP2PServicesAvailable
  • Additional bug fixes and improvements

1.0.3: September 25th, 2015

  • NEW: Nearby devices can exchange a payload using the discovery info API. The payload is attached to the peer delivered with the discovery event (optionally).
  • Improved discovery performance and stability
  • Improved compatibility between KitClient and P2P Services
  • Various bug fixes and improvements

Note: This release introduces breaking changes and is not backwards compatible to previous beta versions. Please make sure to update your apps for maximal compatibility.

Known issues

  • Due to an issue with the Samsung S6 (6.0.1) reconnecting to the p2pkit backend may not work when the device is in Doze mode.
  • Discovery Info updates may not be propagated to discovered peers if the device is temporarily offline.
  • Disabling bluetooth while discovery is running on HTC devices with Android 6.0.1 may lead to a crash. The issue is similar to the one reported to AltBeacon.