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 devicePPKPeer2PeerDiscoveryUnauthorized
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 ofstartP2PDiscoveryWithDiscoveryInfo:(NSData*)info stateRestoration:(BOOL)enabled
Removed methods
PPKControllerDelegate
- The delegate method
didUpdateP2PDiscoveryInfoForPeer:(PPKPeer*)peer
was removed. Please usediscoveryInfoUpdatedForPeer:(PPKPeer*)peer
instead.
PPKController
- The method
startP2PDiscovery
was removed. Please usestartP2PDiscoveryWithDiscoveryInfo:(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 bydiscoveryInfoUpdatedForPeer:(PPKPeer*)peer
PPKController
- The method
startP2PDiscovery
was deprecated in favor ofstartP2PDiscoveryWithDiscoveryInfo: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
andLOW_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()
andsetDiscoveryPowerMode(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 StatusResultINTERNAL_ERROR
has been removed accordingly. - Renamed
INVALID_PACKAGE_NAME
toINVALID_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 handleonError(StatusResult result)
appropriately. - Add/remove/rename various StatusResults codes, please refer to our API documentation for more info
- Renamed
Peer.getNodeId()
toPeer.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. ExpectProximityStrength.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
toDiscoveryInfoTooLongException
- 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.