From 94912900a2a1cd0bf051bf94b4c0fe7953dea69e Mon Sep 17 00:00:00 2001 From: NidhiDixit09 <93544270+NidhiDixit09@users.noreply.github.com> Date: Mon, 26 May 2025 21:36:47 -0700 Subject: [PATCH 1/3] Updated Scripts to codesign and generate xcframework with dSym --- .github/workflows/release.yml | 48 +++++++++++++++++++++++++++++ scripts/build_xcframework.sh | 22 +++++++++++-- scripts/build_xcframework_noidfa.sh | 7 +++-- scripts/prep_xcframework.sh | 18 +++++++++++ scripts/prep_xcframework_noidfa.sh | 8 +++++ 5 files changed, 99 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e7f5aba60..ed70fa789 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,6 +67,10 @@ jobs: path: | ./Branch.zip ./checksum.txt + ./Branch_signed_xcframework.zip + ./checksum_signed_xcframework.txt + ./Branch_xcframework_WithdSym.zip + ./checksum_xcframework_WithdSym.txt build-noidfa-framework: runs-on: macos-latest @@ -85,6 +89,8 @@ jobs: path: | ./Branch_noidfa.zip ./checksum_noidfa.txt + ./Branch_noidfa_signed_xcframework + ./checksum_noidfa_signed_xcframework.txt build-static-framework: runs-on: macos-latest @@ -248,6 +254,48 @@ jobs: assetName: 'checksum', path: 'release_framework/checksum.txt', }); + await uploadAsset({ + github, + context, + releaseId, + assetName: 'Branch_signed_xcframework', + path: 'release_framework/Branch_signed_xcframework.zip', + }); + await uploadAsset({ + github, + context, + releaseId, + assetName: 'checksum_signed_xcframework', + path: 'release_framework/checksum_signed_xcframework.txt', + }); + await uploadAsset({ + github, + context, + releaseId, + assetName: 'Branch_xcframework_WithdSym', + path: 'release_framework/Branch_xcframework_WithdSym.zip', + }); + await uploadAsset({ + github, + context, + releaseId, + assetName: 'checksum_xcframework_WithdSym', + path: 'release_framework/checksum_xcframework_WithdSym.txt', + }); + await uploadAsset({ + github, + context, + releaseId, + assetName: 'Branch_noidfa_signed_xcframework', + path: 'framework-noidfa/Branch_noidfa_signed_xcframework.zip', + }); + await uploadAsset({ + github, + context, + releaseId, + assetName: 'checksum_noidfa_signed_xcframework', + path: 'framework-noidfa/checksum_noidfa_signed_xcframework.txt', + }); - name: Trigger workflow in iOS Branch SDK spm repo for updating code and creating release run: | diff --git a/scripts/build_xcframework.sh b/scripts/build_xcframework.sh index 4e982b4ef..20a6cd538 100755 --- a/scripts/build_xcframework.sh +++ b/scripts/build_xcframework.sh @@ -8,6 +8,8 @@ TVOS_PATH="./build/tvos/tvos.xcarchive" TVOS_SIM_PATH="./build/tvos/tvos_sim.xcarchive" CATALYST_PATH="./build/catalyst/catalyst.xcarchive" XCFRAMEWORK_PATH="./build/BranchSDK.xcframework" +XCFRAMEWORK_PATH_SIGNED="./build/signedFramework/" +XCFRAMEWORK_PATH_dSYM="./build/dSymFramework/BranchSDK.xcframework" # delete previous build rm -rf "./build" @@ -56,5 +58,21 @@ xcodebuild -create-xcframework \ -framework "${CATALYST_PATH}/Products/Library/Frameworks/BranchSDK.framework" \ -output "${XCFRAMEWORK_PATH}" - - +# create signed binary +mkdir -p "${XCFRAMEWORK_PATH_SIGNED}" +cp -rf "${XCFRAMEWORK_PATH}" "${XCFRAMEWORK_PATH_SIGNED}" +codesign --deep --timestamp -s "Apple Distribution: Branch Metrics, Inc. (R63EM248DP)" "${XCFRAMEWORK_PATH_SIGNED}/BranchSDK.xcframework" + +# package framework with dSyms +xcodebuild -create-xcframework \ + -framework "${IOS_PATH}/Products/Library/Frameworks/BranchSDK.framework" \ + -debug-symbols "$(pwd)/build/ios/ios.xcarchive/dSYMs/BranchSDK.framework.dSYM"\ + -framework "${IOS_SIM_PATH}/Products/Library/Frameworks/BranchSDK.framework" \ + -debug-symbols "$(pwd)/build/ios/ios_sim.xcarchive/dSYMs/BranchSDK.framework.dSYM"\ + -framework "${TVOS_PATH}/Products/Library/Frameworks/BranchSDK.framework" \ + -debug-symbols "$(pwd)/build/tvos/tvos.xcarchive/dSYMs/BranchSDK.framework.dSYM"\ + -framework "${TVOS_SIM_PATH}/Products/Library/Frameworks/BranchSDK.framework" \ + -debug-symbols "$(pwd)/build/tvos/tvos_sim.xcarchive/dSYMs/BranchSDK.framework.dSYM"\ + -framework "${CATALYST_PATH}/Products/Library/Frameworks/BranchSDK.framework" \ + -debug-symbols "$(pwd)/build/catalyst/catalyst.xcarchive/dSYMs/BranchSDK.framework.dSYM"\ + -output "${XCFRAMEWORK_PATH_dSYM}" diff --git a/scripts/build_xcframework_noidfa.sh b/scripts/build_xcframework_noidfa.sh index a7840fbd4..39c6b4d4f 100755 --- a/scripts/build_xcframework_noidfa.sh +++ b/scripts/build_xcframework_noidfa.sh @@ -8,6 +8,7 @@ TVOS_PATH="./build/tvos/tvos.xcarchive" TVOS_SIM_PATH="./build/tvos/tvos_sim.xcarchive" CATALYST_PATH="./build/catalyst/catalyst.xcarchive" XCFRAMEWORK_PATH="./build/BranchSDK.xcframework" +XCFRAMEWORK_PATH_SIGNED="./build/signedNoIDFAFramework/" # delete previous build rm -rf "./build" @@ -61,5 +62,7 @@ xcodebuild -create-xcframework \ -framework "${CATALYST_PATH}/Products/Library/Frameworks/BranchSDK.framework" \ -output "${XCFRAMEWORK_PATH}" - - +# create signed binary +mkdir -p "${XCFRAMEWORK_PATH_SIGNED}" +cp -rf "${XCFRAMEWORK_PATH}" "${XCFRAMEWORK_PATH_SIGNED}" +codesign --timestamp -s "Apple Distribution: Branch Metrics, Inc. (R63EM248DP)" "${XCFRAMEWORK_PATH_SIGNED}/BranchSDK.xcframework" diff --git a/scripts/prep_xcframework.sh b/scripts/prep_xcframework.sh index a79c3074b..901b0ddf5 100755 --- a/scripts/prep_xcframework.sh +++ b/scripts/prep_xcframework.sh @@ -6,6 +6,12 @@ scheme='xcframework' checksum_file=checksum.txt zip_file=Branch.zip +checksum_file_signed=checksum_signed_xcframework.txt +zip_file_signed=Branch_signed_xcframework.zip + +checksum_file_WithdSym=checksum_xcframework_WithdSym.txt +zip_file_WithdSym=Branch_xcframework_WithdSym.zip + scriptname=$(basename "${BASH_SOURCE[0]}") scriptpath="${BASH_SOURCE[0]}" scriptpath=$(cd "$(dirname "${scriptpath}")" && pwd) @@ -33,3 +39,15 @@ mv $checksum_file .. # Remove source frameworks echo "Cleaning up" rm -rf BranchSDK.xcframework + +echo "Packaging signed BranchSDK.xcframework" +zip -rqy $zip_file_signed ./signedFramework/BranchSDK.xcframework/ +shasum $zip_file_signed >> $checksum_file_signed +mv $zip_file_signed .. +mv $checksum_file_signed .. + +echo "Packaging debug BranchSDK.xcframework with dSyms" +zip -rqy $zip_file_WithdSym ./dSymFramework/BranchSDK.xcframework/ +shasum $zip_file_WithdSym >> $checksum_file_WithdSym +mv $zip_file_WithdSym .. +mv $checksum_file_WithdSym .. diff --git a/scripts/prep_xcframework_noidfa.sh b/scripts/prep_xcframework_noidfa.sh index e0a13c3f7..966e081da 100755 --- a/scripts/prep_xcframework_noidfa.sh +++ b/scripts/prep_xcframework_noidfa.sh @@ -5,6 +5,8 @@ set -euo pipefail scheme='xcframework-noidfa' checksum_file=checksum_noidfa.txt zip_file=Branch_noidfa.zip +checksum_file_noidfa_signed_xcframework=checksum_noidfa_signed_xcframework.txt +zip_file_noidfa_signed_xcframework=Branch_noidfa_signed_xcframework.zip scriptname=$(basename "${BASH_SOURCE[0]}") scriptpath="${BASH_SOURCE[0]}" @@ -33,3 +35,9 @@ mv $checksum_file .. # Remove source frameworks echo "Cleaning up" rm -rf BranchSDK.xcframework + +echo "Packaging signed BranchSDK.xcframework" +zip -rqy $zip_file_noidfa_signed_xcframework ./signedNoIDFAFramework/BranchSDK.xcframework/ +shasum $zip_file_noidfa_signed_xcframework >> $checksum_file_noidfa_signed_xcframework +mv $zip_file_noidfa_signed_xcframework .. +mv $checksum_file_noidfa_signed_xcframework .. From 711d8ab50e97f508bdb16b949ddbae1423c6df84 Mon Sep 17 00:00:00 2001 From: NidhiDixit09 <93544270+NidhiDixit09@users.noreply.github.com> Date: Tue, 27 May 2025 09:03:06 -0700 Subject: [PATCH 2/3] Updated release GHA for importing certificate. --- .github/workflows/release.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ed70fa789..5ccdd0ebe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,6 +57,27 @@ jobs: steps: - name: Check out code uses: actions/checkout@v4 + - name: Install the Apple certificate + env: + BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} + P12_PASSWORD: ${{ secrets.P12_PASSWORD }} + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: | + # create variables + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # import certificate + echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH - name: Build xcframework run: | ./scripts/prep_xcframework.sh From 20b17d91a182e83a50030e6b84439bcce82982ed Mon Sep 17 00:00:00 2001 From: NidhiDixit09 <93544270+NidhiDixit09@users.noreply.github.com> Date: Thu, 5 Jun 2025 09:42:10 -0700 Subject: [PATCH 3/3] Added --deep param --- scripts/build_xcframework_noidfa.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_xcframework_noidfa.sh b/scripts/build_xcframework_noidfa.sh index 39c6b4d4f..b499b714e 100755 --- a/scripts/build_xcframework_noidfa.sh +++ b/scripts/build_xcframework_noidfa.sh @@ -65,4 +65,4 @@ xcodebuild -create-xcframework \ # create signed binary mkdir -p "${XCFRAMEWORK_PATH_SIGNED}" cp -rf "${XCFRAMEWORK_PATH}" "${XCFRAMEWORK_PATH_SIGNED}" -codesign --timestamp -s "Apple Distribution: Branch Metrics, Inc. (R63EM248DP)" "${XCFRAMEWORK_PATH_SIGNED}/BranchSDK.xcframework" +codesign --deep --timestamp -s "Apple Distribution: Branch Metrics, Inc. (R63EM248DP)" "${XCFRAMEWORK_PATH_SIGNED}/BranchSDK.xcframework"