Skip to content

Commit

Permalink
Merge pull request #287 from ForgeRock/SDKS-3206
Browse files Browse the repository at this point in the history
SDKS-3206 ForgeRock iOS SDK 4.5.0 Release
  • Loading branch information
spetrov authored Jul 8, 2024
2 parents b924d18 + b66fccd commit b954e2b
Show file tree
Hide file tree
Showing 24 changed files with 69 additions and 45 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## [4.5.0]
#### Added
- Added SDK support for deleting registered WebAuthn devices from the server. [SDKS-1753]
- Added support for signing off from PingOne to the centralized login flow. [SDKS-3021]
- Added the ability to dynamically configure the SDK by collecting values from the server's OpenID Connect `.well-known` endpoint. [SDKS-3023]

#### Fixed
- SSL pinning configuration was ignored in `FRURLProtocol` class. [SDKS-3239]
- Removed scope validation from `AccessToken` initialization. [SDKS-3305]

## [4.4.1]
#### Added
- Added privacy manifest files to the SDK's modules [SDKS-3086]
Expand Down
4 changes: 2 additions & 2 deletions FRAuth.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FRAuth'
s.version = '4.4.1'
s.version = '4.5.0'
s.summary = 'ForgeRock Auth SDK for iOS'
s.description = <<-DESC
FRAuth is a SDK that allows you easily and quickly develop an application with ForgeRock Platform or ForgeRock Identity Cloud. FRAuth SDK provides interfaces and functionalities of user authentication, registration, and identity and access management against ForgeRock solutions.
Expand All @@ -32,5 +32,5 @@ Pod::Spec.new do |s|
s.resource_bundles = {
'FRAuth' => [base_dir + '/*.xcprivacy']
}
s.ios.dependency 'FRCore', '~> 4.4.1'
s.ios.dependency 'FRCore', '~> 4.5.0'
end
4 changes: 2 additions & 2 deletions FRAuth/FRAuth.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -2150,7 +2150,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
MODULEMAP_FILE = "";
OTHER_CFLAGS = "-DXCODE_FRAMEWORK=1";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRAuth;
Expand Down Expand Up @@ -2187,7 +2187,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
MODULEMAP_FILE = "";
OTHER_CFLAGS = "-DXCODE_FRAMEWORK=1";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRAuth;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import XCTest
@testable import FRAuth

// Note that all App Integrity tests are skipped because this feature is not released in AM
final class AA_07_AppIntegrityTest: CallbackBaseTest {

static var USERNAME: String = "sdkuser"
Expand Down Expand Up @@ -53,6 +54,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func test_02_test_app_integrity_fail_invalid_challenge() throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf(self.isSimulator || (!is14Available && !self.isSimulator), "This test can only run on real devices above iOS14!")

var currentNode: Node?
Expand Down Expand Up @@ -142,6 +144,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func test_03_test_app_integrity_fail_empty_challenge() throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf(self.isSimulator || (!is14Available && !self.isSimulator), "This test can only run on real devices above iOS14!")

var currentNode: Node?
Expand Down Expand Up @@ -237,6 +240,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func test_04_test_app_integrity_invalid_team_id() throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf(self.isSimulator || (!is14Available && !self.isSimulator), "This test can only run on real devices above iOS14!")

/// Test that when the Apple Team Identifier configured in the App Integrity node does NOT match the one of the calling app,
Expand Down Expand Up @@ -324,6 +328,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func test_05_test_app_integrity_invalid_bundle_id() throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf(self.isSimulator || (!is14Available && !self.isSimulator), "This test can only run on real devices above iOS14!")

/// Test that when the Bundle Identifier configured in the App Integrity node does NOT match the one of the calling app,
Expand Down Expand Up @@ -411,6 +416,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func test_06_test_app_integrity_invalid_root_cert() throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf(self.isSimulator || (!is14Available && !self.isSimulator), "This test can only run on real devices above iOS14!")

/// Test that when the Attestation Root Certificate URL configured in the App Integrity node does is not the original CA cert,
Expand Down Expand Up @@ -499,6 +505,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func test_07_test_app_integrity_fail_production() throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf(self.isSimulator || (!is14Available && !self.isSimulator), "This test can only run on real devices above iOS14!")

/// Test that when the App Integrity node is configured for production environment mode and the app is using sandbox (development) environment
Expand Down Expand Up @@ -586,6 +593,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func test_08_test_app_integrity_unsupported() throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf((is14Available && !self.isSimulator), "This test requires real device with iOS less than 14, or simulator.")

/// Test that when the client app runs on simulator or on real device with smaller version of iOS 14, the requestIntegrityToken function throws "unsupported" error
Expand Down Expand Up @@ -674,6 +682,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func test_09_test_app_integrity_custom_outcome() throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf(self.isSimulator || (!is14Available && !self.isSimulator), "This test can only run on real devices above iOS14!")
var currentNode: Node?

Expand Down Expand Up @@ -822,6 +831,7 @@ final class AA_07_AppIntegrityTest: CallbackBaseTest {
}

func app_integrity_success(payload: String? = nil) throws {
try XCTSkipIf(true) // Skip all App Integrity tests, since AM does not support the feature yet...
try XCTSkipIf(self.isSimulator || (!is14Available && !self.isSimulator), "This test can only run on real devices above iOS14!")

try XCTSkipIf(!Self.isRegisteredDeveloperDevice, "This test requires device to be refgistered with the ForgeRock developer account.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@ class BrowserTests: FRAuthBaseTest {


@available(iOS 13, *)
func test_03_browser_login_already_in_progress_from_another_instance() {
func test_03_browser_login_already_in_progress_from_another_instance() throws {
try XCTSkipIf(true) // Skip this test - see SDKS-3304

// Start SDK
self.startSDK()
Expand Down Expand Up @@ -322,7 +323,8 @@ class BrowserTests: FRAuthBaseTest {


@available(iOS 13, *)
func test_08_login_auth_session_cancelled() {
func test_08_login_auth_session_cancelled() throws {
try XCTSkipIf(true) // Skip this test - see SDKS-3304

// Start SDK
self.startSDK()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@ class FRUserBrowserTests: FRAuthBaseTest {


@available(iOS 13, *)
func test_02_fruser_browser_login_and_logout_success() {

func test_02_fruser_browser_login_and_logout_success() throws {
try XCTSkipIf(true) // Skip this test - see SDKS-3304

// SDK init
self.startSDK()

Expand Down Expand Up @@ -85,7 +86,8 @@ class FRUserBrowserTests: FRAuthBaseTest {


@available(iOS 13, *)
func test_03_fruser_browser_login_and_logout_end_session_failure() {
func test_03_fruser_browser_login_and_logout_end_session_failure() throws {
try XCTSkipIf(true) // Skip this test - see SDKS-3304

// SDK init
self.startSDK()
Expand Down
4 changes: 2 additions & 2 deletions FRAuthenticator.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FRAuthenticator'
s.version = '4.4.1'
s.version = '4.5.0'
s.summary = 'ForgeRock OTP/Push Authentication SDK for iOS'
s.description = <<-DESC
FRAuthenticator is a SDK that allows you easily and quickly develop an application with ForgeRock Platform for OATH and Push Authentication with AM. FRAuthenticator SDK provides interfaces and functionalities of HMAC-based OTP, Time-based OTP, Push Registration and Authentication with AM.
Expand All @@ -32,5 +32,5 @@ Pod::Spec.new do |s|
s.resource_bundles = {
'FRAuthenticator' => [base_dir + '/*.xcprivacy']
}
s.ios.dependency 'FRCore', '~> 4.4.1'
s.ios.dependency 'FRCore', '~> 4.5.0'
end
4 changes: 2 additions & 2 deletions FRAuthenticator/FRAuthenticator.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1336,7 +1336,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
MODULEMAP_FILE = "${PROJECT_DIR}/FRAuthenticator/SharedC/FRAuthenticator.modulemap";
OTHER_CFLAGS = "-DXCODE_FRAMEWORK=1";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRAuthenticator;
Expand Down Expand Up @@ -1368,7 +1368,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
MODULEMAP_FILE = "${PROJECT_DIR}/FRAuthenticator/SharedC/FRAuthenticator.modulemap";
OTHER_CFLAGS = "-DXCODE_FRAMEWORK=1";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRAuthenticator;
Expand Down
2 changes: 1 addition & 1 deletion FRCore.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FRCore'
s.version = '4.4.1'
s.version = '4.5.0'
s.summary = 'ForgeRock Core SDK for iOS'
s.description = <<-DESC
FRCore is a SDK that allows you to consume some of core functionalities and security features built for FRAuth SDK.
Expand Down
4 changes: 2 additions & 2 deletions FRCore/FRCore.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -955,7 +955,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
MODULEMAP_FILE = "${PROJECT_DIR}/FRCore/SharedC/FRCore.modulemap";
OTHER_CFLAGS = "-DXCODE_FRAMEWORK=1";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRCore;
Expand Down Expand Up @@ -989,7 +989,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
MODULEMAP_FILE = "${PROJECT_DIR}/FRCore/SharedC/FRCore.modulemap";
OTHER_CFLAGS = "-DXCODE_FRAMEWORK=1";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRCore;
Expand Down
2 changes: 1 addition & 1 deletion FRCore/FRCore/Log/Log.swift
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ public class Log: NSObject {
// MARK: - Property

/// Current SDK version. We hard code it here as currently there is no other way to get it dinamically when used with SPM
public static let sdkVersion = "4.4.1"
public static let sdkVersion = "4.5.0"
/// Current LogLevel
static var logLevel: LogLevel = .none
/// Current Loggers to handle log entries
Expand Down
4 changes: 2 additions & 2 deletions FRDeviceBinding.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FRDeviceBinding'
s.version = '4.4.1'
s.version = '4.5.0'
s.summary = 'ForgeRock Device Binding SDK for iOS'
s.description = <<-DESC
FRDeviceBinding is a SDK that adds support for the Device Binding feature. FRDeviceBinding depends on JOSESwift.
Expand All @@ -32,6 +32,6 @@ Pod::Spec.new do |s|
s.resource_bundles = {
'FRDeviceBinding' => [base_dir + '/*.xcprivacy']
}
s.ios.dependency 'FRAuth', '~> 4.4.1'
s.ios.dependency 'FRAuth', '~> 4.5.0'
s.ios.dependency 'JOSESwift', '~> 2.4.0'
end
4 changes: 2 additions & 2 deletions FRDeviceBinding/FRDeviceBinding.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -819,7 +819,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++20";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRDeviceBinding;
Expand Down Expand Up @@ -852,7 +852,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++20";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRDeviceBinding;
Expand Down
4 changes: 2 additions & 2 deletions FRFacebookSignIn.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FRFacebookSignIn'
s.version = '4.4.1'
s.version = '4.5.0'
s.summary = 'ForgeRock Auth Facebook Sign-in SDK for iOS'
s.description = <<-DESC
FRFacebookSignIn is a SDK that allows a user to sign-in through Facebook. FRFacebookSignIn depends on FBSDKLoginKit, and uses Facebook's SDK to perform authorization following Facebook's protocol.
Expand All @@ -32,6 +32,6 @@ Pod::Spec.new do |s|
s.resource_bundles = {
'FRFacebookSignIn' => [base_dir + '/*.xcprivacy']
}
s.ios.dependency 'FRAuth', '~> 4.4.1'
s.ios.dependency 'FRAuth', '~> 4.5.0'
s.ios.dependency 'FBSDKLoginKit', '~> 16.0.1'
end
4 changes: 2 additions & 2 deletions FRFacebookSignIn/FRFacebookSignIn.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRFacebookSignIn;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
Expand Down Expand Up @@ -474,7 +474,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRFacebookSignIn;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
Expand Down
4 changes: 2 additions & 2 deletions FRGoogleSignIn.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FRGoogleSignIn'
s.version = '4.4.1'
s.version = '4.5.0'
s.summary = 'ForgeRock Auth Google Sign-in SDK for iOS'
s.description = <<-DESC
FRGoogleSignIn is a SDK that allows a user to sign-in through Google. FRGoogleSignIn depends on GoogleSignIn, and uses Google's SDK to perform authorization following Google's protocol.
Expand All @@ -34,7 +34,7 @@ Pod::Spec.new do |s|
'FRGoogleSignIn' => [base_dir + '/*.xcprivacy']
}

s.ios.dependency 'FRAuth', '~> 4.4.1'
s.ios.dependency 'FRAuth', '~> 4.5.0'
s.ios.dependency 'GoogleSignIn', '~> 7.1.0'
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
Expand Down
4 changes: 2 additions & 2 deletions FRGoogleSignIn/FRGoogleSignIn.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRGoogleSignIn;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
Expand Down Expand Up @@ -488,7 +488,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRGoogleSignIn;
Expand Down
4 changes: 2 additions & 2 deletions FRProximity.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FRProximity'
s.version = '4.4.1'
s.version = '4.5.0'
s.summary = 'ForgeRock Auth Proximity SDK for iOS'
s.description = <<-DESC
FRProximity is a SDK that allows you to additionally collect device information with FRDeviceCollector in FRAuth. FRProximity SDK leverages functionalities in iOS that requires user's consent. You must properly set privacy consent in the application's Info.plist.
Expand All @@ -32,5 +32,5 @@ Pod::Spec.new do |s|
s.resource_bundles = {
'FRProximity' => [base_dir + '/*.xcprivacy']
}
s.ios.dependency 'FRAuth', '~> 4.4.1'
s.ios.dependency 'FRAuth', '~> 4.5.0'
end
4 changes: 2 additions & 2 deletions FRProximity/FRProximity.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -899,7 +899,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRProximity;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down Expand Up @@ -934,7 +934,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 4.4.1;
MARKETING_VERSION = 4.5.0;
PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRProximity;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
4 changes: 2 additions & 2 deletions FRUI.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FRUI'
s.version = '4.4.1'
s.version = '4.5.0'
s.summary = 'ForgeRock UI SDK for FRAuth iOS'
s.description = <<-DESC
FRUI is a SDK that allows you easily and quickly develop an application with ForgeRock Platform or ForgeRock Identity Cloud, and FRAuth SDK with pre-built UI components. FRUI SDK demonstrates most of functionalities available in FRAuth SDK which includes user authentication, registration, and identity and access management against ForgeRock solutions.
Expand All @@ -33,5 +33,5 @@ Pod::Spec.new do |s|
'FRUI' => [base_dir + '/*.xcprivacy']
}
s.resources = [base_dir + '/**/*.xib', base_dir + '/Assets/*']
s.ios.dependency 'FRDeviceBinding', '~> 4.4.1'
s.ios.dependency 'FRDeviceBinding', '~> 4.5.0'
end
Loading

0 comments on commit b954e2b

Please sign in to comment.