From d8cf7cfe536dd65bba4e78034a39011da74efc7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gadomski?= Date: Tue, 3 Mar 2026 15:42:05 +0100 Subject: [PATCH 1/4] Make iOS bundle id agnostic --- examples/mobile-client/fishjam-chat/README.md | 7 +++++++ examples/mobile-client/fishjam-chat/app.json | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/examples/mobile-client/fishjam-chat/README.md b/examples/mobile-client/fishjam-chat/README.md index 28e36c7d..e1ab961d 100644 --- a/examples/mobile-client/fishjam-chat/README.md +++ b/examples/mobile-client/fishjam-chat/README.md @@ -31,6 +31,13 @@ yarn yarn build ``` +> [!NOTE] +> Before prebuilding, replace `com.example.fishjamchat` in `app.json` with your own bundle identifier. The following fields need to be updated: +> - **iOS bundle identifier** — `expo.ios.bundleIdentifier` +> - **Android package name** — `expo.android.package` +> - **ScreenBroadcastExtension bundle identifier** — `expo.extra.eas.build.experimental.ios.appExtensions[0].bundleIdentifier` (must end with `.ScreenBroadcastExtension`) +> - **App group entitlement** — `expo.extra.eas.build.experimental.ios.appExtensions[0].entitlements["com.apple.security.application-groups"]` (must start with `group.`) + 3. Prebuild native files in example directory: ```sh diff --git a/examples/mobile-client/fishjam-chat/app.json b/examples/mobile-client/fishjam-chat/app.json index b44374e1..778ea1e6 100644 --- a/examples/mobile-client/fishjam-chat/app.json +++ b/examples/mobile-client/fishjam-chat/app.json @@ -10,7 +10,7 @@ "newArchEnabled": true, "ios": { "supportsTablet": true, - "bundleIdentifier": "io.fishjam.example.fishjamchat", + "bundleIdentifier": "com.example.fishjamchat", "infoPlist": { "NSCameraUsageDescription": "Allow $(PRODUCT_NAME) to access your camera.", "NSMicrophoneUsageDescription": "Allow $(PRODUCT_NAME) to access your microphone.", @@ -37,7 +37,7 @@ "android.permission.FOREGROUND_SERVICE_MICROPHONE", "android.permission.POST_NOTIFICATIONS" ], - "package": "io.fishjam.example.fishjamchat" + "package": "com.example.fishjamchat" }, "web": { "output": "static", @@ -85,10 +85,10 @@ "appExtensions": [ { "targetName": "ScreenBroadcastExtension", - "bundleIdentifier": "io.fishjam.example.fishjamchat.ScreenBroadcastExtension", + "bundleIdentifier": "com.example.fishjamchat.ScreenBroadcastExtension", "entitlements": { "com.apple.security.application-groups": [ - "group.io.fishjam.example.fishjamchat" + "group.com.example.fishjamchat" ] } } From a7caae3bd5403f57477a6a8377b8aaf61e35c7dc Mon Sep 17 00:00:00 2001 From: Magmusacy Date: Tue, 3 Mar 2026 16:47:30 +0100 Subject: [PATCH 2/4] Update examples/mobile-client/fishjam-chat/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- examples/mobile-client/fishjam-chat/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/mobile-client/fishjam-chat/README.md b/examples/mobile-client/fishjam-chat/README.md index e1ab961d..28d014f7 100644 --- a/examples/mobile-client/fishjam-chat/README.md +++ b/examples/mobile-client/fishjam-chat/README.md @@ -32,11 +32,11 @@ yarn build ``` > [!NOTE] -> Before prebuilding, replace `com.example.fishjamchat` in `app.json` with your own bundle identifier. The following fields need to be updated: +> Before prebuilding, replace `com.example.fishjamchat` in `app.json` with your own app identifiers (iOS bundle ID / Android package). The following fields need to be updated: > - **iOS bundle identifier** — `expo.ios.bundleIdentifier` > - **Android package name** — `expo.android.package` -> - **ScreenBroadcastExtension bundle identifier** — `expo.extra.eas.build.experimental.ios.appExtensions[0].bundleIdentifier` (must end with `.ScreenBroadcastExtension`) -> - **App group entitlement** — `expo.extra.eas.build.experimental.ios.appExtensions[0].entitlements["com.apple.security.application-groups"]` (must start with `group.`) +> - **ScreenBroadcastExtension bundle identifier** — the `bundleIdentifier` of the `expo.extra.eas.build.experimental.ios.appExtensions` entry whose `targetName` is `"ScreenBroadcastExtension"` (must end with `.ScreenBroadcastExtension`) +> - **App group entitlement** — the `com.apple.security.application-groups` entitlement of that same `expo.extra.eas.build.experimental.ios.appExtensions` entry (must start with `group.`) 3. Prebuild native files in example directory: From 5b80ffa9c32c97dcd0905fd97167a7f58e49df6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gadomski?= Date: Wed, 4 Mar 2026 13:11:57 +0100 Subject: [PATCH 3/4] Revert bundleIdentifier to initial state and add note in README how to set it up --- examples/mobile-client/fishjam-chat/README.md | 14 ++++++++++++-- examples/mobile-client/fishjam-chat/app.json | 8 ++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/examples/mobile-client/fishjam-chat/README.md b/examples/mobile-client/fishjam-chat/README.md index e1ab961d..132c5ebd 100644 --- a/examples/mobile-client/fishjam-chat/README.md +++ b/examples/mobile-client/fishjam-chat/README.md @@ -31,12 +31,19 @@ yarn yarn build ``` -> [!NOTE] -> Before prebuilding, replace `com.example.fishjamchat` in `app.json` with your own bundle identifier. The following fields need to be updated: +> [!IMPORTANT] +> Before prebuilding, replace all occurrences of `io.fishjam.example.fishjamchat` in `app.json` with your own bundle identifier: +> > - **iOS bundle identifier** — `expo.ios.bundleIdentifier` > - **Android package name** — `expo.android.package` > - **ScreenBroadcastExtension bundle identifier** — `expo.extra.eas.build.experimental.ios.appExtensions[0].bundleIdentifier` (must end with `.ScreenBroadcastExtension`) > - **App group entitlement** — `expo.extra.eas.build.experimental.ios.appExtensions[0].entitlements["com.apple.security.application-groups"]` (must start with `group.`) +> +> For example, if your bundle ID is `com.yourcompany.yourapp`: +> +> - iOS & Android: `com.yourcompany.yourapp` +> - ScreenBroadcastExtension: `com.yourcompany.yourapp.ScreenBroadcastExtension` +> - App group: `group.com.yourcompany.yourapp` 3. Prebuild native files in example directory: @@ -58,10 +65,13 @@ yarn android ## Development 1. Whenever you make changes in the `packages` directory, make sure to build the app in the root directory (not in `examples/mobile-client/fishjam-chat`). This ensures that all related workspaces are also built: + ```sh yarn build ``` + 2. Linter (run in the root directory): + ```sh yarn lint ``` diff --git a/examples/mobile-client/fishjam-chat/app.json b/examples/mobile-client/fishjam-chat/app.json index 778ea1e6..b44374e1 100644 --- a/examples/mobile-client/fishjam-chat/app.json +++ b/examples/mobile-client/fishjam-chat/app.json @@ -10,7 +10,7 @@ "newArchEnabled": true, "ios": { "supportsTablet": true, - "bundleIdentifier": "com.example.fishjamchat", + "bundleIdentifier": "io.fishjam.example.fishjamchat", "infoPlist": { "NSCameraUsageDescription": "Allow $(PRODUCT_NAME) to access your camera.", "NSMicrophoneUsageDescription": "Allow $(PRODUCT_NAME) to access your microphone.", @@ -37,7 +37,7 @@ "android.permission.FOREGROUND_SERVICE_MICROPHONE", "android.permission.POST_NOTIFICATIONS" ], - "package": "com.example.fishjamchat" + "package": "io.fishjam.example.fishjamchat" }, "web": { "output": "static", @@ -85,10 +85,10 @@ "appExtensions": [ { "targetName": "ScreenBroadcastExtension", - "bundleIdentifier": "com.example.fishjamchat.ScreenBroadcastExtension", + "bundleIdentifier": "io.fishjam.example.fishjamchat.ScreenBroadcastExtension", "entitlements": { "com.apple.security.application-groups": [ - "group.com.example.fishjamchat" + "group.io.fishjam.example.fishjamchat" ] } } From af902ad76fc72c3011026945cf7cb1eb8d4a4b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Filimowski?= Date: Wed, 4 Mar 2026 14:30:10 +0100 Subject: [PATCH 4/4] Update README.md to remove obsolete bundle identifier info Removed outdated information regarding ScreenBroadcastExtension bundle identifier and App group entitlement. --- examples/mobile-client/fishjam-chat/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/mobile-client/fishjam-chat/README.md b/examples/mobile-client/fishjam-chat/README.md index 132c5ebd..2a32c5ad 100644 --- a/examples/mobile-client/fishjam-chat/README.md +++ b/examples/mobile-client/fishjam-chat/README.md @@ -36,8 +36,6 @@ yarn build > > - **iOS bundle identifier** — `expo.ios.bundleIdentifier` > - **Android package name** — `expo.android.package` -> - **ScreenBroadcastExtension bundle identifier** — `expo.extra.eas.build.experimental.ios.appExtensions[0].bundleIdentifier` (must end with `.ScreenBroadcastExtension`) -> - **App group entitlement** — `expo.extra.eas.build.experimental.ios.appExtensions[0].entitlements["com.apple.security.application-groups"]` (must start with `group.`) > > For example, if your bundle ID is `com.yourcompany.yourapp`: >