From d31f64c8046a115935c026ab237dda3bc29fbbb5 Mon Sep 17 00:00:00 2001 From: Stoyan Petrov Date: Wed, 22 Jan 2025 12:27:33 -0800 Subject: [PATCH] Enable automatic signig --- .github/workflows/build-and-test.yaml | 55 ++++++++++++++++++- .github/workflows/ci.yaml | 14 ++--- FRAuth/FRAuth.xcodeproj/project.pbxproj | 10 ++-- .../FRAuthenticator.xcodeproj/project.pbxproj | 12 ++-- .../FRProximity.xcodeproj/project.pbxproj | 12 ++-- FRUI/FRUI.xcodeproj/project.pbxproj | 12 ++-- 6 files changed, 83 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index 97eef828..ea5a3d19 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -29,6 +29,59 @@ jobs: CONFIG_E2E_CLOUD: ${{ secrets.CONFIG_E2E_CLOUD }} run: echo $CONFIG_E2E_CLOUD > FRTestHost/FRTestHost/SharedTestFiles/TestConfig/Config-live-01.json + # Install the Apple certificate + - name: Create p12 file from secret + run: | + # Create variables + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # Import certificate and provisioning profile from secrets + echo -n ${{ vars.BUILD_CERTIFICATE }} | base64 --decode --output $CERTIFICATE_PATH + + echo "Certificate path: $CERTIFICATE_PATH" + echo "Keychain path: $KEYCHAIN_PATH" + # Verify the file was successfully created + if [ ! -f "$CERTIFICATE_PATH" ]; then + echo "Failed to decode the certificate." + exit 1 + fi + + echo "RUNNER_TEMP: $RUNNER_TEMP" + echo "Certificate path: $CERTIFICATE_PATH" + echo "Keychain path: $KEYCHAIN_PATH" + + # Create temporary keychain + echo "RUNNER_TEMP: $RUNNER_TEMP" + echo "Certificate path: $CERTIFICATE_PATH" + echo "Keychain path: $KEYCHAIN_PATH" + security create-keychain -p "ForgeR0ck#1" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "ForgeR0ck#1" $KEYCHAIN_PATH + + # security unlock-keychain -p "${{ secrets.KEYCHAIN_PASSWORD }}" $KEYCHAIN_PATH + + # Import certificate to keychain + echo "ABOUT TO IMPORT CERTIFICATE" + echo "RUNNER_TEMP: $RUNNER_TEMP" + echo "Certificate path: $CERTIFICATE_PATH" + echo "Keychain path: $KEYCHAIN_PATH" + + + + + echo "security import $CERTIFICATE_PATH -P "${{ vars.BUILD_CERTIFICATE_PASSWORD }}" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH" + security import $CERTIFICATE_PATH -P "${{ vars.BUILD_CERTIFICATE_PASSWORD }}" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + # security import $CERTIFICATE_PATH -P "ForgeR0ck#1" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + if [ $? -ne 0 ]; then + echo "Failed to import the certificate." + exit 1 + fi + # security list-keychain -d user -s $KEYCHAIN_PATH + + security find-identity -v -p codesigning $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + # Set target Xcode version. For more details and options see: # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md - name: Select Xcode @@ -36,7 +89,7 @@ jobs: # Run all tests - name: Run tests - run: xcodebuild test -scheme FRTestHost -workspace e2e/FRExample.xcworkspace -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 14,OS=17.5' -derivedDataPath DerivedData -enableCodeCoverage YES -resultBundlePath TestResults | xcpretty && exit ${PIPESTATUS[0]} + run: xcodebuild test -scheme FRTestHost -workspace e2e/FRExample.xcworkspace -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 14,OS=17.5' -allowProvisioningUpdates -derivedDataPath DerivedData CODE_SIGN_IDENTITY="iOS Development" DEVELOPMENT_TEAM="JV6EC9KSN3" -enableCodeCoverage YES -resultBundlePath TestResults | xcpretty && exit ${PIPESTATUS[0]} # Publish test results - name: Publish test results diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d240746b..fef9c7f1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,13 +19,13 @@ jobs: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # Run Mend CLI Scan - mend-cli-scan: - name: Mend CLI Scan - uses: ./.github/workflows/mend-cli-scan.yaml - secrets: - MEND_EMAIL: ${{ secrets.MEND_EMAIL }} - MEND_USER_KEY: ${{ secrets.MEND_USER_KEY }} - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + # mend-cli-scan: + # name: Mend CLI Scan + # uses: ./.github/workflows/mend-cli-scan.yaml + # secrets: + # MEND_EMAIL: ${{ secrets.MEND_EMAIL }} + # MEND_USER_KEY: ${{ secrets.MEND_USER_KEY }} + # SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # Build and sign BitBar test artifacts (FRTestHost.ipa and FRAuthTests.xctest.zip) bitbar-prepare-artifacts: diff --git a/FRAuth/FRAuth.xcodeproj/project.pbxproj b/FRAuth/FRAuth.xcodeproj/project.pbxproj index 7326b916..9d96a7d0 100644 --- a/FRAuth/FRAuth.xcodeproj/project.pbxproj +++ b/FRAuth/FRAuth.xcodeproj/project.pbxproj @@ -2324,10 +2324,9 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; - CODE_SIGN_STYLE = Manual; + CODE_SIGN_STYLE = Automatic; DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = JV6EC9KSN3; INFOPLIST_FILE = FRAuthTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -2355,10 +2354,9 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; - CODE_SIGN_STYLE = Manual; + CODE_SIGN_STYLE = Automatic; DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = JV6EC9KSN3; INFOPLIST_FILE = FRAuthTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/FRAuthenticator/FRAuthenticator.xcodeproj/project.pbxproj b/FRAuthenticator/FRAuthenticator.xcodeproj/project.pbxproj index 09a2bb0f..2a3aa41b 100644 --- a/FRAuthenticator/FRAuthenticator.xcodeproj/project.pbxproj +++ b/FRAuthenticator/FRAuthenticator.xcodeproj/project.pbxproj @@ -1386,8 +1386,9 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = JV6EC9KSN3; INFOPLIST_FILE = FRAuthenticatorTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -1398,7 +1399,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRAuthenticatorTests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SWIFT_OBJC_BRIDGING_HEADER = "FRAuthenticatorTests/FRAuthenticatorTests-BridgingHeader.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1410,8 +1410,9 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = JV6EC9KSN3; INFOPLIST_FILE = FRAuthenticatorTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -1422,7 +1423,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRAuthenticatorTests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SWIFT_OBJC_BRIDGING_HEADER = "FRAuthenticatorTests/FRAuthenticatorTests-BridgingHeader.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/FRProximity/FRProximity.xcodeproj/project.pbxproj b/FRProximity/FRProximity.xcodeproj/project.pbxproj index 005a707e..33b104ce 100644 --- a/FRProximity/FRProximity.xcodeproj/project.pbxproj +++ b/FRProximity/FRProximity.xcodeproj/project.pbxproj @@ -952,8 +952,9 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = JV6EC9KSN3; INFOPLIST_FILE = FRProximityTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -964,7 +965,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRProximityTests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FRTestHost.app/FRTestHost"; @@ -975,8 +975,9 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = JV6EC9KSN3; INFOPLIST_FILE = FRProximityTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -987,7 +988,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRProximityTests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FRTestHost.app/FRTestHost"; diff --git a/FRUI/FRUI.xcodeproj/project.pbxproj b/FRUI/FRUI.xcodeproj/project.pbxproj index 2da917e9..3adb588b 100644 --- a/FRUI/FRUI.xcodeproj/project.pbxproj +++ b/FRUI/FRUI.xcodeproj/project.pbxproj @@ -779,8 +779,9 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = JV6EC9KSN3; INFOPLIST_FILE = FRUITests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -791,7 +792,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRUITests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FRTestHost.app/FRTestHost"; @@ -802,8 +802,9 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = JV6EC9KSN3; INFOPLIST_FILE = FRUITests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -814,7 +815,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.forgerock.ios.FRUITests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FRTestHost.app/FRTestHost";