Skip to content

Releases: ibm-bluemix-mobile-services/bms-clientsdk-swift-core

Support for Xcode 8.3.1

11 Apr 18:56
Compare
Choose a tag to compare

Fixed

  • Build warnings present in Xcode 8.3.1

Internal bug fix

16 Jan 22:26
Compare
Choose a tag to compare

Fixed

  • Improper JSON type ([String: String] instead of [String: Any]) in the BaseIdentity classes

Improved

  • API documentation for BMSURLSession, BaseRequest, and Request

Network monitoring and request auto-retries

13 Jan 20:04
Compare
Choose a tag to compare

Added

  • The ability to monitor the state of the iOS device's connection to the internet via the new NetworkMonitor API.
  • The option to automatically resend network requests that failed due to network issues. To opt in to automatic retries, specify the number of retries you want in the autoRetries parameter in the BaseRequest or BMSURLSession initializer (depending on which API you are sending requests with).

For more information on how to use these new features, see the README.

Refactored network requests

06 Dec 23:44
Compare
Choose a tag to compare

Improved

  • Refactored the internal implementation of network requests, replacing uses of URLSession with BMSURLSession.

Fixed

  • Recording network request metadata with BMSAnalytics. Now, network metadata gets recorded properly for all network requests made with Request or BMSURLSession, whether the request is to an MCA-protected backend or any other resource.
  • App crashes caused by using BMSURLSession with a URLSessionDelegate that did not have certain methods implemented.

Better documentation

21 Nov 17:02
Compare
Choose a tag to compare

Added

  • Proper API documentation. These API docs are automatically updated and re-published by the Travis-CI build when merging a pull request to the master branch.

Improved

  • Improved the organization and expanded the content of the README, including a clearer summary, a link to new API documentation, and more complete usage examples.

Fixed

  • Incorrect JSON type for Swift 3 in the BaseIdentity classes. This change is needed to fix BMSSecurity Issue #8.

Automated version release process

02 Nov 16:06
Compare
Choose a tag to compare

Improved

  • Automated the process for releasing new versions of BMSCore using Travis-CI. Directly pushing to the master branch has been disabled, so new version releases must be done via a pull request to master and approved by an administrator. Once the pull request is merged, the Travis build will automatically release the new version if BMSCore.podspec has been updated with a new version number.

Recording network request metadata

24 Oct 22:48
Compare
Choose a tag to compare

Added

  • DeviceEvents.network
    • Note: This only applies to projects that also have BMSAnalytics installed.
    • By passing this value to the Analytics initializer in the BMSAnalytics SDK, metadata for all network requests made by Bluemix Mobile Services SDKs will be automatically recorded. This includes custom network requests made using BMSURLSession.

Fixed BaseAppIdentity bundle ID

06 Oct 17:52
Compare
Choose a tag to compare

Fixed

  • The security class BaseAppIdentity was not correctly retrieving the app's bundle identifier. This issue was discovered in the BMSSecurity SDK.

Fixed log sending defect

29 Sep 21:25
Compare
Choose a tag to compare

Fixed

  • Logger.send() and Analytics.send() were failing to send logs to the Mobile Analytics Service.

Xcode 8 and Swift 3

27 Sep 17:53
Compare
Choose a tag to compare

Added

  • Support for the official Xcode 8 release (8A218a), including Swift 2.3 and 3.0. BMSAnalytics continues to support Xcode 7.3 and Swift 2.2 as well.

Updated

  • BmsCompletionHandler --> BMSCompletionHandler

BMSClient API

  • defaultRequestTimeout --> requestTimeout
  • REGION_US_SOUTH --> Region.usSouth
  • REGION_UK --> Region.United_Kingdom
  • REGION_SYDNEY --> Region.Sydney

BaseRequest API

  • CONTENT_TYPE --> contentType
  • init(url:headers:queryParameters:method:timeout:cachePolicy:) --> init(url:method:headers:queryParameters:timeout:cachePolicy:)
  • sendString(requestBody:), sendData(requestBody:), and send() --> send(requestBody:)

BMSURLSession API

  • BMSURLSession has different method signatures between Swift 2 and Swift 3. It is modeled after the native Swift types, NSURLSession (Swift 2) and URLSession (Swift 3). Refer to the documentation for those classes to get the initializer and methods. BMSURLSession only supports data tasks and upload tasks.

BMSURLSessionDelegate API

  • BMSURLSessionDelegate has different method signatures between Swift 2 and Swift 3. It is modeled after the native Swift types, NSURLSessionDelegate (Swift 2) and URLSessionDelegate (Swift 3). Refer to the documentation for those classes to get the initializer and methods. BMSURLSessionDelegate implements URLSessionDelegate, URLSessionTaskDelegate, and URLSessionDataDelegate.