Skip to content

Commit eeede7c

Browse files
authored
Merge pull request #325 from ForgeRock/develop
ForgeRock iOS SDK 4.7.0 Release
2 parents daccd0e + c5f0aee commit eeede7c

File tree

264 files changed

+2531
-4502
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

264 files changed

+2531
-4502
lines changed

.github/workflows/bitbar-prepare-artifacts.yaml

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
required: true
88

99
# 1. Open the keychain on your mac and export the signing certificate and private key in a Certificates.p12 file
10-
# 2. Convert your certificate to Base64 string: `base64 Certificates.p12 | pbcopy`
10+
# 2. Convert your certificate to Base64 string: `base64 -i Certificates.p12 | pbcopy`
1111
# 3. Update the value of the CERTIFICATES_FILE_BASE64 action secret with the content of the clipboard
1212
# 4. Update the CERTIFICATES_PASSWORD action secret with the one used during the export of the certificate from the keychain
1313
CERTIFICATES_FILE_BASE64:
@@ -27,7 +27,7 @@ on:
2727
# 1. Find the 'com.forgerock.FRTestHost' provisioning profile (~/Library/MobileDevice/Provisioning\ Profiles)
2828
# 2. Rename the file to `provisioning_profile.mobileprovision`
2929
# 3. Zip the file: `zip provisioning_profile.mobileprovision.zip provisioning_profile.mobileprovision`
30-
# 4. Convert the file to Base64 string: `base64 provisioning_profile.mobileprovision.zip | pbcopy`
30+
# 4. Convert the file to Base64 string: `base64 -i provisioning_profile.mobileprovision.zip | pbcopy`
3131
# 5. Update the value of the BUILD_PROVISION_PROFILE_ZIP_BASE64 action secret with the content of the clipboard
3232
BUILD_PROVISION_PROFILE:
3333
description: 'Apple build provisioning profile'
@@ -36,14 +36,24 @@ on:
3636
SLACK_WEBHOOK_URL:
3737
description: 'Slack Notifier Incoming Webhook URL'
3838
required: true
39+
40+
env:
41+
BUILD_DIR: /tmp/build
42+
CONFIGURATION: Debug
43+
SCHEME: FRTestHostBitBar
44+
WORKSPACE: e2e/FRExample.xcworkspace
45+
DEVELOPMENT_TEAM: 9QSE66762D
46+
XCODE_VERSION: '15.4'
47+
SDK: iphoneos17.5
48+
3949
jobs:
4050
prepare-device-farm-artifacts:
4151
runs-on: macos-14
4252

4353
steps:
4454
# Clone the repo
4555
- name: Clone the repository
46-
uses: actions/checkout@v3
56+
uses: actions/checkout@v4
4757
with:
4858
ref: ${{ github.event.pull_request.head.ref }}
4959
repository: ${{github.event.pull_request.head.repo.full_name}}
@@ -83,19 +93,31 @@ jobs:
8393
cp $PP_FILENAME ~/Library/MobileDevice/Provisioning\ Profiles
8494
8595
# Set target Xcode version. For more details and options see:
86-
# https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11-Readme.md
96+
# https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
8797
- name: Select Xcode
88-
run: sudo xcode-select -switch /Applications/Xcode_15.4.app && /usr/bin/xcodebuild -version
98+
run: sudo xcode-select -switch /Applications/Xcode_${{ env.XCODE_VERSION }}.app && /usr/bin/xcodebuild -version
8999

90100
- name: build-for-testing and sign
91-
run: xcodebuild -scheme FRTestHostBitBar -sdk iphoneos17.5 -workspace SampleApps/FRExample.xcworkspace -configuration Debug clean build BUILD_DIR=~/build/ DEVELOPMENT_TEAM=JV6EC9KSN3 -allowProvisioningUpdates -destination generic/platform=iOS -derivedDataPath ~/build/derivedData/ build-for-testing
101+
run: |
102+
xcodebuild \
103+
-scheme ${{ env.SCHEME }} \
104+
-sdk ${{ env.SDK}} \
105+
-workspace ${{ env.WORKSPACE }} \
106+
-configuration ${{ env.CONFIGURATION }} \
107+
clean build \
108+
BUILD_DIR=${{ env.BUILD_DIR }} \
109+
DEVELOPMENT_TEAM=${{ env.DEVELOPMENT_TEAM }} \
110+
-allowProvisioningUpdates \
111+
-destination generic/platform=iOS \
112+
-derivedDataPath ${{ env.BUILD_DIR }}/derivedData \
113+
build-for-testing
92114
93115
# Prepare BitBar artifacts:
94116
- name: Prepare BitBar artifacts
95117
run: |
96118
pwd
97119
ls -la
98-
cd ~/build/Debug-iphoneos/
120+
cd ${{ env.BUILD_DIR }}/Debug-iphoneos/
99121
cp -r FRTestHost.app/PlugIns/FRAuthTests.xctest .
100122
zip -r -X FRAuthTests.xctest.zip FRAuthTests.xctest
101123
mkdir Payload
@@ -104,21 +126,21 @@ jobs:
104126
105127
# Publish e2e tests and app build artifacts
106128
- name: Publish FRTestHost.ipa
107-
uses: actions/upload-artifact@v3
129+
uses: actions/upload-artifact@v4
108130
if: success()
109131
with:
110132
name: FRTestHost.ipa
111-
path: ~/build/Debug-iphoneos/FRTestHost.ipa
133+
path: ${{ env.BUILD_DIR }}/Debug-iphoneos/FRTestHost.ipa
112134

113135
- name: Publish FRAuthTests.xctest.zip
114-
uses: actions/upload-artifact@v3
136+
uses: actions/upload-artifact@v4
115137
if: success()
116138
with:
117139
name: FRAuthTests.xctest.zip
118-
path: ~/build/Debug-iphoneos/FRAuthTests.xctest.zip
140+
path: ${{ env.BUILD_DIR }}/Debug-iphoneos/FRAuthTests.xctest.zip
119141

120142
# Send slack notification ONLY if any of the steps above fail
121-
- name: Send slack notification
143+
- name: Send slack notification if something goes wrong
122144
uses: 8398a7/action-slack@v3
123145
with:
124146
status: custom
@@ -133,4 +155,4 @@ jobs:
133155
}
134156
env:
135157
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
136-
if: failure()
158+
if: failure()

.github/workflows/bitbar-results.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
bitbar-project-id:
77
description: BitBar Project ID
88
type: string
9-
default: 207050144
9+
default: ${{ vars.BITBAR_PROJECT_ID }}
1010

1111
bitbar-run-id:
1212
description: BitBar Run ID

.github/workflows/bitbar-run.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ on:
55
bitbar-project-id:
66
description: BitBar project id
77
type: string
8-
default: 207050144
8+
default: ${{ vars.BITBAR_PROJECT_ID }}
99

1010
bitbar-device-group-id:
1111
description: The device group id to run tests against
1212
type: string
13-
default: 45011
13+
default: ${{ vars.BITBAR_DEVICE_GROUP_ID }}
1414

1515
bitbar-os-type:
1616
description: OS Type
@@ -20,7 +20,7 @@ on:
2020
bitbar-framework-id:
2121
description: The framework id
2222
type: string
23-
default: 590
23+
default: ${{ vars.BITBAR_FRAMEWORK_ID }}
2424

2525
outputs:
2626
bitbar-run-id:
@@ -45,12 +45,12 @@ jobs:
4545
steps:
4646
# Get the test artifacts prepared in previous step
4747
- name: Get FRTestHost.ipa BitBar artifact
48-
uses: actions/download-artifact@v3
48+
uses: actions/download-artifact@v4
4949
with:
5050
name: FRTestHost.ipa
5151

5252
- name: Get the FRAuthTests.xctest.zip BitBar artifact
53-
uses: actions/download-artifact@v3
53+
uses: actions/download-artifact@v4
5454
with:
5555
name: FRAuthTests.xctest.zip
5656

.github/workflows/build-and-test.yaml

Lines changed: 55 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,23 @@ on:
99
SLACK_WEBHOOK_URL:
1010
description: 'Slack Notifier Webhook'
1111
required: true
12+
13+
env:
14+
WORKSPACE: e2e/FRExample.xcworkspace
15+
SCHEME: FRTestHost
16+
CONFIGURATION: Debug
17+
DESTINATION: platform=iOS Simulator,name=iPhone 16,OS=18.2
18+
XCODE_VERSION: '16.2'
19+
1220
jobs:
1321
build-and-test:
14-
runs-on: macos-14
22+
runs-on: macos-15
1523
timeout-minutes: 20
1624

1725
steps:
1826
# Clone the repo
1927
- name: Clone the repository
20-
uses: actions/checkout@v3
28+
uses: actions/checkout@v4
2129
with:
2230
ref: ${{ github.event.pull_request.head.ref }}
2331
repository: ${{github.event.pull_request.head.repo.full_name}}
@@ -30,21 +38,57 @@ jobs:
3038
run: echo $CONFIG_E2E_CLOUD > FRTestHost/FRTestHost/SharedTestFiles/TestConfig/Config-live-01.json
3139

3240
# Set target Xcode version. For more details and options see:
33-
# https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md
41+
# https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
3442
- name: Select Xcode
35-
run: sudo xcode-select -switch /Applications/Xcode_15.4.app && /usr/bin/xcodebuild -version
43+
run: sudo xcode-select -switch /Applications/Xcode_${{ env.XCODE_VERSION }}.app && /usr/bin/xcodebuild -version
44+
45+
46+
# # Restore `xcresultparser` from cache
47+
# # TBD: Fix the restore of the xcresultparser tool. It is not working as expected at the moment, causing the build to fail...
48+
# - name: Restore xcresultparser from cache
49+
# id: cache-xcresultparser
50+
# uses: actions/cache@v3
51+
# with:
52+
# path: /opt/homebrew/bin/xcresultparser
53+
# key: ${{ runner.os }}-xcresultparser
54+
# restore-keys: |
55+
# ${{ runner.os }}-xcresultparser
56+
57+
# Install xcresultparser
58+
- name: Install xcresultparser
59+
run: |
60+
brew tap a7ex/homebrew-formulae
61+
brew install xcresultparser
62+
echo "Installed xcresultparser..."
3663
3764
# Run all tests
3865
- name: Run tests
39-
run: xcodebuild test -scheme FRTestHost -workspace SampleApps/FRExample.xcworkspace -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 14,OS=17.5' -derivedDataPath DerivedData -enableCodeCoverage YES -resultBundlePath TestResults | xcpretty && exit ${PIPESTATUS[0]}
66+
run: |
67+
xcodebuild test \
68+
-scheme FRTestHost \
69+
-workspace ${{ env.WORKSPACE }} \
70+
-configuration ${{ env.CONFIGURATION}} \
71+
-destination '${{ env.DESTINATION }}' \
72+
-derivedDataPath DerivedData \
73+
TEST_TARGET_SIGNING=YES \
74+
-enableCodeCoverage YES \
75+
-resultBundlePath TestResults | grep -E 'Test Case|^Executed|error:'
4076
41-
# Publish test results
77+
# Convert test results to JUnit format
78+
- name: Convert Test Results to JUnit
79+
run: xcresultparser -o junit TestResults.xcresult > test-report.xml
80+
81+
# Publish the test results
4282
- name: Publish test results
43-
uses: kishikawakatsumi/xcresulttool@v1
44-
with:
45-
path: TestResults.xcresult
46-
show-passed-tests: false
4783
if: success() || failure()
84+
uses: dorny/test-reporter@v1
85+
with:
86+
name: Unit tests results
87+
path: './test*.xml'
88+
list-suites: 'all'
89+
list-tests: 'all'
90+
fail-on-error: 'true'
91+
reporter: java-junit
4892

4993
# Send slack notification with result status
5094
- uses: 8398a7/action-slack@v3
@@ -55,4 +99,4 @@ jobs:
5599
status: ${{ job.status }}
56100
env:
57101
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
58-
if: always()
102+
if: always()

.github/workflows/run-live-tests.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848

4949
# Run all e2e tests
5050
- name: Run e2e tests
51-
run: xcodebuild test -scheme FRTestHostE2E -workspace SampleApps/FRExample.xcworkspace -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 12,OS=15.4' -derivedDataPath DerivedData -enableCodeCoverage YES -resultBundlePath TestResultsE2E | xcpretty && exit ${PIPESTATUS[0]}
51+
run: xcodebuild test -scheme FRTestHostE2E -workspace e2e/FRExample.xcworkspace -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 12,OS=15.4' -derivedDataPath DerivedData -enableCodeCoverage YES -resultBundlePath TestResultsE2E | xcpretty && exit ${PIPESTATUS[0]}
5252

5353
# Publish test results
5454
- name: Publish test results
@@ -67,4 +67,4 @@ jobs:
6767
status: ${{ job.status }}
6868
env:
6969
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
70-
if: always()
70+
if: always()

CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
## [4.7.0]
2+
#### Added
3+
- Support for Sign-out with ID Token in the PingOne Platform. [SDKS-3424]
4+
- Support for Self-Service [SDKS-3409]
5+
6+
#### Fixed
7+
- Prevent duplicate PUSH notifications in the Authenticator module. [SDKS-3533]
8+
- Updated jailbreak detectors to prevent false-positive detections. [SDKS-3693]
9+
110
## [4.6.0]
211
#### Added
312
- Support PingOne Protect Marketplace Nodes [SDKS-3296]
@@ -215,7 +224,7 @@ It should now be called from `application(_ application:, didFinishLaunchingWith
215224
- `FRAuth` introduces new dependency, `FRCore` which contains generic core functionalities that can be shared across other ForgeRock iOS SDK. [SDKS-241]
216225
- `FRCore` has been added to iOS SDK suite. `FRCore` is responsible to handle generic iOS tools and functionalities that are not relevant to ForgeRock products.
217226
- `FRAuth` is now able to handle AM's Transactional Authorization requests out of box for IG integration, and with a little bit of customization for custom REST Apps. `FRAuth` SDK can support `Authentication by Service` and `Transaction - Authenticate to Tree` in Policy environment. [SDKS-87]
218-
- `MetadataCallback` is now supported in `FRAuth` SDK. For AM 6.5.2, when `MetadataCallback` is returned with `stage` value, SDK automatically parses `MetadataCallback` into `Node`'s `stage` property. Please refer [this blog post](https://forum.forgerock.com/2020/02/using-an-authentication-tree-stage-to-build-a-custom-ui-with-the-forgerock-javascript-sdk/) for more details. [SDKS-304]
227+
- `MetadataCallback` is now supported in `FRAuth` SDK. For AM 6.5.2, when `MetadataCallback` is returned with `stage` value, SDK automatically parses `MetadataCallback` into `Node`'s `stage` property. [SDKS-304]
219228
- `FRAuth` now allows more flexible customization on server infomration. Custom URL paths can be configured through `.plist` config file, or `ServerConfigBuilder`. [SDKS-302]
220229
- `FRAuth` now supports `Device Profile Node` in AM 7.0.0. [SDKS-294]
221230
- `FRCore` introduces an ability to customize internal SDK requests through `RequestInterceptor`. Use `FRCore.RequestInterceptor` to implement the interceptor, and `FRAuth.FRRequestInterceptorRegistry`to register interceptors. [SDKS-250]

FRAuth.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Pod::Spec.new do |s|
1010
s.name = 'FRAuth'
11-
s.version = '4.6.0'
11+
s.version = '4.7.0'
1212
s.summary = 'ForgeRock Auth SDK for iOS'
1313
s.description = <<-DESC
1414
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.
@@ -32,5 +32,5 @@ Pod::Spec.new do |s|
3232
s.resource_bundles = {
3333
'FRAuth' => [base_dir + '/*.xcprivacy']
3434
}
35-
s.ios.dependency 'FRCore', '~> 4.6.0'
35+
s.ios.dependency 'FRCore', '~> 4.7.0'
3636
end

0 commit comments

Comments
 (0)