From 34ed3148cad7beda2eb39e96a881539b4a304bda Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Mon, 20 Feb 2017 14:47:49 +0200 Subject: [PATCH 01/16] added regions to aped --- Source/BluemixAppID/api/AppID.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/BluemixAppID/api/AppID.swift b/Source/BluemixAppID/api/AppID.swift index 8e66d75..b4ac949 100644 --- a/Source/BluemixAppID/api/AppID.swift +++ b/Source/BluemixAppID/api/AppID.swift @@ -25,6 +25,10 @@ public class AppID { public static var sharedInstance = AppID() internal static let logger = Logger.logger(name: AppIDConstants.AppIDLoggerName) + static public let REGION_US_SOUTH = ".ng.bluemix.net"; + static public let REGION_UK = ".eu-gb.bluemix.net"; + static public let REGION_SYDNEY = ".au-syd.bluemix.net"; + internal init() {} From 4e035cd8529f8ee662df0f878fbe6c038257b6a9 Mon Sep 17 00:00:00 2001 From: odedBetzalel Date: Mon, 20 Feb 2017 15:02:08 +0200 Subject: [PATCH 02/16] Update README.md --- README.md | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bd0b03d..3469916 100644 --- a/README.md +++ b/README.md @@ -1 +1,109 @@ -# appid-clientsdk-swift +# Bluemix AppID +Swift SDK for the Bluemix AppID service + +[![Bluemix powered][img-bluemix-powered]][url-bluemix] +[![Travis][img-travis-master]][url-travis-master] +[![Coveralls][img-coveralls-master]][url-coveralls-master] +[![Codacy][img-codacy]][url-codacy] +[![Version][img-version]][url-bintray] +[![License][img-license]][url-bintray] + +[![GithubWatch][img-github-watchers]][url-github-watchers] +[![GithubStars][img-github-stars]][url-github-stars] +[![GithubForks][img-github-forks]][url-github-forks] + +## Requirements +Xcode 8.1 or above, CocoaPods 1.1.0 or higher, MacOS 10.11.5 or higher, iOS 9 or higher. + +## Installing the SDK: + +1. Add the 'BluemixAppID' dependency to your Podfile, for example: + + ```swift + target do + use_frameworks! + pod 'BluemixAppID' + end + ``` +2. From the terminal, run: + ```swift + pod install --repo-update + ``` + +## Using the SDK: + +### Initializing the AppId client SDK +1. Open your Xcode project and enable Keychain Sharing (Under project settings --> Capabilities --> Keychain sharing) +2. Under project setting --> info --> Url Types, Add $(PRODUCT_BUNDLE_IDENTIFIER) as a URL Scheme +3. Initialize the client SDK by passing the tenantId and region parameters to the initialize method. A common, though not mandatory, place to put the initialization code is in the application:didFinishLaunchingWithOptions: method of the AppDelegate in your Swift application. + ```swift + AppID.sharedInstance.initialize(tenantId: , bluemixRegion: AppID.) + ``` +4. Add the following code to you AppDelegate file + ```swift + func application(_ application: UIApplication, open url: URL, options :[UIApplicationOpenURLOptionsKey : Any]) -> Bool { + return AppID.sharedInstance.application(application, open: url, options: options) + } + ``` +* Replace ״tenantId״ with the App ID service tenantId. +* Replace ״region״ with the App ID region. + +For more information on obtaining these values see Before you begin. + +### Using Login Widget +After the App ID client SDK is initialized, you can start authenticate users by launching the Login Widget. +```swift +class delegate : AuthorizationDelegate { + public func onAuthorizationSuccess(accessToken: AccessToken, identityToken: IdentityToken, response:Response?) { + //User authenticated + } + + public func onAuthorizationCanceled() { + //Authentication canceled by the user + } + + public func onAuthorizationFailure(error: AuthorizationError) { + //Exception occurred + } +} + +AppID.sharedInstance.loginWidget?.launch(delegate: delegate()) +``` +**Note**: The Login widget default configuration use Facebook and Google as authentication options. + If you configure only one of them the login widget will NOT launch and the user will be redirect to the configured idp authentication screen. + +### Invoking protected resources + +```swift +BMSClient.sharedInstance.initialize(bluemixRegion: AppID.) +BMSClient.sharedInstance.authorizationManager = AppIDAuthorizationManager(appid:AppID.sharedInstance) +var request:Request = Request(url: "") +r.send(completionHandler: {(response:Response?, error:Error?) in + //code handling the response here +}) +``` + +### License +This package contains code licensed under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 and may also view the License in the LICENSE file within this package. + +[img-bluemix-powered]: https://img.shields.io/badge/bluemix-powered-blue.svg +[url-bluemix]: http://bluemix.net +[url-bintray]: https://bintray.com/ibmcloudsecurity/appid-clientsdk-android +[img-license]: https://img.shields.io/github/license/ibm-cloud-security/appid-clientsdk-android.svg +[img-version]: https://img.shields.io/bintray/v/ibmcloudsecurity/maven/appid-clientsdk-android.svg + +[img-github-watchers]: https://img.shields.io/github/watchers/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Watch +[url-github-watchers]: https://github.com/ibm-cloud-security/appid-clientsdk-android/watchers +[img-github-stars]: https://img.shields.io/github/stars/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Star +[url-github-stars]: https://github.com/ibm-cloud-security/appid-clientsdk-android/stargazers +[img-github-forks]: https://img.shields.io/github/forks/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Fork +[url-github-forks]: https://github.com/ibm-cloud-security/appid-clientsdk-android/network + +[img-travis-master]: https://travis-ci.org/ibm-cloud-security/appid-clientsdk-android.svg +[url-travis-master]: https://travis-ci.org/ibm-cloud-security/appid-clientsdk-android + +[img-coveralls-master]: https://coveralls.io/repos/github/ibm-cloud-security/appid-clientsdk-android/badge.svg +[url-coveralls-master]: https://coveralls.io/github/ibm-cloud-security/appid-clientsdk-android + +[img-codacy]: https://api.codacy.com/project/badge/Grade/d41f8f069dd343769fcbdb55089561fc?branch=master +[url-codacy]: https://www.codacy.com/app/ibm-cloud-security/appid-clientsdk-android From a7b496a8c49a13c241954f71f5c7aa1816aeee42 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Mon, 20 Feb 2017 16:29:19 +0200 Subject: [PATCH 03/16] token structure has changed --- BluemixAppIDTests/TokenTests.swift | 4 ++-- .../BluemixAppID/api/AppIDAuthorizationManager.swift | 2 +- .../BluemixAppID/internal/tokens/AbstractToken.swift | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/BluemixAppIDTests/TokenTests.swift b/BluemixAppIDTests/TokenTests.swift index d696090..c770444 100644 --- a/BluemixAppIDTests/TokenTests.swift +++ b/BluemixAppIDTests/TokenTests.swift @@ -29,7 +29,7 @@ class TokenTests: XCTestCase { XCTAssertEqual(token?.audience, "26cb012eb327c612d90a6819163b6bcbd4849cbb") XCTAssertTrue(token?.issuedAt == Date(timeIntervalSince1970: 1487081278 as Double)) XCTAssertEqual(token?.tenant, "4dba9430-54e6-4cf2-a516-6f73feb702bb") - XCTAssertEqual(token?.authBy, "facebook") + XCTAssertEqual(token?.authenticationMethods?[0], nil) XCTAssertTrue(token!.isExpired) XCTAssertTrue(token?.expiration == Date(timeIntervalSince1970: 1487084878 as Double)) @@ -55,7 +55,7 @@ class TokenTests: XCTestCase { XCTAssertEqual(token?.audience, "26cb012eb327c612d90a6819163b6bcbd4849cbb") XCTAssertTrue(token?.issuedAt == Date(timeIntervalSince1970: 1487081278 as Double)) XCTAssertEqual(token?.tenant, "4dba9430-54e6-4cf2-a516-6f73feb702bb") - XCTAssertEqual(token?.authBy, "facebook") + XCTAssertEqual(token?.authenticationMethods?[0], nil) XCTAssertTrue(token!.isExpired) XCTAssertTrue(token?.expiration == Date(timeIntervalSince1970: 1487084878 as Double)) diff --git a/Source/BluemixAppID/api/AppIDAuthorizationManager.swift b/Source/BluemixAppID/api/AppIDAuthorizationManager.swift index 8fb9d2c..1d981b0 100644 --- a/Source/BluemixAppID/api/AppIDAuthorizationManager.swift +++ b/Source/BluemixAppID/api/AppIDAuthorizationManager.swift @@ -112,7 +112,7 @@ public class AppIDAuthorizationManager: BMSCore.AuthorizationManager { public var userIdentity:UserIdentity? { let idToken = self.identityToken let identity:[String:Any] = [ - BaseUserIdentity.Key.authorizedBy : idToken?.authBy ?? "", + BaseUserIdentity.Key.authorizedBy : idToken?.authenticationMethods ?? "", BaseUserIdentity.Key.displayName : idToken?.name ?? "", // TODO: what should be this value? - not implemted in android BaseUserIdentity.Key.ID : idToken?.name ?? "" diff --git a/Source/BluemixAppID/internal/tokens/AbstractToken.swift b/Source/BluemixAppID/internal/tokens/AbstractToken.swift index 246236d..873af99 100644 --- a/Source/BluemixAppID/internal/tokens/AbstractToken.swift +++ b/Source/BluemixAppID/internal/tokens/AbstractToken.swift @@ -13,7 +13,7 @@ public protocol Token { var expiration: Date? {get} var issuedAt: Date? {get} var tenant: String? {get} - var authBy: String? {get} + var authenticationMethods: [String]? {get} var isExpired: Bool {get} var isAnonymous: Bool {get} } @@ -26,7 +26,7 @@ internal class AbstractToken: Token { private static let EXPIRATION = "exp" private static let ISSUED_AT = "iat" private static let TENANT = "tenant" - private static let AUTH_BY = "auth_by" + private static let AUTH_METHODS = "amr" var raw: String var header: Dictionary @@ -98,9 +98,9 @@ internal class AbstractToken: Token { return payload[AbstractToken.TENANT] as? String } - var authBy: String? { - return payload[AbstractToken.AUTH_BY] as? String - } + var authenticationMethods: [String]? { + return payload[AbstractToken.AUTH_METHODS] as? [String] + } var isExpired: Bool { guard let exp = self.expiration else { From 39a633ac11c64cf442826d3db7b7151cc281e0c8 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Mon, 20 Feb 2017 16:45:44 +0200 Subject: [PATCH 04/16] fixed for codacy --- BluemixAppIDTests/UtilsTests.swift | 1 + Source/BluemixAppID/api/UserAttributeDelegate.swift | 2 +- Source/BluemixAppID/internal/AppIDConstants.swift | 4 ++-- Source/BluemixAppID/internal/Utils.swift | 6 +++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/BluemixAppIDTests/UtilsTests.swift b/BluemixAppIDTests/UtilsTests.swift index 4b7ee3e..c807cf8 100644 --- a/BluemixAppIDTests/UtilsTests.swift +++ b/BluemixAppIDTests/UtilsTests.swift @@ -60,6 +60,7 @@ class UtilsTest: XCTestCase { XCTAssertNotNil(appInfo.name) XCTAssertNotNil(appInfo.version) } + // func testGetDeviceDictionary() { // let deviceIdentity = AppIDDeviceIdentity() // let appIdentity = AppIDAppIdentity() diff --git a/Source/BluemixAppID/api/UserAttributeDelegate.swift b/Source/BluemixAppID/api/UserAttributeDelegate.swift index c7e6aab..db7cf71 100644 --- a/Source/BluemixAppID/api/UserAttributeDelegate.swift +++ b/Source/BluemixAppID/api/UserAttributeDelegate.swift @@ -13,5 +13,5 @@ public protocol UserAttributeDelegate { func onSuccess(var1: [String:Any]) func onFailure(var1: UserAttributeError) - + } diff --git a/Source/BluemixAppID/internal/AppIDConstants.swift b/Source/BluemixAppID/internal/AppIDConstants.swift index 6f7c62d..69d5c4b 100644 --- a/Source/BluemixAppID/internal/AppIDConstants.swift +++ b/Source/BluemixAppID/internal/AppIDConstants.swift @@ -163,7 +163,7 @@ internal class AppIDConstants { internal static var OPEN_ID_VALUE = "openid" internal static var TRUE_VALUE = "true" - //label names + // label names internal static let KEY_CHAIN_PREFIX = "com.ibm.mobilefirstplatform.clientsdk.swift.bmssecurity" internal static let OAUTH_CERT_LABEL = "\(KEY_CHAIN_PREFIX).certificate" internal static let _PUBLIC_KEY_LABEL = "\(KEY_CHAIN_PREFIX).publickey" @@ -176,7 +176,7 @@ internal class AppIDConstants { internal static let APP_IDENTITY_LABEL = "appIdentity" internal static let DEVICE_IDENTITY_LABEL = "deviceIdentity" internal static let USER_IDENTITY_LABEL = "userIdentity" - //labels + // labels internal static let BMSSecurityErrorDomain = "com.ibm.mobilefirstplatform.clientsdk.swift.bmssecurity" internal static let privateKeyIdentifier = "\(_PRIVATE_KEY_LABEL):\(nameAndVer.name):\(nameAndVer.version)" diff --git a/Source/BluemixAppID/internal/Utils.swift b/Source/BluemixAppID/internal/Utils.swift index acbe89d..cb8acfc 100644 --- a/Source/BluemixAppID/internal/Utils.swift +++ b/Source/BluemixAppID/internal/Utils.swift @@ -23,7 +23,7 @@ public class Utils { if JSONSerialization.isValidJSONObject(value) { - do{ + do { let data = try JSONSerialization.data(withJSONObject: value, options: options) guard let string = NSString(data: data, encoding: String.Encoding.utf8.rawValue) as? String else { throw AppIDError.jsonUtilsError(msg: "Json is malformed") @@ -139,7 +139,7 @@ public class Utils { // mop things up if we ended on a boundary k = j - if (current == "=") { + if current == "=" { switch (i % 4) { case 1: // Invalid state @@ -189,7 +189,7 @@ public class Utils { output[2] = ((input[1] & 0x0F) << 2) | ((input[2] & 0xC0) >> 6) output[3] = input[2] & 0x3F ctcopy = 4 - switch (ctremaining) { + switch ctremaining { case 1: ctcopy = 2 case 2: From 4c8b158822cd74e323ee5ac921a3e241738fc345 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Mon, 20 Feb 2017 16:45:58 +0200 Subject: [PATCH 05/16] fixed for codify --- Source/BluemixAppID/api/AppIDAuthorizationManager.swift | 3 +-- Source/BluemixAppID/internal/AuthorizationManager.swift | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Source/BluemixAppID/api/AppIDAuthorizationManager.swift b/Source/BluemixAppID/api/AppIDAuthorizationManager.swift index 1d981b0..727d0e3 100644 --- a/Source/BluemixAppID/api/AppIDAuthorizationManager.swift +++ b/Source/BluemixAppID/api/AppIDAuthorizationManager.swift @@ -18,8 +18,7 @@ public class AppIDAuthorizationManager: BMSCore.AuthorizationManager { internal var oAuthManager:OAuthManager private static let logger = Logger.logger(name: Logger.bmsLoggerPrefix + "AppIDAuthorizationManager") - - + public init(appid:AppID) { self.oAuthManager = appid.oauthManager! } diff --git a/Source/BluemixAppID/internal/AuthorizationManager.swift b/Source/BluemixAppID/internal/AuthorizationManager.swift index 4ebf130..aa633d9 100644 --- a/Source/BluemixAppID/internal/AuthorizationManager.swift +++ b/Source/BluemixAppID/internal/AuthorizationManager.swift @@ -40,7 +40,7 @@ public class AuthorizationManager { } return url } - + public func launchAuthorizationUI(authorizationDelegate:AuthorizationDelegate) { self.registrationManager.ensureRegistered(callback: {(error:AppIDError?) in From b4b1b2acb479172a0259cc0722ce4c30397160e9 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Mon, 20 Feb 2017 17:00:23 +0200 Subject: [PATCH 06/16] fix for codacy --- BluemixAppIDTests/AuthorizationUIManagerTests.swift | 2 +- BluemixAppIDTests/SecurityUtilsTests.swift | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/BluemixAppIDTests/AuthorizationUIManagerTests.swift b/BluemixAppIDTests/AuthorizationUIManagerTests.swift index 5f908d9..8536512 100644 --- a/BluemixAppIDTests/AuthorizationUIManagerTests.swift +++ b/BluemixAppIDTests/AuthorizationUIManagerTests.swift @@ -24,7 +24,7 @@ public class AuthorizationUIManagerTests: XCTestCase { self.exp = exp super.init(oAuthManager: oAuthManager) } - + override func obtainTokens(code:String, authorizationDelegate:AuthorizationDelegate) { self.exp.fulfill() } diff --git a/BluemixAppIDTests/SecurityUtilsTests.swift b/BluemixAppIDTests/SecurityUtilsTests.swift index a24e4d9..ab2ebce 100644 --- a/BluemixAppIDTests/SecurityUtilsTests.swift +++ b/BluemixAppIDTests/SecurityUtilsTests.swift @@ -21,10 +21,7 @@ class SecurityUtilsTest: XCTestCase { var keySize = 512 var publicKeyTag = AppIDConstants.publicKeyIdentifier var privateKeyTag = AppIDConstants.privateKeyIdentifier - - - - + override func setUp() { super.setUp() TestHelpers.clearDictValuesFromKeyChain([publicKeyTag : kSecClassKey, privateKeyTag : kSecClassKey]) From 4ef62e17315d626b3d0752d1a7387e3eb3297894 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Mon, 20 Feb 2017 17:12:10 +0200 Subject: [PATCH 07/16] fix code for codacy --- Source/BluemixAppID/internal/LoginWidgetImpl.swift | 1 + Source/BluemixAppID/internal/PreferenceManager.swift | 2 +- dummyAppForKeyChain/AppDelegate.swift | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/BluemixAppID/internal/LoginWidgetImpl.swift b/Source/BluemixAppID/internal/LoginWidgetImpl.swift index b6b4b94..b1aeaef 100644 --- a/Source/BluemixAppID/internal/LoginWidgetImpl.swift +++ b/Source/BluemixAppID/internal/LoginWidgetImpl.swift @@ -23,4 +23,5 @@ public class LoginWidgetImpl: LoginWidget { public func launch(delegate: AuthorizationDelegate) { self.oauthManager.authorizationManager?.launchAuthorizationUI(authorizationDelegate: delegate) } + } diff --git a/Source/BluemixAppID/internal/PreferenceManager.swift b/Source/BluemixAppID/internal/PreferenceManager.swift index ce2c06b..549287c 100644 --- a/Source/BluemixAppID/internal/PreferenceManager.swift +++ b/Source/BluemixAppID/internal/PreferenceManager.swift @@ -18,7 +18,7 @@ internal class PreferenceManager { private(set) final var sharedPreferences:UserDefaults = UserDefaults.standard private static let logger = Logger.logger(name: Logger.bmsLoggerPrefix + "PreferenceManager") - + public func getStringPreference(name:String) -> StringPreference { return StringPreference(name: name, sharedPreferences: sharedPreferences) } diff --git a/dummyAppForKeyChain/AppDelegate.swift b/dummyAppForKeyChain/AppDelegate.swift index 8308e25..f32c20b 100644 --- a/dummyAppForKeyChain/AppDelegate.swift +++ b/dummyAppForKeyChain/AppDelegate.swift @@ -43,4 +43,3 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } - From bafb1fdfff8f61e43e412ecbc88441ceb17bd611 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Mon, 20 Feb 2017 17:48:43 +0200 Subject: [PATCH 08/16] changed user identity --- Source/BluemixAppID/api/AppIDAuthorizationManager.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/BluemixAppID/api/AppIDAuthorizationManager.swift b/Source/BluemixAppID/api/AppIDAuthorizationManager.swift index 727d0e3..9dbdcce 100644 --- a/Source/BluemixAppID/api/AppIDAuthorizationManager.swift +++ b/Source/BluemixAppID/api/AppIDAuthorizationManager.swift @@ -113,8 +113,7 @@ public class AppIDAuthorizationManager: BMSCore.AuthorizationManager { let identity:[String:Any] = [ BaseUserIdentity.Key.authorizedBy : idToken?.authenticationMethods ?? "", BaseUserIdentity.Key.displayName : idToken?.name ?? "", - // TODO: what should be this value? - not implemted in android - BaseUserIdentity.Key.ID : idToken?.name ?? "" + BaseUserIdentity.Key.ID : idToken?.subject ?? "" ] return BaseUserIdentity(map: identity) From b267979f2b836026ad0f56f76ff7218363fbf3d4 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Mon, 20 Feb 2017 18:09:53 +0200 Subject: [PATCH 09/16] removing ; --- Source/BluemixAppID/api/AppID.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/BluemixAppID/api/AppID.swift b/Source/BluemixAppID/api/AppID.swift index b4ac949..11f196a 100644 --- a/Source/BluemixAppID/api/AppID.swift +++ b/Source/BluemixAppID/api/AppID.swift @@ -25,9 +25,9 @@ public class AppID { public static var sharedInstance = AppID() internal static let logger = Logger.logger(name: AppIDConstants.AppIDLoggerName) - static public let REGION_US_SOUTH = ".ng.bluemix.net"; - static public let REGION_UK = ".eu-gb.bluemix.net"; - static public let REGION_SYDNEY = ".au-syd.bluemix.net"; + static public let REGION_US_SOUTH = ".ng.bluemix.net" + static public let REGION_UK = ".eu-gb.bluemix.net" + static public let REGION_SYDNEY = ".au-syd.bluemix.net" internal init() {} From 9116db20e94dfc9583d620eaf8e7358df73b5a45 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Tue, 21 Feb 2017 10:43:51 +0200 Subject: [PATCH 10/16] adding coveralls --- .ruby-version | 1 + .slather.yml | 5 +++++ .travis.yml | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .ruby-version create mode 100644 .slather.yml diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..9183195 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.4.0 \ No newline at end of file diff --git a/.slather.yml b/.slather.yml new file mode 100644 index 0000000..41e9b71 --- /dev/null +++ b/.slather.yml @@ -0,0 +1,5 @@ +coverage_service: coveralls +xcodeproj: BluemixAppID.xcodeproj +scheme: BluemixAppID +ignore: + - Tests/* \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 5cb57ad..49dc195 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ matrix: - osx_image: xcode8.1 install: - gem install jazzy + - gen install slather before_script: - rm -rf ~/Library/Developer/Xcode/DerivedData script: @@ -12,7 +13,8 @@ script: - pod lib lint --allow-warnings - xcodebuild -workspace 'BluemixAppID.xcworkspace' -scheme 'BluemixAppID' clean build CODE_SIGN_IDENTITY= CODE_SIGNING_REQUIRED=NO - xcodebuild -workspace 'BluemixAppID.xcworkspace' -list - - travis_retry xcodebuild -workspace 'BluemixAppID.xcworkspace' test -scheme 'BluemixAppIDTests' -destination 'platform=iOS Simulator,name=iPhone 6' CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO + - travis_retry xcodebuild -workspace 'BluemixAppID.xcworkspace' test -scheme 'BluemixAppIDTests' -destination 'platform=iOS Simulator,name=iPhone 6' CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -enableCodeCoverage YES + - slather coverage --coveralls --binary-basename BluemixAppID.framework -v # When merging or pushing to the master branch, release a new version and publish the API documentation - if [ "${TRAVIS_PULL_REQUEST}" = "false" ] && [ "${TRAVIS_BRANCH}" = "master" ] ; then bash scripts/release.sh; From f7779bcf766f8e62941bddf37c10a513cba7e7a5 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Tue, 21 Feb 2017 10:47:57 +0200 Subject: [PATCH 11/16] fix travis --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 49dc195..2ffb86c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ matrix: - osx_image: xcode8.1 install: - gem install jazzy - - gen install slather + - gem install slather before_script: - rm -rf ~/Library/Developer/Xcode/DerivedData script: @@ -12,7 +12,6 @@ script: - travis_wait pod update - pod lib lint --allow-warnings - xcodebuild -workspace 'BluemixAppID.xcworkspace' -scheme 'BluemixAppID' clean build CODE_SIGN_IDENTITY= CODE_SIGNING_REQUIRED=NO - - xcodebuild -workspace 'BluemixAppID.xcworkspace' -list - travis_retry xcodebuild -workspace 'BluemixAppID.xcworkspace' test -scheme 'BluemixAppIDTests' -destination 'platform=iOS Simulator,name=iPhone 6' CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -enableCodeCoverage YES - slather coverage --coveralls --binary-basename BluemixAppID.framework -v # When merging or pushing to the master branch, release a new version and publish the API documentation From 6f44f2fd5bb156881adb86bd8eafb4d1bb888190 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Tue, 21 Feb 2017 11:08:18 +0200 Subject: [PATCH 12/16] enabling coverage --- .../xcshareddata/xcschemes/BluemixAppID.xcscheme | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/BluemixAppID.xcodeproj/xcshareddata/xcschemes/BluemixAppID.xcscheme b/BluemixAppID.xcodeproj/xcshareddata/xcschemes/BluemixAppID.xcscheme index c1c0168..59fe947 100644 --- a/BluemixAppID.xcodeproj/xcshareddata/xcschemes/BluemixAppID.xcscheme +++ b/BluemixAppID.xcodeproj/xcshareddata/xcschemes/BluemixAppID.xcscheme @@ -26,7 +26,8 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> From 5843fe6288685e721b378045af5e8be78c075c3e Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Tue, 21 Feb 2017 11:29:33 +0200 Subject: [PATCH 13/16] fixing slather file --- .slather.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.slather.yml b/.slather.yml index 41e9b71..bdb5723 100644 --- a/.slather.yml +++ b/.slather.yml @@ -1,5 +1,5 @@ coverage_service: coveralls -xcodeproj: BluemixAppID.xcodeproj -scheme: BluemixAppID +workspace: BluemixAppID +scheme: BluemixAppIDTests ignore: - - Tests/* \ No newline at end of file + - BluemixAppIDTests/* \ No newline at end of file From b1d6d7f5b7bc10497e6f3f57fcc937de71de79fb Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Tue, 21 Feb 2017 11:52:51 +0200 Subject: [PATCH 14/16] fix slather file --- .slather.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.slather.yml b/.slather.yml index bdb5723..3c20c54 100644 --- a/.slather.yml +++ b/.slather.yml @@ -1,5 +1,6 @@ coverage_service: coveralls workspace: BluemixAppID +xcodeproj: BluemixAppID.xcodeproj scheme: BluemixAppIDTests ignore: - BluemixAppIDTests/* \ No newline at end of file From 14b436a294839370ef3065f0319c4405f22d8326 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Tue, 21 Feb 2017 13:38:55 +0200 Subject: [PATCH 15/16] updating badges in readme --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 3469916..4ac3bc4 100644 --- a/README.md +++ b/README.md @@ -88,22 +88,22 @@ This package contains code licensed under the Apache License, Version 2.0 (the " [img-bluemix-powered]: https://img.shields.io/badge/bluemix-powered-blue.svg [url-bluemix]: http://bluemix.net -[url-bintray]: https://bintray.com/ibmcloudsecurity/appid-clientsdk-android -[img-license]: https://img.shields.io/github/license/ibm-cloud-security/appid-clientsdk-android.svg -[img-version]: https://img.shields.io/bintray/v/ibmcloudsecurity/maven/appid-clientsdk-android.svg +[url-bintray]: https://bintray.com/ibmcloudsecurity/appid-clientsdk-swift +[img-license]: https://img.shields.io/github/license/ibm-cloud-security/appid-clientsdk-swift.svg +[img-version]: https://img.shields.io/bintray/v/ibmcloudsecurity/maven/appid-clientsdk-swift.svg -[img-github-watchers]: https://img.shields.io/github/watchers/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Watch -[url-github-watchers]: https://github.com/ibm-cloud-security/appid-clientsdk-android/watchers -[img-github-stars]: https://img.shields.io/github/stars/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Star -[url-github-stars]: https://github.com/ibm-cloud-security/appid-clientsdk-android/stargazers -[img-github-forks]: https://img.shields.io/github/forks/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Fork -[url-github-forks]: https://github.com/ibm-cloud-security/appid-clientsdk-android/network +[img-github-watchers]: https://img.shields.io/github/watchers/ibm-cloud-security/appid-clientsdk-swift.svg?style=social&label=Watch +[url-github-watchers]: https://github.com/ibm-cloud-security/appid-clientsdk-swift/watchers +[img-github-stars]: https://img.shields.io/github/stars/ibm-cloud-security/appid-clientsdk-swift.svg?style=social&label=Star +[url-github-stars]: https://github.com/ibm-cloud-security/appid-clientsdk-swift/stargazers +[img-github-forks]: https://img.shields.io/github/forks/ibm-cloud-security/appid-clientsdk-swift.svg?style=social&label=Fork +[url-github-forks]: https://github.com/ibm-cloud-security/appid-clientsdk-swift/network -[img-travis-master]: https://travis-ci.org/ibm-cloud-security/appid-clientsdk-android.svg -[url-travis-master]: https://travis-ci.org/ibm-cloud-security/appid-clientsdk-android +[img-travis-master]: https://travis-ci.org/ibm-cloud-security/appid-clientsdk-swift.svg +[url-travis-master]: https://travis-ci.org/ibm-cloud-security/appid-clientsdk-swift -[img-coveralls-master]: https://coveralls.io/repos/github/ibm-cloud-security/appid-clientsdk-android/badge.svg -[url-coveralls-master]: https://coveralls.io/github/ibm-cloud-security/appid-clientsdk-android +[img-coveralls-master]: https://coveralls.io/repos/github/ibm-cloud-security/appid-clientsdk-swift/badge.svg +[url-coveralls-master]: https://coveralls.io/github/ibm-cloud-security/appid-clientsdk-swift [img-codacy]: https://api.codacy.com/project/badge/Grade/d41f8f069dd343769fcbdb55089561fc?branch=master -[url-codacy]: https://www.codacy.com/app/ibm-cloud-security/appid-clientsdk-android +[url-codacy]: https://www.codacy.com/app/ibm-cloud-security/appid-clientsdk-swift From c776c4bd79783199f1d5d9473914baac47c8cd56 Mon Sep 17 00:00:00 2001 From: Oded Betzalel Date: Wed, 22 Feb 2017 13:28:13 +0200 Subject: [PATCH 16/16] releasing new version --- BluemixAppID.podspec | 2 +- Podfile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/BluemixAppID.podspec b/BluemixAppID.podspec index 9f34e57..6016c3f 100755 --- a/BluemixAppID.podspec +++ b/BluemixAppID.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BluemixAppID" - s.version = '0.0.2' + s.version = '0.0.3' s.summary = "AppID Swift SDK" s.homepage = "https://github.com/ibm-bluemix-mobile-services/appid-clientsdk-swift" s.license = 'Apache License, Version 2.0' diff --git a/Podfile b/Podfile index f9c896a..9261f06 100644 --- a/Podfile +++ b/Podfile @@ -3,11 +3,11 @@ use_frameworks! target ‘BluemixAppID' do platform :ios, '9.0' - pod ‘BMSCore’ + pod ‘BMSCore’, '~> 2.3.1’ end target 'BluemixAppIDTests' do platform :ios, '9.0' - pod ‘BMSCore’ + pod ‘BMSCore’, '~> 2.3.1’ end