4040 echo "tag=v$VERSION" >> $GITHUB_OUTPUT
4141 echo "📌 Ecosystem version: $VERSION"
4242
43- release-core :
44- needs : prepare
45- runs-on : macOS-15
46- env :
47- XCODE_VERSION : " 16.4"
48- steps :
49- - uses : actions/checkout@v6
50-
51- - name : Select Xcode
52- run : sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app
53-
54- - name : Install signing certificate
55- env :
56- BUILD_CERTIFICATE_BASE64 : ${{ secrets.MP_IOS_SIGNING_CERTIFICATE_P12 }}
57- P12_PASSWORD : ${{ secrets.MP_IOS_SIGNING_CERTIFICATE_PASS }}
58- KEYCHAIN_PASSWORD : ${{ secrets.MP_IOS_SIGNING_CERTIFICATE_PASS }}
59- run : |
60- CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
61- KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
62- echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
63- security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
64- security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
65- security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
66- security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
67- security list-keychain -d user -s $KEYCHAIN_PATH
68-
69- - name : Build xcframework
70- run : ./Scripts/xcframework.sh mParticle-Apple-SDK.xcodeproj mParticle-Apple-SDK mParticle-Apple-SDK
71-
72- - name : Extract release notes
73- id : release-notes
74- uses : ffurrer2/extract-release-notes@202313ec7461b6b9e401996714484690ab1ae105 # v3.0.0
75- with :
76- changelog_file : CHANGELOG.md
77-
78- - name : Dry run summary
79- if : env.DRY_RUN == 'true'
80- run : |
81- cat >> $GITHUB_STEP_SUMMARY <<'EOF'
82- ## 🏜️ DRY RUN — Core SDK Release
83-
84- | Property | Value |
85- |----------|-------|
86- | **Tag** | `${{ needs.prepare.outputs.tag }}` |
87- | **Repository** | `mParticle/mparticle-apple-sdk` |
88- | **Artifact** | `mParticle_Apple_SDK.xcframework.zip` |
89-
90- ### Release notes
91- ${{ steps.release-notes.outputs.release_notes }}
92- EOF
93-
94- - name : Create GitHub release
95- if : env.DRY_RUN != 'true'
96- uses : ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1.20.0
97- with :
98- tag : ${{ needs.prepare.outputs.tag }}
99- makeLatest : true
100- artifacts : mParticle_Apple_SDK.xcframework.zip
101- body : |
102- ## Release notes
103- ${{ steps.release-notes.outputs.release_notes }}
104-
10543 mirror-and-release-kits :
10644 needs : prepare
10745 runs-on : macOS-15
@@ -115,20 +53,17 @@ jobs:
11553 - name : braze-12
11654 local_path : kits/braze/braze-12
11755 dest_repo : mparticle-apple-integration-braze-12
118- package_scheme : mParticle-Appboy
119- supports_tvos : true
56+ ios_scheme : mParticle-Appboy
12057 module : mParticle_Appboy
12158 # - name: braze-13
12259 # local_path: kits/braze/braze-13
12360 # dest_repo: mparticle-apple-integration-braze-13
124- # package_scheme: mParticle-Appboy
125- # supports_tvos: true
61+ # ios_scheme: mParticle-Appboy
12662 # module: mParticle_Appboy
12763 # - name: braze-14
12864 # local_path: kits/braze/braze-14
12965 # dest_repo: mparticle-apple-integration-braze-14
130- # package_scheme: mParticle-Appboy
131- # supports_tvos: true
66+ # ios_scheme: mParticle-Appboy
13267 # module: mParticle_Appboy
13368
13469 steps :
@@ -140,26 +75,11 @@ jobs:
14075 - name : Select Xcode
14176 run : sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app
14277
143- - name : Install signing certificate
144- env :
145- BUILD_CERTIFICATE_BASE64 : ${{ secrets.MP_IOS_SIGNING_CERTIFICATE_P12 }}
146- P12_PASSWORD : ${{ secrets.MP_IOS_SIGNING_CERTIFICATE_PASS }}
147- KEYCHAIN_PASSWORD : ${{ secrets.MP_IOS_SIGNING_CERTIFICATE_PASS }}
148- run : |
149- CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
150- KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
151- echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
152- security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
153- security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
154- security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
155- security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
156- security list-keychain -d user -s $KEYCHAIN_PATH
157-
15878 - name : Build kit xcframework from Package.swift
15979 working-directory : ${{ matrix.kit.local_path }}
16080 run : |
16181 MODULE="${{ matrix.kit.module }}"
162- SCHEME="${{ matrix.kit.package_scheme }}"
82+ SCHEME="${{ matrix.kit.ios_scheme }}"
16383
16484 xcodebuild archive -scheme "$SCHEME" \
16585 -destination "generic/platform=iOS" -archivePath "archives/iOS"
@@ -171,26 +91,7 @@ jobs:
17191 -archive archives/iOS_Simulator.xcarchive -framework "${MODULE}.framework"
17292 )
17393
174- if [ "${{ matrix.kit.supports_tvos }}" = "true" ]; then
175- xcodebuild archive -scheme "$SCHEME" \
176- -destination "generic/platform=tvOS" -archivePath "archives/tvOS"
177- xcodebuild archive -scheme "$SCHEME" \
178- -destination "generic/platform=tvOS Simulator" -archivePath "archives/tvOS_Simulator"
179- XCFRAMEWORK_ARGS+=(
180- -archive archives/tvOS.xcarchive -framework "${MODULE}.framework"
181- -archive archives/tvOS_Simulator.xcarchive -framework "${MODULE}.framework"
182- )
183- fi
184-
18594 xcodebuild -create-xcframework "${XCFRAMEWORK_ARGS[@]}" -output "${MODULE}.xcframework"
186- codesign --timestamp -s "Apple Distribution: mParticle, inc (DLD43Y3TRP)" "${MODULE}.xcframework" || {
187- if [ "${DRY_RUN}" = "true" ]; then
188- echo "⚠️ Signing identity not found, skipping codesign in dry run"
189- else
190- echo "❌ Signing identity not found for non-dry run"
191- exit 1
192- fi
193- }
19495 zip -r "${MODULE}.xcframework.zip" "${MODULE}.xcframework"
19596 rm -rf archives "${MODULE}.xcframework"
19697
0 commit comments