Skip to content

Commit

Permalink
Commit of version 1.3.3 - Important for upcoming iOS 13.4 release. Pl…
Browse files Browse the repository at this point in the history
…ease see CHANGELOG.md for further info.
  • Loading branch information
AntonMeier committed Mar 11, 2020
1 parent 7e87e60 commit b3a6d9e
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 223 deletions.
89 changes: 61 additions & 28 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,82 @@
# fliclib-ios 1.2.3
![Flic Logo Black](https://user-images.githubusercontent.com/2717016/70526105-1bbaa200-1b49-11ea-9aa0-49e7959300c3.png)

**Changes**
# Changelog

This file documents the changes between different versions of the `fliclib.framework` for the original Flic.

## fliclib-ios 1.3.3

### Changes

### Significant Changes

* Adjustments made to the framework in order to support Core Bluetooth API changes indtroduced in iOS 13.4. Older versions of this framework will still work on iOS 13.4, but we do recommend updating. If you do not update the framework then there is a risk that the button connection will not be re-set properly if connection is lost during the Bluetooth LE encryption exchange/setup process. This is particularily important for applications that uses long-term execution in the background.

### Minor Changes

* Added human readable descriptions to all `SCLFlicError` codes, except the ones prefixed with `SCLFlicErrorBluetoothError`. The description can be read using the `NSLocalizedDescriptionKey` key of the error’s userInfo dictionary.

* All error codes in the framework are now unique and only ever used once each. This is to make troubleshooting easier.

* New error codes:
* `SCLFlicErrorIllegalVerificationResponse`
* `SCLFlicErrorCouldNotDiscoverServices`
* `SCLFlicErrorConnectionRetryLimitReached`

* Renamed error codes:
* `SCLFlicErrorCouldNotCompleteTask` to `SCLFlicErrorCouldNotForgetButton`

* The framework is no longer code-signed by us. Our signature on the framework is not needed since the end developer (you) will need to re-sign it on build regardless. This is done using the `Embed & Sign` option when importing the framework.

* Changed bluetooth connection parameters (for iOS 12 and above) in order to achieve lower click latency on events that occur while the Flic is connected. This should not affect the Flic battery life.

## fliclib-ios 1.2.3

### Changes

* Fixed a bug that caused click events to be slower than they should have been, particularly when lowLatency mode was used.

# fliclib-ios 1.2.2
## fliclib-ios 1.2.2

**Changes**
### Changes

* Corrected a UIApplication method call that accidentally ran on a background queue.
* State restoration adjusted slightly to better work with iOS11.1/2.

# fliclib-ios 1.2.0
## fliclib-ios 1.2.0

**Changes**
### Changes

* Bluetooth connectivity fixes for iOS11
* fliclib data storage moved from NSDocumentDirectory to NSLibraryDirectory. Any existing old files will be moved over to the new location.

# fliclib-ios 1.1.11
## fliclib-ios 1.1.11

**Changes**
### Changes

* A few iOS 10.2 bluetooth patches
* Added SCLFlicButtonTriggerBehaviorClick which can be used if you only need click and want the lowest possible latency on that event.

# fliclib-ios 1.1.7
## fliclib-ios 1.1.7

**Changes**
### Changes

* iOS 10 compatibility added. This version is a mandatory update if you need iOS 10 support. Apple has unfortunately made API breaking changes to the Bluetooth framework which is why this update is needed. Any apps using older versions of the fliclib framework will stop working properly if a user updates to iOS 10 unless this has been updated.

# fliclib-ios 1.1.5
## fliclib-ios 1.1.5

Bug fix release.

**Issues Fixed**
### Issues Fixed

* Added an event ack for every button events unique per app. In certain conditions a race condition could occur where one app could fetch all the queued events from the button before the other app connected. Now both the third party app and the Flic app will get all the events even if one of the apps had the button disconnected while the event happened.
* Corrected HTML tags is header file.

# fliclib-ios 1.1.3
## fliclib-ios 1.1.3

This release has a lot of API breaking changes. We have collected a lot of feedback and decided to make some structural changes in order to make it easier to implement the fliclib framework. This framework will only work together with the Flic 2.0 and above app version and requires that the 'flic20' url scheme is added to the plist file instead of 'flic'.

**Changes**
### Changes

* The manager is now a singleton. This makes sense since we only support one instance per application. It also helps it order to avoid the need to store and pass references across multiple views and classes.
* The manager now has a defaultButtonDelegate that you can set if you know in advance where you want the events. This also removes the need for implementing the managerDidRestoreState since the delegates will also be set on restoration.
Expand All @@ -58,26 +90,26 @@ This release has a lot of API breaking changes. We have collected a lot of feedb
* The grab method has changed name to grabFlicFromFlicAppWithCallbackUrlScheme: and the scheme should only be the url scheme name that you have registered, meaning not a full URL.
* Cleanup of error codes.

**Issues Fixed**
### Issues Fixed

* Fixed issue that caused a manually disconnected button to connect after state restoration.

# fliclib-ios 1.0.3
## fliclib-ios 1.0.3

**Changes**
### Changes

* Changes to BLE reconnection
* Internal rework
* Updated error codes

**Issues Fixed**
### Issues Fixed

* Fixed issue that caused connection to fail if you set mode directly before initiating a connection.
* Fixed issue in outgoing packet signing that caused an invalid signature on packets send if the app was crashed and relaunched in the background during an active Flic connection.

# fliclib-ios 0.9.5
## fliclib-ios 0.9.5

**Changes**
### Changes

* Overall stabilify implovements.
* Bluetooth rework to improve connectivity.
Expand All @@ -86,38 +118,39 @@ This release has a lot of API breaking changes. We have collected a lot of feedb
* Bitcode support added.
* refreshPendingConnections: method added to SCLFlicManager. This method is important when using the background mode for Flic in order to keep the pending connections in a proper state. Please see documentation for more information about that.

# fliclib-ios 0.8.2
## fliclib-ios 0.8.2

**Changes**
### Changes

* Stability improvements.
* Added error handling to generateButtonFromURL:error:. Possible errors are: SCLFlicErrorButtonAlreadyExisting, SCLFlicErrorMissingData, SCLFlicErrorInvalidSignature, SCLFlicErrorUnknown
* Added isReady property.


# fliclib-ios 0.7.1
## fliclib-ios 0.7.1

**Changes**
### Changes

* Stability improvements.
* Passive mode removed, use ActiveKeepAlive for those use-cases instead.
* Updated Documentation.

# fliclib-ios 0.6.7
## fliclib-ios 0.6.7

**Changes**
### Changes

* Added a flag for background execution in the manager initializing method.
* Swift compatibillity verified.
* Added Nullability Annotations.
* Updated documentation.

**Issues fixed**
### Issues fixed

* Fixed an issue that resulted in the flicButtonIsReady: not being sent on every connect.
* Fixed an issue with the outgoing packet signing that caused the Flic to drop indicateLED: calls.

Please note that these fixes requires the firmware version R11 on the Flic to work properly.

# fliclib-ios 0.6.6
## fliclib-ios 0.6.6

Initial commit
15 changes: 9 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
![Flic Logo Black](https://user-images.githubusercontent.com/2717016/70526105-1bbaa200-1b49-11ea-9aa0-49e7959300c3.png)

# fliclib-ios
The fliclib framework for iOS.
This framework works in collaboration with the Flic app so please make sure that you have it installed before you begin.

Notice: The instructions and documentation available at our website have not been updated to work with the latest release of the framework. This will be done soon.
For instructions on how to implement this go to https://partners.flic.io/partners/developers/ios-tutorial, or take a look at one of our example projects here on github.
This is the official iOS framework for the original **Flic 1**. If you are looking to integrate the new **Flic 2**, please see [https://github.com/50ButtonsEach/flic2lib-ios](https://github.com/50ButtonsEach/flic2lib-ios)

## Getting Started

This framework works in collaboration with the Flic app so please make sure that you have it installed before you begin. For instructions on how to implement this see [https://partners.flic.io/partners/developers/ios-tutorial](https://partners.flic.io/partners/developers/ios-tutorial), or take a look at one of our example projects here on github for [Swift](https://github.com/50ButtonsEach/ios-boilerplate-swift) or [Objective-C](https://github.com/50ButtonsEach/ios-boilerplate-objc).

**Simulator Support**
## Simulator Support

The framework itself does not contain slices for x86 and i386 (iOS Simulator). The reason for this is that if we were to add those slices to the framework then
they would have to be removed before App Store submission, which is not a very straightforward thing to do. So, for those who want to run the framework in the simulator
Expand All @@ -17,6 +20,6 @@ To use this wrapper follow these steps:
2. On all the places in your code where you need to import fliclib you should import the wrapper instead. In other words, replace `#import <fliclib/fliclib.h>` with `#import "fliclibWrapper.h"`. Of course, the file path will depend on how you have configured your project. For example, if you have the *fliclib-ios* repository as a git submodule in your project root then it might look like this `#import "../fliclib-ios/simulator-wrapper/fliclibWrapper.h"`.
3. Make sure that both `SCLFlicManagerSimulator.m` and `SCLFlicButtonSimulator.m` are added to *Compile Sources* in your project *Build Phases*.

**Licence**
## Licence

Any documentation or source code contained in this repository is released under [CC0](LICENCE%20(for%20the%20documentation%20and%20source%20code).txt). The fliclib binary is released under a [separate license](LICENCE%20(for%20the%20fliclib%20binary).txt) which allows you to use it almost without restrictions.
24 changes: 18 additions & 6 deletions fliclib.framework/Headers/SCLFlicButton.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// @framework fliclib
//
// Created by Anton Meier on 2014-06-18.
// Copyright (c) 2017 Shortcut Labs. All rights reserved.
// Copyright (c) 2020 Shortcut Labs. All rights reserved.
//

#import <Foundation/Foundation.h>
Expand Down Expand Up @@ -133,9 +133,9 @@ typedef NS_ENUM(NSInteger, SCLFlicError) {
*/
SCLFlicErrorUnknown = 0,
/**
* General error code that can be sent to let you know that a started task did not complete.
* The framework was unable to forget the button.
*/
SCLFlicErrorCouldNotCompleteTask = 1,
SCLFlicErrorCouldNotForgetButton = 1,
/**
* If a connection to a button failed for unknown reasons. This could for example be if it is brought out of range during a connection sequense.
*/
Expand All @@ -145,9 +145,9 @@ typedef NS_ENUM(NSInteger, SCLFlicError) {
*/
SCLFlicErrorCouldNotUpdateRSSI = 3,
/**
* If you try to access a button that is currently being used with another device, or another app on the same iOS device.
* The data sent by the Flic/PbF button does not confirn with the protocol specificatin.
*/
SCLFlicErrorButtonIsPrivate = 10,
SCLFlicErrorUnknownDataReceived = 5,
/**
* A crypthographic error has occurred.
*/
Expand All @@ -164,6 +164,18 @@ typedef NS_ENUM(NSInteger, SCLFlicError) {
* You are trying to grab a Flic button that you have already grabbed before.
*/
SCLFlicErrorButtonAlreadyGrabbed = 15,
/**
* The button's verification message was not valid.
*/
SCLFlicErrorIllegalVerificationResponse = 31,
/**
* The iOS device was unable to performe the bluetooth specific service discovery.
*/
SCLFlicErrorCouldNotDiscoverServices = 33,
/**
* The button was unable to create a stable connection even after a number of re-tries.
*/
SCLFlicErrorConnectionRetryLimitReached = 34,
/**
* Bluetooth specific error
*/
Expand Down Expand Up @@ -298,7 +310,7 @@ typedef NS_ENUM(NSInteger, SCLFlicError) {
* Battery consumption will increase with this activated.
*
*/
@property (nonatomic, readwrite) BOOL lowLatency;
@property(nonatomic, readwrite) BOOL lowLatency;

/*!
* @property triggerBehavior
Expand Down
2 changes: 1 addition & 1 deletion fliclib.framework/Headers/SCLFlicManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// @framework fliclib
//
// Created by Anton Meier on 2014-06-18.
// Copyright (c) 2017 Shortcut Labs. All rights reserved.
// Copyright (c) 2020 Shortcut Labs. All rights reserved.
//

#import <Foundation/Foundation.h>
Expand Down
2 changes: 1 addition & 1 deletion fliclib.framework/Headers/fliclib.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// fliclib
//
// Created by Anton Meier on 2016-04-20.
// Copyright (c) 2017 Shortcut Labs. All rights reserved.
// Copyright (c) 2020 Shortcut Labs. All rights reserved.
//

#import <Foundation/Foundation.h>
Expand Down
Binary file modified fliclib.framework/Info.plist
Binary file not shown.
Loading

0 comments on commit b3a6d9e

Please sign in to comment.