From ffe075ecbdb7ab9db934fa710cfa141ac09c14d2 Mon Sep 17 00:00:00 2001 From: Milosz Filimowski Date: Tue, 3 Feb 2026 10:52:19 +0100 Subject: [PATCH 1/4] use released package --- packages/mobile-client/package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/mobile-client/package.json b/packages/mobile-client/package.json index eff79d13..32db84ca 100644 --- a/packages/mobile-client/package.json +++ b/packages/mobile-client/package.json @@ -46,7 +46,7 @@ }, "dependencies": { "@fishjam-cloud/react-client": "workspace:*", - "@fishjam-cloud/react-native-webrtc": "git+https://github.com/fishjam-cloud/fishjam-react-native-webrtc.git#9753272f9e6c992d8a05263e668e2198ec858160", + "@fishjam-cloud/react-native-webrtc": "0.25.0", "promise-fs": "^2.1.1", "react-native-get-random-values": "^1.11.0" }, diff --git a/yarn.lock b/yarn.lock index 5319f05d..ff41eb25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3864,7 +3864,7 @@ __metadata: resolution: "@fishjam-cloud/react-native-client@workspace:packages/mobile-client" dependencies: "@fishjam-cloud/react-client": "workspace:*" - "@fishjam-cloud/react-native-webrtc": "git+https://github.com/fishjam-cloud/fishjam-react-native-webrtc.git#9753272f9e6c992d8a05263e668e2198ec858160" + "@fishjam-cloud/react-native-webrtc": "npm:0.25.0" "@types/promise-fs": "npm:^2.1.2" eslint-config-expo: "npm:~9.2.0" eslint-plugin-prettier: "npm:^5.5.1" @@ -3878,16 +3878,16 @@ __metadata: languageName: unknown linkType: soft -"@fishjam-cloud/react-native-webrtc@git+https://github.com/fishjam-cloud/fishjam-react-native-webrtc.git#9753272f9e6c992d8a05263e668e2198ec858160": - version: 0.24.0 - resolution: "@fishjam-cloud/react-native-webrtc@https://github.com/fishjam-cloud/fishjam-react-native-webrtc.git#commit=9753272f9e6c992d8a05263e668e2198ec858160" +"@fishjam-cloud/react-native-webrtc@npm:0.25.0": + version: 0.25.0 + resolution: "@fishjam-cloud/react-native-webrtc@npm:0.25.0" dependencies: base64-js: "npm:1.5.1" debug: "npm:4.3.4" event-target-shim: "npm:6.0.2" peerDependencies: - react-native: ">=0.60.0" - checksum: 10c0/adb7b31272c9feac4f964fe1e82bf65ef0a9f357e93c314db617b658fc0987f65bad2d56fd00618475f694c503b6b6686dd884567c16d2c0665da9dc92cbfb6b + react-native: "*" + checksum: 10c0/f36e8e6ac6057f0cf0911e408f629255a646e848d8149d1225ade3bf0afdb9bd90a7dc60edbaa152184dd79c7d415796050aef77c19e64541625ca051645376e languageName: node linkType: hard From 6f0b4c1c987374916b008ad4e5c9de2628c497b9 Mon Sep 17 00:00:00 2001 From: Milosz Filimowski Date: Tue, 3 Feb 2026 14:59:08 +0100 Subject: [PATCH 2/4] configure eas --- .github/workflows/mobile_eas_build.yaml | 59 +++++++++++++++++++ examples/mobile-client/fishjam-chat/app.json | 32 ++++++++-- examples/mobile-client/fishjam-chat/eas.json | 36 +++++++++++ .../mobile-client/fishjam-chat/package.json | 4 +- 4 files changed, 126 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/mobile_eas_build.yaml create mode 100644 examples/mobile-client/fishjam-chat/eas.json diff --git a/.github/workflows/mobile_eas_build.yaml b/.github/workflows/mobile_eas_build.yaml new file mode 100644 index 00000000..85fd4353 --- /dev/null +++ b/.github/workflows/mobile_eas_build.yaml @@ -0,0 +1,59 @@ +name: Mobile EAS Build +on: + pull_request: + types: [labeled] +jobs: + build: + if: ${{ github.event.label.name == 'eas build' }} + runs-on: macOS-latest + steps: + - name: 🏗 Setup repo + uses: actions/checkout@v4 + + - name: 🏗 Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22.x + cache: npm + + - name: 🏗 Setup EAS + uses: expo/expo-github-action@v8 + with: + eas-version: latest + token: ${{ secrets.EXPO_TOKEN }} + + - name: Use corepack + run: corepack enable + + - name: 📦 Install dependencies + run: yarn && yarn build + + - name: 🚀 Build app + run: eas build --non-interactive --platform=all + working-directory: examples/mobile-client/fishjam-chat + + - name: 🛫 Submit iOS app to TestFlight + run: eas submit --non-interactive --platform=ios --latest + working-directory: examples/mobile-client/fishjam-chat + + - name: ⛓️‍💥 Get iOS archive url and version + id: ios_build + run: eas build:list --json --non-interactive | jq -r '[.[] | select(.platform=="IOS")][0] | "version=\(.appVersion) (\(.appBuildVersion))"' >> $GITHUB_OUTPUT + working-directory: examples/mobile-client/fishjam-chat + + - name: ⛓️‍💥 Get Android archive url and version + id: android_build + run: eas build:list --json --non-interactive | jq -r '[.[] | select(.platform=="ANDROID")][0] | "url=\(.artifacts.applicationArchiveUrl)\nversion=\(.appVersion) (\(.appBuildVersion))"' >> $GITHUB_OUTPUT + working-directory: examples/mobile-client/fishjam-chat + + - name: 💬 Add comment with build links + uses: actions/github-script@v7 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: '**Download links**\nAndroid - ${{ steps.android_build.outputs.version }}: ${{ steps.android_build.outputs.url }}\niOS - ${{ steps.ios_build.outputs.version }}: https://testflight.apple.com/v1/app/6711353226' + }) diff --git a/examples/mobile-client/fishjam-chat/app.json b/examples/mobile-client/fishjam-chat/app.json index 30adc1c8..c8c0b217 100644 --- a/examples/mobile-client/fishjam-chat/app.json +++ b/examples/mobile-client/fishjam-chat/app.json @@ -10,10 +10,11 @@ "newArchEnabled": true, "ios": { "supportsTablet": true, - "bundleIdentifier": "com.anonymous.fishjamchat", + "bundleIdentifier": "io.fishjam.example.fishjamchat", "infoPlist": { "NSCameraUsageDescription": "Allow $(PRODUCT_NAME) to access your camera.", - "NSMicrophoneUsageDescription": "Allow $(PRODUCT_NAME) to access your microphone." + "NSMicrophoneUsageDescription": "Allow $(PRODUCT_NAME) to access your microphone.", + "ITSAppUsesNonExemptEncryption": false }, "appleTeamId": "J5FM626PE2" }, @@ -37,7 +38,7 @@ "android.permission.FOREGROUND_SERVICE_MICROPHONE", "android.permission.POST_NOTIFICATIONS" ], - "package": "com.anonymous.fishjamchat" + "package": "io.fishjam.example.fishjamchat" }, "web": { "output": "static", @@ -75,6 +76,29 @@ ], "experiments": { "typedRoutes": true - } + }, + "extra": { + "eas": { + "projectId": "3cb3251a-603a-4c13-ab69-6fac3249072d", + "build": { + "experimental": { + "ios": { + "appExtensions": [ + { + "targetName": "ScreenBroadcastExtension", + "bundleIdentifier": "io.fishjam.example.fishjamchat.ScreenBroadcastExtension", + "entitlements": { + "com.apple.security.application-groups": [ + "group.io.fishjam.example.fishjamchat" + ] + } + } + ] + } + } + } + } + }, + "owner": "fishjam-cloud" } } diff --git a/examples/mobile-client/fishjam-chat/eas.json b/examples/mobile-client/fishjam-chat/eas.json new file mode 100644 index 00000000..e4de6387 --- /dev/null +++ b/examples/mobile-client/fishjam-chat/eas.json @@ -0,0 +1,36 @@ +{ + "cli": { + "version": ">= 12.5.3", + "appVersionSource": "remote" + }, + "build": { + "base": { + "ios": { + "image": "latest" + } + }, + "development": { + "extends": "base", + "developmentClient": true, + "distribution": "internal" + }, + "preview": { + "extends": "base", + "distribution": "internal" + }, + "production": { + "extends": "base", + "autoIncrement": true, + "android": { + "buildType": "apk" + } + } + }, + "submit": { + "production": { + "ios": { + "ascAppId": "6711353226" + } + } + } +} diff --git a/examples/mobile-client/fishjam-chat/package.json b/examples/mobile-client/fishjam-chat/package.json index 18d6057a..af9cbdf5 100644 --- a/examples/mobile-client/fishjam-chat/package.json +++ b/examples/mobile-client/fishjam-chat/package.json @@ -8,7 +8,9 @@ "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", - "lint": "expo lint" + "lint": "expo lint", + "eas-build-pre-install": "corepack enable && yarn && yarn build", + "prebuild": "rm -rf android/app/build && expo prebuild" }, "dependencies": { "@expo/vector-icons": "^15.0.3", From 3b84c65c282e4463518a2b76921ac6bf11dccc16 Mon Sep 17 00:00:00 2001 From: Milosz Filimowski Date: Tue, 3 Feb 2026 15:36:32 +0100 Subject: [PATCH 3/4] fix prebuild script --- examples/mobile-client/fishjam-chat/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/mobile-client/fishjam-chat/package.json b/examples/mobile-client/fishjam-chat/package.json index af9cbdf5..6c0daccb 100644 --- a/examples/mobile-client/fishjam-chat/package.json +++ b/examples/mobile-client/fishjam-chat/package.json @@ -9,7 +9,7 @@ "ios": "expo run:ios", "web": "expo start --web", "lint": "expo lint", - "eas-build-pre-install": "corepack enable && yarn && yarn build", + "eas-build-pre-install": "corepack enable && yarn && (cd ../../.. && yarn build)", "prebuild": "rm -rf android/app/build && expo prebuild" }, "dependencies": { From b7f1affcd3bcfaa3c7e0bbd28b612cd6b13b9877 Mon Sep 17 00:00:00 2001 From: Milosz Filimowski Date: Thu, 5 Feb 2026 11:24:07 +0100 Subject: [PATCH 4/4] implement some copilot suggestions --- .github/workflows/mobile_eas_build.yaml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mobile_eas_build.yaml b/.github/workflows/mobile_eas_build.yaml index 85fd4353..61f97e08 100644 --- a/.github/workflows/mobile_eas_build.yaml +++ b/.github/workflows/mobile_eas_build.yaml @@ -2,6 +2,11 @@ name: Mobile EAS Build on: pull_request: types: [labeled] + +permissions: + contents: read + pull-requests: write + jobs: build: if: ${{ github.event.label.name == 'eas build' }} @@ -29,7 +34,7 @@ jobs: run: yarn && yarn build - name: 🚀 Build app - run: eas build --non-interactive --platform=all + run: eas build --non-interactive --platform=all --profile production working-directory: examples/mobile-client/fishjam-chat - name: 🛫 Submit iOS app to TestFlight @@ -46,6 +51,11 @@ jobs: run: eas build:list --json --non-interactive | jq -r '[.[] | select(.platform=="ANDROID")][0] | "url=\(.artifacts.applicationArchiveUrl)\nversion=\(.appVersion) (\(.appBuildVersion))"' >> $GITHUB_OUTPUT working-directory: examples/mobile-client/fishjam-chat + - name: 📱 Get App Store Connect app ID + id: asc_app + run: echo "id=$(jq -r '.submit.production.ios.ascAppId' eas.json)" >> $GITHUB_OUTPUT + working-directory: examples/mobile-client/fishjam-chat + - name: 💬 Add comment with build links uses: actions/github-script@v7 with: @@ -55,5 +65,5 @@ jobs: issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, - body: '**Download links**\nAndroid - ${{ steps.android_build.outputs.version }}: ${{ steps.android_build.outputs.url }}\niOS - ${{ steps.ios_build.outputs.version }}: https://testflight.apple.com/v1/app/6711353226' + body: '**Download links**\nAndroid - ${{ steps.android_build.outputs.version }}: ${{ steps.android_build.outputs.url }}\niOS - ${{ steps.ios_build.outputs.version }}: https://testflight.apple.com/v1/app/${{ steps.asc_app.outputs.id }}' })