diff --git a/.github/scripts/run-maestro.sh b/.github/scripts/run-maestro.sh
index a0705a4f442..206d532671f 100755
--- a/.github/scripts/run-maestro.sh
+++ b/.github/scripts/run-maestro.sh
@@ -9,6 +9,12 @@ MAX_RERUN_ROUNDS="${MAX_RERUN_ROUNDS:-3}"
RERUN_REPORT_PREFIX="maestro-rerun"
export MAESTRO_DRIVER_STARTUP_TIMEOUT="${MAESTRO_DRIVER_STARTUP_TIMEOUT:-120000}"
+if [ "$PLATFORM" = "android" ]; then
+ APP_ID="chat.rocket.android"
+else
+ APP_ID="chat.rocket.ios"
+fi
+
if ! command -v maestro >/dev/null 2>&1; then
echo "ERROR: maestro not found in PATH"
exit 2
@@ -65,12 +71,13 @@ printf ' %s\n' "${FLOW_FILES[@]}"
if [ "$PLATFORM" = "android" ]; then
adb shell settings put system show_touches 1 || true
- adb install -r "app-experimental-release.apk" || true
- adb shell monkey -p "chat.rocket.reactnative" -c android.intent.category.LAUNCHER 1 || true
+ adb install -r "app-official-release.apk" || true
+ adb shell monkey -p "$APP_ID" -c android.intent.category.LAUNCHER 1 || true
sleep 6
- adb shell am force-stop "chat.rocket.reactnative" || true
+ adb shell am force-stop "$APP_ID" || true
maestro test "${FLOW_FILES[@]}" \
+ -e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=ios-only \
@@ -79,6 +86,7 @@ if [ "$PLATFORM" = "android" ]; then
else
maestro test "${FLOW_FILES[@]}" \
+ -e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=android-only \
@@ -140,6 +148,7 @@ while [ ${#CURRENT_FAILS[@]} -gt 0 ] && [ "$ROUND" -le "$MAX_RERUN_ROUNDS" ]; do
if [ "$PLATFORM" = "android" ]; then
maestro test "${CURRENT_FAILS[@]}" \
+ -e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=ios-only \
@@ -147,6 +156,7 @@ while [ ${#CURRENT_FAILS[@]} -gt 0 ] && [ "$ROUND" -le "$MAX_RERUN_ROUNDS" ]; do
--output "$RPT" || true
else
maestro test "${CURRENT_FAILS[@]}" \
+ -e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=android-only \
diff --git a/.github/workflows/e2e-build-android.yml b/.github/workflows/e2e-build-android.yml
index 043d6c98032..f15c593ecce 100644
--- a/.github/workflows/e2e-build-android.yml
+++ b/.github/workflows/e2e-build-android.yml
@@ -3,15 +3,13 @@ name: E2E Build Android
on:
workflow_call:
secrets:
- EXPERIMENTAL_KEYSTORE_BASE64:
+ KEYSTORE_OFFICIAL_BASE64:
required: true
- EXPERIMENTAL_KEYSTORE_PASSWORD:
+ KEYSTORE_OFFICIAL_PASSWORD:
required: true
- EXPERIMENTAL_KEY_ALIAS:
+ KEYSTORE_OFFICIAL_ALIAS:
required: true
- EXPERIMENTAL_KEY_PASSWORD:
- required: true
- BUGSNAG_KEY:
+ BUGSNAG_KEY_OFFICIAL:
required: true
jobs:
@@ -19,10 +17,10 @@ jobs:
runs-on: ubuntu-latest
outputs:
- artifact_name: Android Experimental APK
+ artifact_name: Android Official APK
steps:
- - name: Checkout Repository
+ - name: Checkout Repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Checkout and Setup Node
@@ -64,7 +62,7 @@ jobs:
- name: Decode Keystore
run: |
- echo "${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }}" | base64 -d > android/app/release.keystore
+ echo "${{ secrets.KEYSTORE_OFFICIAL_BASE64 }}" | base64 -d > android/app/release.keystore
- name: Set gradle.properties
working-directory: android
@@ -74,24 +72,24 @@ jobs:
echo -e "android.useAndroidX=true" >> ./gradle.properties
echo -e "android.enableJetifier=true" >> ./gradle.properties
echo -e "reactNativeArchitectures=x86_64" >> ./gradle.properties
- echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties
+ echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties
echo -e "newArchEnabled=true" >> ./gradle.properties
echo -e "hermesEnabled=true" >> ./gradle.properties
echo -e "VERSIONCODE=999999" >> ./gradle.properties
echo -e "KEYSTORE=release.keystore" >> ./gradle.properties
- echo -e "KEYSTORE_PASSWORD=${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }}" >> ./gradle.properties
- echo -e "KEY_ALIAS=${{ secrets.EXPERIMENTAL_KEY_ALIAS }}" >> ./gradle.properties
- echo -e "KEY_PASSWORD=${{ secrets.EXPERIMENTAL_KEY_PASSWORD }}" >> ./gradle.properties
- echo -e "BugsnagAPIKey=${{ secrets.BUGSNAG_KEY }}" >> ./gradle.properties
-
+ echo -e "KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_OFFICIAL_PASSWORD }}" >> ./gradle.properties
+ echo -e "KEY_ALIAS=${{ secrets.KEYSTORE_OFFICIAL_ALIAS }}" >> ./gradle.properties
+ echo -e "KEY_PASSWORD=${{ secrets.KEYSTORE_OFFICIAL_PASSWORD }}" >> ./gradle.properties
+ echo -e "BugsnagAPIKey=${{ secrets.BUGSNAG_KEY_OFFICIAL }}" >> ./gradle.properties
+
- name: Build Android Release APK
working-directory: android
- run: ./gradlew assembleExperimentalRelease --build-cache --parallel --max-workers=4 --no-daemon --stacktrace
+ run: ./gradlew assembleOfficialRelease --build-cache --parallel --max-workers=4 --no-daemon --stacktrace
env:
RUNNING_E2E_TESTS: true
- name: Upload APK
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
- name: Android Experimental APK
- path: android/app/build/outputs/apk/experimental/release/app-experimental-release.apk
+ name: Android Official APK
+ path: android/app/build/outputs/apk/official/release/app-official-release.apk
diff --git a/.github/workflows/e2e-build-ios.yml b/.github/workflows/e2e-build-ios.yml
index 3a6416d2770..240c2501c92 100644
--- a/.github/workflows/e2e-build-ios.yml
+++ b/.github/workflows/e2e-build-ios.yml
@@ -70,17 +70,20 @@ jobs:
run: |
echo ${{ secrets.APP_STORE_CONNECT_API_KEY_BASE64 }} | base64 --decode > ./ios/fastlane/app_store_connect_api_key.p8
- - name: Set bugsnag key
+ - name: Set bugsnag key and IS_OFFICIAL
run: |
cd ios
/usr/libexec/PlistBuddy -c "Set :bugsnag:apiKey ${{ secrets.BUGSNAG_KEY}}" ./RocketChatRN/Info.plist
/usr/libexec/PlistBuddy -c "Set :bugsnag:apiKey ${{ secrets.BUGSNAG_KEY}}" ./ShareRocketChatRN/Info.plist
+ /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL YES" ./RocketChatRN/Info.plist
+ /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL YES" ./ShareRocketChatRN/Info.plist
+ /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL YES" ./NotificationService/Info.plist
- name: Build iOS app
run: |
cd ios
export RUNNING_E2E_TESTS=true
- bundle exec fastlane ios build_experimental_simulator \
+ bundle exec fastlane ios build_official_simulator \
disable_xcpretty:false \
skip_package_ipa:true \
skip_archive:true
@@ -104,4 +107,4 @@ jobs:
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ios-simulator-app
- path: ${{ steps.find_xcarchive.outputs.archive_path }}/Products/Applications/Rocket.Chat Experimental.app
+ path: ${{ steps.find_xcarchive.outputs.archive_path }}/Products/Applications/Rocket.Chat.app
diff --git a/.github/workflows/maestro-android.yml b/.github/workflows/maestro-android.yml
index 506b67b6426..0026e64d027 100644
--- a/.github/workflows/maestro-android.yml
+++ b/.github/workflows/maestro-android.yml
@@ -42,7 +42,7 @@ jobs:
- name: Download APK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
- name: Android Experimental APK
+ name: Android Official APK
- name: Setup E2E Account
uses: ./.github/actions/e2e-account
diff --git a/.maestro/config.yml b/.maestro/config.yml
index 0f63df93323..5eeda4b7f56 100644
--- a/.maestro/config.yml
+++ b/.maestro/config.yml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
flows:
- tests/**
excludeTags:
diff --git a/.maestro/helpers/create-account.yaml b/.maestro/helpers/create-account.yaml
index 01350a1d8d1..9332cb03121 100644
--- a/.maestro/helpers/create-account.yaml
+++ b/.maestro/helpers/create-account.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Create Account
tags:
- 'util'
diff --git a/.maestro/helpers/erase-text.yaml b/.maestro/helpers/erase-text.yaml
index 616f8863b71..c1633ff81aa 100644
--- a/.maestro/helpers/erase-text.yaml
+++ b/.maestro/helpers/erase-text.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Erase Text
tags:
- 'util'
diff --git a/.maestro/helpers/go-back.yaml b/.maestro/helpers/go-back.yaml
index 2e189a8f5cd..667f678c475 100644
--- a/.maestro/helpers/go-back.yaml
+++ b/.maestro/helpers/go-back.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Go back
tags:
- 'util'
diff --git a/.maestro/helpers/hide-keyboard.yaml b/.maestro/helpers/hide-keyboard.yaml
index e85077c5f7c..36ba31b8d87 100644
--- a/.maestro/helpers/hide-keyboard.yaml
+++ b/.maestro/helpers/hide-keyboard.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Hide Keyboard
tags:
- 'util'
diff --git a/.maestro/helpers/launch-app.yaml b/.maestro/helpers/launch-app.yaml
index fa6607fa60a..a992c663aec 100644
--- a/.maestro/helpers/launch-app.yaml
+++ b/.maestro/helpers/launch-app.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Launch app
tags:
- 'util'
diff --git a/.maestro/helpers/login-with-deeplink.yaml b/.maestro/helpers/login-with-deeplink.yaml
index d9b1ee77ae5..3f3e93e3c83 100644
--- a/.maestro/helpers/login-with-deeplink.yaml
+++ b/.maestro/helpers/login-with-deeplink.yaml
@@ -1,15 +1,15 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Login with Deeplink
tags:
- 'util'
---
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
when:
true: CLEAR_STATE
commands:
- - clearState: chat.rocket.reactnative
+ - clearState: ${APP_ID}
- setPermissions:
permissions:
all: allow
diff --git a/.maestro/helpers/login.yaml b/.maestro/helpers/login.yaml
index 8d3d8ea4491..7b0ae9f69c0 100644
--- a/.maestro/helpers/login.yaml
+++ b/.maestro/helpers/login.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Login
tags:
- 'util'
diff --git a/.maestro/helpers/logout.yaml b/.maestro/helpers/logout.yaml
index e58688f6463..ccc663c80ac 100644
--- a/.maestro/helpers/logout.yaml
+++ b/.maestro/helpers/logout.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Logout
tags:
- 'util'
diff --git a/.maestro/helpers/navigate-to-login.yaml b/.maestro/helpers/navigate-to-login.yaml
index d6acb3d955e..88fcab0429d 100644
--- a/.maestro/helpers/navigate-to-login.yaml
+++ b/.maestro/helpers/navigate-to-login.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigate to login
tags:
- 'util'
diff --git a/.maestro/helpers/navigate-to-recent-room.yaml b/.maestro/helpers/navigate-to-recent-room.yaml
index 844905540b0..fdfc1057707 100644
--- a/.maestro/helpers/navigate-to-recent-room.yaml
+++ b/.maestro/helpers/navigate-to-recent-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigate to recent room
tags:
- 'util'
diff --git a/.maestro/helpers/navigate-to-register.yaml b/.maestro/helpers/navigate-to-register.yaml
index 9f99887bc32..9bfae640c6e 100644
--- a/.maestro/helpers/navigate-to-register.yaml
+++ b/.maestro/helpers/navigate-to-register.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigate to register
tags:
- 'util'
diff --git a/.maestro/helpers/navigate-to-room-action.yaml b/.maestro/helpers/navigate-to-room-action.yaml
index 4e182b71ad8..08a0dfeb718 100644
--- a/.maestro/helpers/navigate-to-room-action.yaml
+++ b/.maestro/helpers/navigate-to-room-action.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigate to room action
tags:
- 'util'
diff --git a/.maestro/helpers/navigate-to-room.yaml b/.maestro/helpers/navigate-to-room.yaml
index 6b71c565378..e8eba0728b0 100644
--- a/.maestro/helpers/navigate-to-room.yaml
+++ b/.maestro/helpers/navigate-to-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigate to room
tags:
- 'util'
diff --git a/.maestro/helpers/navigate-to-workspace.yaml b/.maestro/helpers/navigate-to-workspace.yaml
index 091c10f50a8..b49a611a621 100644
--- a/.maestro/helpers/navigate-to-workspace.yaml
+++ b/.maestro/helpers/navigate-to-workspace.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigate to workspace
tags:
- 'util'
diff --git a/.maestro/helpers/open-deeplink.yaml b/.maestro/helpers/open-deeplink.yaml
index 2ca10361e47..8f988e8f1f1 100644
--- a/.maestro/helpers/open-deeplink.yaml
+++ b/.maestro/helpers/open-deeplink.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Open Deep Link
tags:
- 'util'
diff --git a/.maestro/helpers/search-and-navigate-room.yaml b/.maestro/helpers/search-and-navigate-room.yaml
index a62e032c375..ba8479a1c02 100644
--- a/.maestro/helpers/search-and-navigate-room.yaml
+++ b/.maestro/helpers/search-and-navigate-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Search and navigate room
tags:
- 'util'
diff --git a/.maestro/helpers/search-room.yaml b/.maestro/helpers/search-room.yaml
index 59eef9262ed..10abc7dba89 100644
--- a/.maestro/helpers/search-room.yaml
+++ b/.maestro/helpers/search-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Search room
tags:
- 'util'
diff --git a/.maestro/helpers/send-message.yaml b/.maestro/helpers/send-message.yaml
index c315e8dd354..b5210b7d4d6 100644
--- a/.maestro/helpers/send-message.yaml
+++ b/.maestro/helpers/send-message.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Send message
tags:
- 'util'
diff --git a/.maestro/helpers/setup.yaml b/.maestro/helpers/setup.yaml
index 7367920f405..2dc640f475a 100644
--- a/.maestro/helpers/setup.yaml
+++ b/.maestro/helpers/setup.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
tags:
- 'util'
diff --git a/.maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml b/.maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml
index 973e6f430f3..2a2cea33ceb 100644
--- a/.maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml
+++ b/.maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Toasts and Dialogs
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/accessibility-and-appearance.yaml b/.maestro/tests/assorted/accessibility-and-appearance.yaml
index c3df95a495f..04a79a29fcd 100644
--- a/.maestro/tests/assorted/accessibility-and-appearance.yaml
+++ b/.maestro/tests/assorted/accessibility-and-appearance.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Accessibility and Appearance
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/broadcast.yaml b/.maestro/tests/assorted/broadcast.yaml
index f8bca168bc4..254c6b78b1b 100644
--- a/.maestro/tests/assorted/broadcast.yaml
+++ b/.maestro/tests/assorted/broadcast.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Broadcast
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/change-avatar.yaml b/.maestro/tests/assorted/change-avatar.yaml
index 7a40abd5638..72285dfc884 100644
--- a/.maestro/tests/assorted/change-avatar.yaml
+++ b/.maestro/tests/assorted/change-avatar.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Change Avatar
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/changeserver.yaml b/.maestro/tests/assorted/changeserver.yaml
index c87fcfc4dd0..897eabe427d 100644
--- a/.maestro/tests/assorted/changeserver.yaml
+++ b/.maestro/tests/assorted/changeserver.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Change Server
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/deeplink.yaml b/.maestro/tests/assorted/deeplink.yaml
index b6fac536505..4c5780f8b29 100644
--- a/.maestro/tests/assorted/deeplink.yaml
+++ b/.maestro/tests/assorted/deeplink.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: DeepLink Test
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
@@ -18,7 +18,7 @@ tags:
# should run a deep link to an invalid account and raise error
- runFlow:
file: '../../helpers/launch-app.yaml'
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -31,7 +31,7 @@ tags:
# should authenticate and navigate
- runFlow:
file: '../../helpers/launch-app.yaml'
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- evalScript: ${output.utils.getDeepLink('auth', output.data.server, 'userId=', output.login.userId, '&token=', output.login.authToken, '&path=group/', output.room.name)}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
@@ -65,7 +65,7 @@ tags:
- runFlow: '../../helpers/create-account.yaml'
# should authenticate and navigate back to the previous server
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -89,7 +89,7 @@ tags:
timeout: 60000
# should navigate to the room using path
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -100,7 +100,7 @@ tags:
timeout: 60000
# should navigate to the thread using path
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -111,7 +111,7 @@ tags:
timeout: 60000
# should navigate to the room using rid
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -162,7 +162,7 @@ tags:
file: './utils/check-server.yaml'
env:
server: ${output.data.alternateServer}
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -173,7 +173,7 @@ tags:
timeout: 60000
# should add a not existing server and fallback to the previous one
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -185,7 +185,7 @@ tags:
# should share text
- evalScript: ${output.message = output.random()}
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -243,7 +243,7 @@ tags:
file: './utils/check-server.yaml'
env:
server: ${output.data.alternateServer}
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
@@ -301,7 +301,7 @@ tags:
# should open share without being logged in and go to onboarding
- runFlow:
file: '../../helpers/launch-app.yaml'
-- stopApp: chat.rocket.reactnative
+- stopApp: ${APP_ID}
- runFlow:
file: '../../helpers/open-deeplink.yaml'
env:
diff --git a/.maestro/tests/assorted/delete-server.yaml b/.maestro/tests/assorted/delete-server.yaml
index 3e930bc7746..5728d753b7a 100644
--- a/.maestro/tests/assorted/delete-server.yaml
+++ b/.maestro/tests/assorted/delete-server.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Delete Server
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/display-perf.yaml b/.maestro/tests/assorted/display-perf.yaml
index be6f47955e7..57f8a6c6591 100644
--- a/.maestro/tests/assorted/display-perf.yaml
+++ b/.maestro/tests/assorted/display-perf.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Display Perf
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/i18n.yaml b/.maestro/tests/assorted/i18n.yaml
index f156ccfe320..b4be402f7b2 100644
--- a/.maestro/tests/assorted/i18n.yaml
+++ b/.maestro/tests/assorted/i18n.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: I18N Test
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/in-app-notification.yaml b/.maestro/tests/assorted/in-app-notification.yaml
index 3913ca98c1e..7b60d11506f 100644
--- a/.maestro/tests/assorted/in-app-notification.yaml
+++ b/.maestro/tests/assorted/in-app-notification.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: In App Notification
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/join-from-directory.yaml b/.maestro/tests/assorted/join-from-directory.yaml
index d536cb874bb..748345c4f5d 100644
--- a/.maestro/tests/assorted/join-from-directory.yaml
+++ b/.maestro/tests/assorted/join-from-directory.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Join From Directory
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/join-protected-room.yaml b/.maestro/tests/assorted/join-protected-room.yaml
index 071727b8759..3268412d28b 100644
--- a/.maestro/tests/assorted/join-protected-room.yaml
+++ b/.maestro/tests/assorted/join-protected-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Join Protected Room
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/join-public-room.yaml b/.maestro/tests/assorted/join-public-room.yaml
index 4e4860783b6..c7f82ad1bd9 100644
--- a/.maestro/tests/assorted/join-public-room.yaml
+++ b/.maestro/tests/assorted/join-public-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Join Public Room
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/profile.yaml b/.maestro/tests/assorted/profile.yaml
index e6741045fc4..42e26a06df7 100644
--- a/.maestro/tests/assorted/profile.yaml
+++ b/.maestro/tests/assorted/profile.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Profile
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/setting.yaml b/.maestro/tests/assorted/setting.yaml
index e5991253235..04e7578fe6b 100644
--- a/.maestro/tests/assorted/setting.yaml
+++ b/.maestro/tests/assorted/setting.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Setting
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/status.yaml b/.maestro/tests/assorted/status.yaml
index 52898e8a441..88e5f418369 100644
--- a/.maestro/tests/assorted/status.yaml
+++ b/.maestro/tests/assorted/status.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Status
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/user-preferences.yaml b/.maestro/tests/assorted/user-preferences.yaml
index a11f1c2a48e..80e026160c5 100644
--- a/.maestro/tests/assorted/user-preferences.yaml
+++ b/.maestro/tests/assorted/user-preferences.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: User Preferences
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/assorted/utils/check-server.yaml b/.maestro/tests/assorted/utils/check-server.yaml
index 1afb7eec96b..7e180616e21 100644
--- a/.maestro/tests/assorted/utils/check-server.yaml
+++ b/.maestro/tests/assorted/utils/check-server.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Check Server
tags:
- 'util'
diff --git a/.maestro/tests/assorted/utils/go-to-accessibility-appearance.yaml b/.maestro/tests/assorted/utils/go-to-accessibility-appearance.yaml
index 3ffd45d33c6..f54a4946e4c 100644
--- a/.maestro/tests/assorted/utils/go-to-accessibility-appearance.yaml
+++ b/.maestro/tests/assorted/utils/go-to-accessibility-appearance.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Go To Accessibility and Appearance
tags:
- 'util'
diff --git a/.maestro/tests/assorted/utils/go-to-display-pref.yaml b/.maestro/tests/assorted/utils/go-to-display-pref.yaml
index 41fba08efeb..4acea68390c 100644
--- a/.maestro/tests/assorted/utils/go-to-display-pref.yaml
+++ b/.maestro/tests/assorted/utils/go-to-display-pref.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Go To Display Pref
tags:
- 'util'
diff --git a/.maestro/tests/assorted/utils/go-to-room-list.yaml b/.maestro/tests/assorted/utils/go-to-room-list.yaml
index 66b5ee58489..6734380e054 100644
--- a/.maestro/tests/assorted/utils/go-to-room-list.yaml
+++ b/.maestro/tests/assorted/utils/go-to-room-list.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Go To Room List
tags:
- 'util'
diff --git a/.maestro/tests/assorted/utils/go-to-user-preference.yaml b/.maestro/tests/assorted/utils/go-to-user-preference.yaml
index 255182b02c1..3a735db6b03 100644
--- a/.maestro/tests/assorted/utils/go-to-user-preference.yaml
+++ b/.maestro/tests/assorted/utils/go-to-user-preference.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Go To User Preferences
tags:
- 'util'
diff --git a/.maestro/tests/assorted/utils/nav-to-language.yaml b/.maestro/tests/assorted/utils/nav-to-language.yaml
index 8971996dfb5..e92b341fad1 100644
--- a/.maestro/tests/assorted/utils/nav-to-language.yaml
+++ b/.maestro/tests/assorted/utils/nav-to-language.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigation To Language
tags:
- 'util'
diff --git a/.maestro/tests/e2ee/e2e-encryption.yaml b/.maestro/tests/e2ee/e2e-encryption.yaml
index c33017c39c3..a4852dbb510 100644
--- a/.maestro/tests/e2ee/e2e-encryption.yaml
+++ b/.maestro/tests/e2ee/e2e-encryption.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: E2E Encryption
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/e2ee/flows/accept-new-key-and-verify.yaml b/.maestro/tests/e2ee/flows/accept-new-key-and-verify.yaml
index 83efffea638..88217a6336d 100644
--- a/.maestro/tests/e2ee/flows/accept-new-key-and-verify.yaml
+++ b/.maestro/tests/e2ee/flows/accept-new-key-and-verify.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Accept New Key and Verify Messages
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/check-encrypted-room-without-key.yaml b/.maestro/tests/e2ee/flows/check-encrypted-room-without-key.yaml
index b84d816072b..99477fe2c96 100644
--- a/.maestro/tests/e2ee/flows/check-encrypted-room-without-key.yaml
+++ b/.maestro/tests/e2ee/flows/check-encrypted-room-without-key.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Check Encrypted Room Without Key
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/create-e2ee-room.yaml b/.maestro/tests/e2ee/flows/create-e2ee-room.yaml
index 551a94362c6..02219c31d1d 100644
--- a/.maestro/tests/e2ee/flows/create-e2ee-room.yaml
+++ b/.maestro/tests/e2ee/flows/create-e2ee-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Create E2EE Room
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/edit-message-and-verify.yaml b/.maestro/tests/e2ee/flows/edit-message-and-verify.yaml
index 158da7a36e4..be4c8776db0 100644
--- a/.maestro/tests/e2ee/flows/edit-message-and-verify.yaml
+++ b/.maestro/tests/e2ee/flows/edit-message-and-verify.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Edit Message and Verify
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/enter-key-read-and-send.yaml b/.maestro/tests/e2ee/flows/enter-key-read-and-send.yaml
index fc964dee4ba..30fe8e92199 100644
--- a/.maestro/tests/e2ee/flows/enter-key-read-and-send.yaml
+++ b/.maestro/tests/e2ee/flows/enter-key-read-and-send.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Enter Key, Read Messages and Send
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/quote-message.yaml b/.maestro/tests/e2ee/flows/quote-message.yaml
index a5529bef310..8de62565e22 100644
--- a/.maestro/tests/e2ee/flows/quote-message.yaml
+++ b/.maestro/tests/e2ee/flows/quote-message.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Quote Message
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/reset-keys-and-send.yaml b/.maestro/tests/e2ee/flows/reset-keys-and-send.yaml
index 177fd27a304..f607b8d3957 100644
--- a/.maestro/tests/e2ee/flows/reset-keys-and-send.yaml
+++ b/.maestro/tests/e2ee/flows/reset-keys-and-send.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Reset Keys and Send Message
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/send-and-verify-message.yaml b/.maestro/tests/e2ee/flows/send-and-verify-message.yaml
index 4abba6a4124..e6bac2b319b 100644
--- a/.maestro/tests/e2ee/flows/send-and-verify-message.yaml
+++ b/.maestro/tests/e2ee/flows/send-and-verify-message.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Send and Verify Message
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/setup-user.yaml b/.maestro/tests/e2ee/flows/setup-user.yaml
index c69d9630a87..d08592d1832 100644
--- a/.maestro/tests/e2ee/flows/setup-user.yaml
+++ b/.maestro/tests/e2ee/flows/setup-user.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Setup User
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/verify-message-unread.yaml b/.maestro/tests/e2ee/flows/verify-message-unread.yaml
index 67cd44695fd..562c458cba0 100644
--- a/.maestro/tests/e2ee/flows/verify-message-unread.yaml
+++ b/.maestro/tests/e2ee/flows/verify-message-unread.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Verify Message Unread
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/flows/verify-messages-read.yaml b/.maestro/tests/e2ee/flows/verify-messages-read.yaml
index 36704d60962..9aa78aa18da 100644
--- a/.maestro/tests/e2ee/flows/verify-messages-read.yaml
+++ b/.maestro/tests/e2ee/flows/verify-messages-read.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Verify Messages Read
tags:
- 'flow'
diff --git a/.maestro/tests/e2ee/utils/change-e2ee-key.yaml b/.maestro/tests/e2ee/utils/change-e2ee-key.yaml
index de401fc5c96..c032e330666 100644
--- a/.maestro/tests/e2ee/utils/change-e2ee-key.yaml
+++ b/.maestro/tests/e2ee/utils/change-e2ee-key.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Change E2EE Key
tags:
- 'util'
diff --git a/.maestro/tests/e2ee/utils/enter-e2e-key.yaml b/.maestro/tests/e2ee/utils/enter-e2e-key.yaml
index 33d9c0c6ca2..806a6fd5687 100644
--- a/.maestro/tests/e2ee/utils/enter-e2e-key.yaml
+++ b/.maestro/tests/e2ee/utils/enter-e2e-key.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Enter E2EE Key
tags:
- 'util'
diff --git a/.maestro/tests/e2ee/utils/navigate-to-e2ee-security.yaml b/.maestro/tests/e2ee/utils/navigate-to-e2ee-security.yaml
index 33a13e9b05a..00c21e89233 100644
--- a/.maestro/tests/e2ee/utils/navigate-to-e2ee-security.yaml
+++ b/.maestro/tests/e2ee/utils/navigate-to-e2ee-security.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigate to E2EE Security
tags:
- 'util'
diff --git a/.maestro/tests/e2ee/utils/reset-e2ee-key.yaml b/.maestro/tests/e2ee/utils/reset-e2ee-key.yaml
index 8c9cd91df71..5bba55cde2b 100644
--- a/.maestro/tests/e2ee/utils/reset-e2ee-key.yaml
+++ b/.maestro/tests/e2ee/utils/reset-e2ee-key.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Reset E2EE Key
tags:
- 'util'
diff --git a/.maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml b/.maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml
index ef5ee2fc5d8..da7b8376cad 100644
--- a/.maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml
+++ b/.maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Keyboard Navigation Components
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml b/.maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml
index 1571c6c9be9..8d48340f4ef 100644
--- a/.maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml
+++ b/.maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Keyboard Navigation Onboarding
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml b/.maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml
index ddc5cc993e6..a27fe8ec2c5 100644
--- a/.maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml
+++ b/.maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Keyboard Navigation Room
jsEngine: graaljs
onFlowStart:
diff --git a/.maestro/tests/onboarding/change-password.yaml b/.maestro/tests/onboarding/change-password.yaml
index 5c5276aa5e5..fda830d31e7 100644
--- a/.maestro/tests/onboarding/change-password.yaml
+++ b/.maestro/tests/onboarding/change-password.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Required Password Change
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/forgot-password.yaml b/.maestro/tests/onboarding/forgot-password.yaml
index 2148d9accce..190913872b2 100644
--- a/.maestro/tests/onboarding/forgot-password.yaml
+++ b/.maestro/tests/onboarding/forgot-password.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Forgot Password
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/legal.yaml b/.maestro/tests/onboarding/legal.yaml
index 9a059e8759e..f390ae68d76 100644
--- a/.maestro/tests/onboarding/legal.yaml
+++ b/.maestro/tests/onboarding/legal.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Legal
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/login/invalid-credentials.yaml b/.maestro/tests/onboarding/login/invalid-credentials.yaml
index 6068f2761b1..cac52333e3e 100644
--- a/.maestro/tests/onboarding/login/invalid-credentials.yaml
+++ b/.maestro/tests/onboarding/login/invalid-credentials.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Login (Invalid Credentials)
onFlowStart:
- runFlow: '../../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/login/login.yaml b/.maestro/tests/onboarding/login/login.yaml
index 133daf00888..474046928d8 100644
--- a/.maestro/tests/onboarding/login/login.yaml
+++ b/.maestro/tests/onboarding/login/login.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Login
onFlowStart:
- runFlow: ../../../helpers/setup.yaml
diff --git a/.maestro/tests/onboarding/register/create-account.yaml b/.maestro/tests/onboarding/register/create-account.yaml
index 79364d8e509..06c7c234188 100644
--- a/.maestro/tests/onboarding/register/create-account.yaml
+++ b/.maestro/tests/onboarding/register/create-account.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Create Account
onFlowStart:
- runFlow: '../../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/register/email-used.yaml b/.maestro/tests/onboarding/register/email-used.yaml
index 307a0e70e46..0b4c2c485cd 100644
--- a/.maestro/tests/onboarding/register/email-used.yaml
+++ b/.maestro/tests/onboarding/register/email-used.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Create Account (Email Already Used)
onFlowStart:
- runFlow: '../../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/register/username-used.yaml b/.maestro/tests/onboarding/register/username-used.yaml
index 20129e6f451..124cb63c472 100644
--- a/.maestro/tests/onboarding/register/username-used.yaml
+++ b/.maestro/tests/onboarding/register/username-used.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Create Account (Username Already Used)
onFlowStart:
- runFlow: '../../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/roomslist.yaml b/.maestro/tests/onboarding/roomslist.yaml
index 22087b72608..10086955d33 100644
--- a/.maestro/tests/onboarding/roomslist.yaml
+++ b/.maestro/tests/onboarding/roomslist.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Rooms List
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/server-history.yaml b/.maestro/tests/onboarding/server-history.yaml
index 28dc94b701b..174708ee248 100644
--- a/.maestro/tests/onboarding/server-history.yaml
+++ b/.maestro/tests/onboarding/server-history.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Server History
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/onboarding/workspace/invalid-workspace.yaml b/.maestro/tests/onboarding/workspace/invalid-workspace.yaml
index 1033a7918a4..ad0f14623cf 100644
--- a/.maestro/tests/onboarding/workspace/invalid-workspace.yaml
+++ b/.maestro/tests/onboarding/workspace/invalid-workspace.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Invalid Workspace
tags:
- test-3
diff --git a/.maestro/tests/onboarding/workspace/valid-workspace.yaml b/.maestro/tests/onboarding/workspace/valid-workspace.yaml
index 17c6027ef29..e082dcceecd 100644
--- a/.maestro/tests/onboarding/workspace/valid-workspace.yaml
+++ b/.maestro/tests/onboarding/workspace/valid-workspace.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Valid Workspace
onFlowStart:
- runFlow: '../../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/create-dm-group.yaml b/.maestro/tests/room/create-dm-group.yaml
index e24fda7f561..12750ea7d0d 100644
--- a/.maestro/tests/room/create-dm-group.yaml
+++ b/.maestro/tests/room/create-dm-group.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Create DM Group
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/create-room.yaml b/.maestro/tests/room/create-room.yaml
index 5cbdf51a5b9..d7dc2f2df39 100644
--- a/.maestro/tests/room/create-room.yaml
+++ b/.maestro/tests/room/create-room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Create Room
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/discussion.yaml b/.maestro/tests/room/discussion.yaml
index 3221343b4bb..ead9e56417c 100644
--- a/.maestro/tests/room/discussion.yaml
+++ b/.maestro/tests/room/discussion.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Discussion
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/ignoreuser.yaml b/.maestro/tests/room/ignoreuser.yaml
index 93b4df7c309..5a132da9c48 100644
--- a/.maestro/tests/room/ignoreuser.yaml
+++ b/.maestro/tests/room/ignoreuser.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Ignore User
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/jump-to-message.yaml b/.maestro/tests/room/jump-to-message.yaml
index 2f8c7f69d46..b6450b62dc3 100644
--- a/.maestro/tests/room/jump-to-message.yaml
+++ b/.maestro/tests/room/jump-to-message.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Jump to message
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/mark-as-unread.yaml b/.maestro/tests/room/mark-as-unread.yaml
index dbceb3d4c66..ec0718bbcf1 100644
--- a/.maestro/tests/room/mark-as-unread.yaml
+++ b/.maestro/tests/room/mark-as-unread.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Mark as unread
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/message-markdown-click.yaml b/.maestro/tests/room/message-markdown-click.yaml
index 3b6bab80b63..9f7db5977ad 100644
--- a/.maestro/tests/room/message-markdown-click.yaml
+++ b/.maestro/tests/room/message-markdown-click.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Message Markdown
jsEngine: graaljs
onFlowStart:
diff --git a/.maestro/tests/room/room-actions.yaml b/.maestro/tests/room/room-actions.yaml
index df2b95a9a76..f4e26cb28d6 100644
--- a/.maestro/tests/room/room-actions.yaml
+++ b/.maestro/tests/room/room-actions.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Room Actions
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/room-info.yaml b/.maestro/tests/room/room-info.yaml
index 7360de99c59..07a3f6ecebf 100644
--- a/.maestro/tests/room/room-info.yaml
+++ b/.maestro/tests/room/room-info.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Room Info
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/room-last-message-thread-50-plus.yaml b/.maestro/tests/room/room-last-message-thread-50-plus.yaml
index f49bb0a35d0..4a212d38fb2 100644
--- a/.maestro/tests/room/room-last-message-thread-50-plus.yaml
+++ b/.maestro/tests/room/room-last-message-thread-50-plus.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Open room with last message as thread with more than 50 messages
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/room.yaml b/.maestro/tests/room/room.yaml
index b29ad58be49..40732df488b 100644
--- a/.maestro/tests/room/room.yaml
+++ b/.maestro/tests/room/room.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Room
jsEngine: graaljs
onFlowStart:
diff --git a/.maestro/tests/room/search-member.yaml b/.maestro/tests/room/search-member.yaml
index 6d6bf982b37..50d4a41a647 100644
--- a/.maestro/tests/room/search-member.yaml
+++ b/.maestro/tests/room/search-member.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Search Member
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/search.yaml b/.maestro/tests/room/search.yaml
index 07b94cc03d3..b20d35c6195 100644
--- a/.maestro/tests/room/search.yaml
+++ b/.maestro/tests/room/search.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Search
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/share-message.yaml b/.maestro/tests/room/share-message.yaml
index d7a339a9030..6864b3df583 100644
--- a/.maestro/tests/room/share-message.yaml
+++ b/.maestro/tests/room/share-message.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Share Message
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/threads.yaml b/.maestro/tests/room/threads.yaml
index c67374ca194..43d3ede6ea5 100644
--- a/.maestro/tests/room/threads.yaml
+++ b/.maestro/tests/room/threads.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Threads
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/unread-badge.yaml b/.maestro/tests/room/unread-badge.yaml
index e60fcfc3fda..939de021616 100644
--- a/.maestro/tests/room/unread-badge.yaml
+++ b/.maestro/tests/room/unread-badge.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Unread badge
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/room/utils/clear-cache.yaml b/.maestro/tests/room/utils/clear-cache.yaml
index 313ac3f1e1c..bf087ac3e01 100644
--- a/.maestro/tests/room/utils/clear-cache.yaml
+++ b/.maestro/tests/room/utils/clear-cache.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Clear Cache
tags:
- 'util'
diff --git a/.maestro/tests/room/utils/expect-thread-messages.yaml b/.maestro/tests/room/utils/expect-thread-messages.yaml
index 0a703206105..5f3fbc3ae44 100644
--- a/.maestro/tests/room/utils/expect-thread-messages.yaml
+++ b/.maestro/tests/room/utils/expect-thread-messages.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Expect Thread Messages
tags:
- 'util'
diff --git a/.maestro/tests/room/utils/navigate-to-info-view.yaml b/.maestro/tests/room/utils/navigate-to-info-view.yaml
index a12fa716528..c2b33f0a718 100644
--- a/.maestro/tests/room/utils/navigate-to-info-view.yaml
+++ b/.maestro/tests/room/utils/navigate-to-info-view.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Navigate to info view
tags:
- 'util'
diff --git a/.maestro/tests/room/utils/navigate-to-room-info.yaml b/.maestro/tests/room/utils/navigate-to-room-info.yaml
index 5725232cea3..b440852dcbe 100644
--- a/.maestro/tests/room/utils/navigate-to-room-info.yaml
+++ b/.maestro/tests/room/utils/navigate-to-room-info.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Check Server
tags:
- 'util'
diff --git a/.maestro/tests/teams/convert-team.yaml b/.maestro/tests/teams/convert-team.yaml
index 6abc340eac9..09a2e49ab0b 100644
--- a/.maestro/tests/teams/convert-team.yaml
+++ b/.maestro/tests/teams/convert-team.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Convert Team
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/teams/create-team.yaml b/.maestro/tests/teams/create-team.yaml
index d6dc9703777..0c14d9ba0b2 100644
--- a/.maestro/tests/teams/create-team.yaml
+++ b/.maestro/tests/teams/create-team.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Create Team and Delete
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/teams/team.yaml b/.maestro/tests/teams/team.yaml
index 4207534d68c..8baa31991b8 100644
--- a/.maestro/tests/teams/team.yaml
+++ b/.maestro/tests/teams/team.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
name: Team
onFlowStart:
- runFlow: '../../helpers/setup.yaml'
diff --git a/.maestro/tests/teams/utils/close-action-sheet.yaml b/.maestro/tests/teams/utils/close-action-sheet.yaml
index 8a19f95eebc..f28deb1e7bf 100644
--- a/.maestro/tests/teams/utils/close-action-sheet.yaml
+++ b/.maestro/tests/teams/utils/close-action-sheet.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
tags:
- 'util'
diff --git a/.maestro/tests/teams/utils/create-channel.yaml b/.maestro/tests/teams/utils/create-channel.yaml
index e8f9d91fcb2..b84015412ad 100644
--- a/.maestro/tests/teams/utils/create-channel.yaml
+++ b/.maestro/tests/teams/utils/create-channel.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
tags:
- 'util'
diff --git a/.maestro/tests/teams/utils/open-action-sheet.yaml b/.maestro/tests/teams/utils/open-action-sheet.yaml
index b3bbd9808aa..fd2e4d0a692 100644
--- a/.maestro/tests/teams/utils/open-action-sheet.yaml
+++ b/.maestro/tests/teams/utils/open-action-sheet.yaml
@@ -1,4 +1,4 @@
-appId: chat.rocket.reactnative
+appId: ${APP_ID}
tags:
- 'util'
diff --git a/app/containers/DeprecationModal/index.tsx b/app/containers/DeprecationModal/index.tsx
new file mode 100644
index 00000000000..724c4b23ef1
--- /dev/null
+++ b/app/containers/DeprecationModal/index.tsx
@@ -0,0 +1,89 @@
+import React, { useState } from 'react';
+import { Linking, Text, View } from 'react-native';
+import Modal from 'react-native-modal';
+import { GestureHandlerRootView } from 'react-native-gesture-handler';
+
+import Button from '../Button';
+import sharedStyles from '../../views/Styles';
+import { useTheme } from '../../theme';
+import { useAppSelector } from '../../lib/hooks/useAppSelector';
+import { isIOS } from '../../lib/methods/helpers/deviceInfo';
+import { isOfficial } from '../../lib/constants/environment';
+import log from '../../lib/methods/helpers/log';
+import i18n from '../../i18n';
+import styles from './styles';
+
+const OFFICIAL_APP_STORE_URL = 'https://apps.apple.com/us/app/rocket-chat/id1148741252';
+const OFFICIAL_PLAY_STORE_URL = 'https://play.google.com/store/apps/details?id=chat.rocket.android';
+
+const DeprecationModal = React.memo(() => {
+ const { colors } = useTheme();
+ const isMasterDetail = useAppSelector(state => state.app.isMasterDetail as boolean);
+ const [visible, setVisible] = useState(!isOfficial);
+
+ if (isOfficial) {
+ return null;
+ }
+
+ const storeUrl = isIOS ? OFFICIAL_APP_STORE_URL : OFFICIAL_PLAY_STORE_URL;
+ const storeButtonLabel = isIOS
+ ? i18n.t('Experimental_retirement_open_app_store')
+ : i18n.t('Experimental_retirement_open_play_store');
+
+ const onOpenStore = async () => {
+ try {
+ await Linking.openURL(storeUrl);
+ } catch (e) {
+ log(e);
+ }
+ };
+
+ const onDismiss = () => {
+ setVisible(false);
+ };
+
+ const color = colors.fontTitlesLabels;
+
+ return (
+ }
+ avoidKeyboard
+ useNativeDriver
+ isVisible={visible}
+ hideModalContentWhileAnimating>
+
+
+ {i18n.t('Experimental_retirement_title')}
+ {i18n.t('Experimental_retirement_description')}
+ {i18n.t('Experimental_retirement_or_open_manually')}
+
+ {storeUrl}
+
+
+
+
+
+
+
+
+ );
+});
+
+export default DeprecationModal;
diff --git a/app/containers/DeprecationModal/styles.ts b/app/containers/DeprecationModal/styles.ts
new file mode 100644
index 00000000000..dd083a05630
--- /dev/null
+++ b/app/containers/DeprecationModal/styles.ts
@@ -0,0 +1,59 @@
+import { StyleSheet } from 'react-native';
+
+import sharedStyles from '../../views/Styles';
+
+export default StyleSheet.create({
+ overlay: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ padding: 16
+ },
+ content: {
+ padding: 24,
+ width: '100%',
+ borderRadius: 8
+ },
+ tablet: {
+ height: undefined
+ },
+ title: {
+ fontSize: 18,
+ lineHeight: 26,
+ marginBottom: 12,
+ ...sharedStyles.textBold,
+ ...sharedStyles.textAlignCenter
+ },
+ body: {
+ fontSize: 14,
+ lineHeight: 20,
+ marginBottom: 16,
+ ...sharedStyles.textRegular,
+ ...sharedStyles.textAlignCenter
+ },
+ urlLabel: {
+ fontSize: 12,
+ lineHeight: 18,
+ marginBottom: 4,
+ ...sharedStyles.textRegular,
+ ...sharedStyles.textAlignCenter
+ },
+ url: {
+ fontSize: 13,
+ lineHeight: 20,
+ marginBottom: 16,
+ ...sharedStyles.textMedium,
+ ...sharedStyles.textAlignCenter
+ },
+ buttonContainer: {
+ marginTop: 12
+ },
+ button: {
+ marginBottom: 8
+ }
+});
diff --git a/app/i18n/locales/ar.json b/app/i18n/locales/ar.json
index b3c740c53c8..970ac80a201 100644
--- a/app/i18n/locales/ar.json
+++ b/app/i18n/locales/ar.json
@@ -217,6 +217,12 @@
"error-you-are-last-owner": "أنت المالك الأخير. يرجى تعيين مالك جديد قبل مغادرة الغرفة",
"Everyone_can_access_this_channel": "يمكن للجميع الوصول إلى هذه القناة",
"Everyone_can_access_this_team": "يمكن للجميع الوصول إلى هذا الفريق",
+ "Experimental_retirement_continue": "المتابعة إلى التطبيق",
+ "Experimental_retirement_description": "يرجى تثبيت تطبيق Rocket.Chat الرسمي وتسجيل الدخول مرة أخرى إلى مساحة العمل الخاصة بك. لن يتلقى هذا الإصدار التجريبي تحديثات بعد الآن.",
+ "Experimental_retirement_open_app_store": "فتح App Store",
+ "Experimental_retirement_open_play_store": "فتح Play Store",
+ "Experimental_retirement_or_open_manually": "أو افتح هذا الرابط يدويًا:",
+ "Experimental_retirement_title": "تطبيق Rocket.Chat التجريبي قيد الإيقاف",
"Expiration_Days": "انتهاء (أيام)",
"Favorite": "مفضل",
"Favorites": "مفضلات",
diff --git a/app/i18n/locales/bn-IN.json b/app/i18n/locales/bn-IN.json
index 1c96b538fdf..1f0eb798a87 100644
--- a/app/i18n/locales/bn-IN.json
+++ b/app/i18n/locales/bn-IN.json
@@ -323,6 +323,12 @@
"Everyone_can_access_this_channel": "সবাই এই চ্যানেলে অ্যাক্সেস করতে পারে",
"Everyone_can_access_this_team": "সবাই এই দলে অ্যাক্সেস করতে পারে",
"Expanded": "বিস্তৃত",
+ "Experimental_retirement_continue": "অ্যাপে চালিয়ে যান",
+ "Experimental_retirement_description": "অনুগ্রহ করে অফিসিয়াল Rocket.Chat অ্যাপটি ইনস্টল করুন এবং আপনার কর্মক্ষেত্রে আবার সাইন ইন করুন। এই এক্সপেরিমেন্টাল বিল্ড আর আপডেট পাবে না।",
+ "Experimental_retirement_open_app_store": "App Store খুলুন",
+ "Experimental_retirement_open_play_store": "Play Store খুলুন",
+ "Experimental_retirement_or_open_manually": "অথবা এই লিঙ্কটি ম্যানুয়ালি খুলুন:",
+ "Experimental_retirement_title": "Rocket.Chat এক্সপেরিমেন্টাল বন্ধ করা হচ্ছে",
"Expiration_Days": "মেয়াদ শেষ (দিন)",
"Favorite": "প্রিয়",
"Favorites": "প্রিয়সমূহ",
diff --git a/app/i18n/locales/cs.json b/app/i18n/locales/cs.json
index 596753c40ba..3b5ffb2dc7c 100644
--- a/app/i18n/locales/cs.json
+++ b/app/i18n/locales/cs.json
@@ -343,6 +343,12 @@
"Everyone_can_access_this_channel": "K tomuto kanálu má přístup každý",
"Everyone_can_access_this_team": "Každý má přístup k tomuto týmu",
"Expanded": "Rozšířený",
+ "Experimental_retirement_continue": "Pokračovat do aplikace",
+ "Experimental_retirement_description": "Nainstalujte oficiální aplikaci Rocket.Chat a znovu se přihlaste do svého pracovního prostoru. Tato experimentální verze již nebude přijímat aktualizace.",
+ "Experimental_retirement_open_app_store": "Otevřít App Store",
+ "Experimental_retirement_open_play_store": "Otevřít Obchod Play",
+ "Experimental_retirement_or_open_manually": "Nebo otevřete tento odkaz ručně:",
+ "Experimental_retirement_title": "Aplikace Rocket.Chat Experimental se ukončuje",
"Expiration_Days": "Vypršení platnosti (dny)",
"Favorite": "Oblíbený",
"Favorites": "Oblíbené",
diff --git a/app/i18n/locales/de.json b/app/i18n/locales/de.json
index 9af9047e9b8..54394413f95 100644
--- a/app/i18n/locales/de.json
+++ b/app/i18n/locales/de.json
@@ -317,6 +317,12 @@
"Everyone_can_access_this_channel": "Jeder kann auf diesen Channel zugreifen",
"Everyone_can_access_this_team": "Jeder kann auf dieses Team zugreifen",
"Expanded": "Erweitert",
+ "Experimental_retirement_continue": "Weiter zur App",
+ "Experimental_retirement_description": "Bitte installieren Sie die offizielle Rocket.Chat-App und melden Sie sich wieder in Ihrem Workspace an. Dieser experimentelle Build erhält keine Updates mehr.",
+ "Experimental_retirement_open_app_store": "App Store öffnen",
+ "Experimental_retirement_open_play_store": "Play Store öffnen",
+ "Experimental_retirement_or_open_manually": "Oder öffnen Sie diesen Link manuell:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental wird eingestellt",
"Expiration_Days": "läuft ab (Tage)",
"Favorite": "Lieblings-",
"Favorites": "Favoriten",
diff --git a/app/i18n/locales/en.json b/app/i18n/locales/en.json
index 8d761a72edf..d340f0b2c3f 100644
--- a/app/i18n/locales/en.json
+++ b/app/i18n/locales/en.json
@@ -364,6 +364,12 @@
"Everyone_can_access_this_channel": "Everyone can access this channel",
"Everyone_can_access_this_team": "Everyone can access this team",
"Expanded": "Expanded",
+ "Experimental_retirement_continue": "Continue to app",
+ "Experimental_retirement_description": "Please install the official Rocket.Chat app and sign back in to your workspace. This Experimental build will stop receiving updates.",
+ "Experimental_retirement_open_app_store": "Open App Store",
+ "Experimental_retirement_open_play_store": "Open Play Store",
+ "Experimental_retirement_or_open_manually": "Or open this link manually:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental is being retired",
"Expiration_Days": "Expiration (days)",
"Favorite": "Favorite",
"Favorites": "Favorites",
diff --git a/app/i18n/locales/es.json b/app/i18n/locales/es.json
index ac95de1fbc6..553b617f088 100644
--- a/app/i18n/locales/es.json
+++ b/app/i18n/locales/es.json
@@ -179,6 +179,12 @@
"error-too-many-requests": "Error, demasiadas peticiones. Debes esperar {{seconds}} segundos antes de continuar. Por favor, sé paciente.",
"error-you-are-last-owner": "Eres el único propietario existente. Debes establecer un nuevo propietario antes de abandonar la sala.",
"Everyone_can_access_this_channel": "Todos los usuarios pueden acceder a este canal",
+ "Experimental_retirement_continue": "Continuar a la app",
+ "Experimental_retirement_description": "Por favor, instala la aplicación oficial de Rocket.Chat e inicia sesión nuevamente en tu espacio de trabajo. Esta versión experimental dejará de recibir actualizaciones.",
+ "Experimental_retirement_open_app_store": "Abrir App Store",
+ "Experimental_retirement_open_play_store": "Abrir Play Store",
+ "Experimental_retirement_or_open_manually": "O abre este enlace manualmente:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental está siendo retirado",
"Favorite": "Favorito",
"Favorites": "Favoritos",
"Federation_Matrix_room_description_disabled": "La federación está actualmente deshabilitada en este espacio de trabajo",
diff --git a/app/i18n/locales/fi.json b/app/i18n/locales/fi.json
index 4b207da22b8..5c5059b2638 100644
--- a/app/i18n/locales/fi.json
+++ b/app/i18n/locales/fi.json
@@ -302,6 +302,12 @@
"Everyone_can_access_this_channel": "Kaikilla on pääsy tälle kanavalle",
"Everyone_can_access_this_team": "Kaikilla on pääsy tähän tiimiin",
"Expanded": "Laajennettu",
+ "Experimental_retirement_continue": "Jatka sovellukseen",
+ "Experimental_retirement_description": "Asenna virallinen Rocket.Chat-sovellus ja kirjaudu uudelleen työtilaasi. Tämä kokeellinen versio ei enää saa päivityksiä.",
+ "Experimental_retirement_open_app_store": "Avaa App Store",
+ "Experimental_retirement_open_play_store": "Avaa Play Store",
+ "Experimental_retirement_or_open_manually": "Tai avaa tämä linkki manuaalisesti:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental poistetaan käytöstä",
"Expiration_Days": "Vanheneminen (päivää)",
"Favorite": "Suosikki",
"Favorites": "Suosikit",
diff --git a/app/i18n/locales/fr.json b/app/i18n/locales/fr.json
index 49195ac471b..0c4f1fd6def 100644
--- a/app/i18n/locales/fr.json
+++ b/app/i18n/locales/fr.json
@@ -269,6 +269,12 @@
"Everyone_can_access_this_channel": "Tout le monde peut accéder à ce canal",
"Everyone_can_access_this_team": "Tout le monde peut accéder à cette équipe",
"Expanded": "Etendu",
+ "Experimental_retirement_continue": "Continuer vers l'application",
+ "Experimental_retirement_description": "Veuillez installer l'application officielle Rocket.Chat et vous reconnecter à votre espace de travail. Cette version expérimentale ne recevra plus de mises à jour.",
+ "Experimental_retirement_open_app_store": "Ouvrir l'App Store",
+ "Experimental_retirement_open_play_store": "Ouvrir le Play Store",
+ "Experimental_retirement_or_open_manually": "Ou ouvrez ce lien manuellement :",
+ "Experimental_retirement_title": "Rocket.Chat Experimental est en cours de retrait",
"Expiration_Days": "Expiration (Jours)",
"Favorite": "Favori",
"Favorites": "Favoris",
diff --git a/app/i18n/locales/hi-IN.json b/app/i18n/locales/hi-IN.json
index ae081378c03..35b54076538 100644
--- a/app/i18n/locales/hi-IN.json
+++ b/app/i18n/locales/hi-IN.json
@@ -323,6 +323,12 @@
"Everyone_can_access_this_channel": "सभी इस चैनल तक पहुंच सकते हैं",
"Everyone_can_access_this_team": "सभी इस टीम तक पहुंच सकते हैं",
"Expanded": "विस्तारित",
+ "Experimental_retirement_continue": "ऐप पर जारी रखें",
+ "Experimental_retirement_description": "कृपया आधिकारिक Rocket.Chat ऐप इंस्टॉल करें और अपने वर्कस्पेस में फिर से साइन इन करें। इस एक्सपेरिमेंटल बिल्ड को अब अपडेट नहीं मिलेंगे।",
+ "Experimental_retirement_open_app_store": "App Store खोलें",
+ "Experimental_retirement_open_play_store": "Play Store खोलें",
+ "Experimental_retirement_or_open_manually": "या इस लिंक को मैन्युअली खोलें:",
+ "Experimental_retirement_title": "Rocket.Chat एक्सपेरिमेंटल को बंद किया जा रहा है",
"Expiration_Days": "समाप्ति (दिन)",
"Favorite": "पसंदीदा",
"Favorites": "पसंदीदा",
diff --git a/app/i18n/locales/hu.json b/app/i18n/locales/hu.json
index ad73b0e409f..4b8f91c7fdd 100644
--- a/app/i18n/locales/hu.json
+++ b/app/i18n/locales/hu.json
@@ -323,6 +323,12 @@
"Everyone_can_access_this_channel": "Mindenki hozzáférhet ehhez a csatornához",
"Everyone_can_access_this_team": "Mindenki hozzáférhet ehhez a csapathoz",
"Expanded": "Kibővített",
+ "Experimental_retirement_continue": "Tovább az alkalmazáshoz",
+ "Experimental_retirement_description": "Kérjük, telepítse a hivatalos Rocket.Chat alkalmazást, és jelentkezzen be újra a munkaterületére. Ez a kísérleti build már nem kap frissítéseket.",
+ "Experimental_retirement_open_app_store": "App Store megnyitása",
+ "Experimental_retirement_open_play_store": "Play Áruház megnyitása",
+ "Experimental_retirement_or_open_manually": "Vagy nyissa meg ezt a linket kézzel:",
+ "Experimental_retirement_title": "A Rocket.Chat Experimental megszűnik",
"Expiration_Days": "Lejárat (napokban)",
"Favorite": "Kedvenc",
"Favorites": "Kedvencek",
diff --git a/app/i18n/locales/it.json b/app/i18n/locales/it.json
index b357c16a135..f0a5ae99f22 100644
--- a/app/i18n/locales/it.json
+++ b/app/i18n/locales/it.json
@@ -242,6 +242,12 @@
"error-you-are-last-owner": "Sei l'ultimo proprietario rimasto. Imposta un nuovo proprietario prima di lasciare la stanza.",
"Everyone_can_access_this_channel": "Tutti hanno accesso a questo canale",
"Everyone_can_access_this_team": "Tutti hanno accesso a questo team",
+ "Experimental_retirement_continue": "Continua sull'app",
+ "Experimental_retirement_description": "Si prega di installare l'app ufficiale Rocket.Chat e di accedere nuovamente al proprio workspace. Questa versione sperimentale non riceverà più aggiornamenti.",
+ "Experimental_retirement_open_app_store": "Apri App Store",
+ "Experimental_retirement_open_play_store": "Apri Play Store",
+ "Experimental_retirement_or_open_manually": "Oppure apri questo link manualmente:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental sta per essere ritirato",
"Expiration_Days": "Scadenza (giorni)",
"Favorite": "Preferito",
"Favorites": "Preferiti",
diff --git a/app/i18n/locales/ja.json b/app/i18n/locales/ja.json
index 2b92dadf355..1bddf378958 100644
--- a/app/i18n/locales/ja.json
+++ b/app/i18n/locales/ja.json
@@ -217,6 +217,12 @@
"error-you-are-last-owner": "あなたは最後のオーナーです。ルームを退出する前に別のオーナーを設定してください。",
"Everyone_can_access_this_channel": "全員このチャンネルにアクセスできます",
"Everyone_can_access_this_team": "全員このチームにアクセスできます",
+ "Experimental_retirement_continue": "アプリに進む",
+ "Experimental_retirement_description": "公式の Rocket.Chat アプリをインストールし、ワークスペースに再度サインインしてください。この実験版はアップデートを受け取らなくなります。",
+ "Experimental_retirement_open_app_store": "App Store を開く",
+ "Experimental_retirement_open_play_store": "Play Store を開く",
+ "Experimental_retirement_or_open_manually": "または、このリンクを手動で開いてください:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental は提供を終了します",
"Expiration_Days": "期限切れ (日)",
"Favorite": "お気に入り",
"Favorites": "お気に入り",
diff --git a/app/i18n/locales/nl.json b/app/i18n/locales/nl.json
index cce3ac4e2ab..26383c8f852 100644
--- a/app/i18n/locales/nl.json
+++ b/app/i18n/locales/nl.json
@@ -269,6 +269,12 @@
"Everyone_can_access_this_channel": "Iedereen heeft toegang tot dit kanaal",
"Everyone_can_access_this_team": "Iedereen heeft toegang tot dit team",
"Expanded": "Uitgebreid",
+ "Experimental_retirement_continue": "Doorgaan naar app",
+ "Experimental_retirement_description": "Installeer de officiële Rocket.Chat-app en log opnieuw in op je workspace. Deze experimentele build ontvangt geen updates meer.",
+ "Experimental_retirement_open_app_store": "App Store openen",
+ "Experimental_retirement_open_play_store": "Play Store openen",
+ "Experimental_retirement_or_open_manually": "Of open deze link handmatig:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental wordt uitgefaseerd",
"Expiration_Days": "Vervaldatum (Dagen)",
"Favorite": "Favoriet",
"Favorites": "Favorieten",
diff --git a/app/i18n/locales/nn.json b/app/i18n/locales/nn.json
index e91acf6a097..a0c1394bfe1 100644
--- a/app/i18n/locales/nn.json
+++ b/app/i18n/locales/nn.json
@@ -176,6 +176,12 @@
"error-too-many-requests": "Feil, for mange forespørsler. Vennligst senke farten. Du må vente {{seconds}} sekunder før du prøver igjen.",
"error-you-are-last-owner": "Du er den siste eieren. Vennligst sett inn ny eier før du forlater rommet.",
"Everyone_can_access_this_channel": "Alle kan få tilgang til denne kanalen",
+ "Experimental_retirement_continue": "Hald fram til appen",
+ "Experimental_retirement_description": "Installer den offisielle Rocket.Chat-appen og logg inn på arbeidsområdet ditt på nytt. Denne eksperimentelle versjonen vil ikkje lenger få oppdateringar.",
+ "Experimental_retirement_open_app_store": "Opna App Store",
+ "Experimental_retirement_open_play_store": "Opna Play Store",
+ "Experimental_retirement_or_open_manually": "Eller opna denne lenkja manuelt:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental vert utfasa",
"Favorite": "Favoritt",
"Favorites": "Favoritter",
"Federation_Matrix_room_description_disabled": "Federasjon er for tida deaktivert på dette arbeidsområdet",
diff --git a/app/i18n/locales/no.json b/app/i18n/locales/no.json
index eda676d7dae..d9b2fbef9d6 100644
--- a/app/i18n/locales/no.json
+++ b/app/i18n/locales/no.json
@@ -348,6 +348,12 @@
"Everyone_can_access_this_channel": "Alle kan få tilgang til denne kanalen",
"Everyone_can_access_this_team": "Alle kan få tilgang til dette teamet",
"Expanded": "Utvidet",
+ "Experimental_retirement_continue": "Fortsett til appen",
+ "Experimental_retirement_description": "Installer den offisielle Rocket.Chat-appen og logg inn på arbeidsområdet ditt på nytt. Denne eksperimentelle bygget vil ikke lenger motta oppdateringer.",
+ "Experimental_retirement_open_app_store": "Åpne App Store",
+ "Experimental_retirement_open_play_store": "Åpne Play Store",
+ "Experimental_retirement_or_open_manually": "Eller åpne denne lenken manuelt:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental fases ut",
"Expiration_Days": "Utløp (dager)",
"Favorites": "Favoritter",
"Federation_Matrix_room_description_disabled": "Federasjon er for øyeblikket deaktivert på denne arbeidsområdet",
diff --git a/app/i18n/locales/pt-BR.json b/app/i18n/locales/pt-BR.json
index c155e9f7003..378c5cd6a9a 100644
--- a/app/i18n/locales/pt-BR.json
+++ b/app/i18n/locales/pt-BR.json
@@ -354,6 +354,12 @@
"Everyone_can_access_this_channel": "Todos podem acessar este canal",
"Everyone_can_access_this_team": "Todos podem acessar este canal",
"Expanded": "Estendido",
+ "Experimental_retirement_continue": "Continuar para o app",
+ "Experimental_retirement_description": "Por favor, instale o aplicativo oficial do Rocket.Chat e entre novamente no seu workspace. Esta versão Experimental deixará de receber atualizações.",
+ "Experimental_retirement_open_app_store": "Abrir App Store",
+ "Experimental_retirement_open_play_store": "Abrir Play Store",
+ "Experimental_retirement_or_open_manually": "Ou abra este link manualmente:",
+ "Experimental_retirement_title": "O Rocket.Chat Experimental está sendo descontinuado",
"Expiration_Days": "Expira em (dias)",
"Favorite": "Favorito",
"Favorites": "Favoritos",
diff --git a/app/i18n/locales/pt-PT.json b/app/i18n/locales/pt-PT.json
index 2cbfe5072ac..e218d4d52c3 100644
--- a/app/i18n/locales/pt-PT.json
+++ b/app/i18n/locales/pt-PT.json
@@ -212,6 +212,12 @@
"error-you-are-last-owner": "Você é o último proprietário. Por favor, defina novo proprietário antes de sair da sala.",
"Everyone_can_access_this_channel": "Todos podem aceder a este canal",
"Everyone_can_access_this_team": "Todos podem aceder a esta equipa",
+ "Experimental_retirement_continue": "Continuar para a aplicação",
+ "Experimental_retirement_description": "Por favor, instale a aplicação oficial do Rocket.Chat e inicie sessão novamente no seu workspace. Esta versão Experimental deixará de receber atualizações.",
+ "Experimental_retirement_open_app_store": "Abrir App Store",
+ "Experimental_retirement_open_play_store": "Abrir Play Store",
+ "Experimental_retirement_or_open_manually": "Ou abra este link manualmente:",
+ "Experimental_retirement_title": "O Rocket.Chat Experimental está a ser descontinuado",
"Expiration_Days": "Validade (Dias)",
"Favorite": "Favorito",
"Favorites": "Favoritos",
diff --git a/app/i18n/locales/ru.json b/app/i18n/locales/ru.json
index ba494cf6ba8..e5acaeafe4b 100644
--- a/app/i18n/locales/ru.json
+++ b/app/i18n/locales/ru.json
@@ -293,6 +293,12 @@
"Everyone_can_access_this_channel": "Каждый может получить доступ к этому каналу",
"Everyone_can_access_this_team": "Каждый может получить доступ к этой Команде",
"Expanded": "Расширенный",
+ "Experimental_retirement_continue": "Перейти в приложение",
+ "Experimental_retirement_description": "Пожалуйста, установите официальное приложение Rocket.Chat и снова войдите в своё рабочее пространство. Эта экспериментальная сборка больше не будет получать обновления.",
+ "Experimental_retirement_open_app_store": "Открыть App Store",
+ "Experimental_retirement_open_play_store": "Открыть Play Store",
+ "Experimental_retirement_or_open_manually": "Или откройте эту ссылку вручную:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental прекращает работу",
"Expiration_Days": "Срок действия (Дни)",
"Favorite": "Любимый",
"Favorites": "Избранное",
diff --git a/app/i18n/locales/sl-SI.json b/app/i18n/locales/sl-SI.json
index 02771398354..b22ff3f88ab 100644
--- a/app/i18n/locales/sl-SI.json
+++ b/app/i18n/locales/sl-SI.json
@@ -280,6 +280,12 @@
"Everyone_can_access_this_channel": "Vsakdo lahko dostopa do tega kanala",
"Everyone_can_access_this_team": "Vsak lahko dostopa do te ekipe",
"Expanded": "Razširjen",
+ "Experimental_retirement_continue": "Nadaljuj v aplikacijo",
+ "Experimental_retirement_description": "Prosimo, namestite uradno aplikacijo Rocket.Chat in se znova prijavite v svoj delovni prostor. Ta poskusna različica ne bo več prejemala posodobitev.",
+ "Experimental_retirement_open_app_store": "Odpri App Store",
+ "Experimental_retirement_open_play_store": "Odpri Trgovino Play",
+ "Experimental_retirement_or_open_manually": "Ali pa odprite to povezavo ročno:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental se ukinja",
"Expiration_Days": "Iztek (dnevi)",
"Favorite": "Priljubljeno",
"Favorites": "Priljubljeno",
diff --git a/app/i18n/locales/sv.json b/app/i18n/locales/sv.json
index b0063b1b50d..7071978b5c2 100644
--- a/app/i18n/locales/sv.json
+++ b/app/i18n/locales/sv.json
@@ -302,6 +302,12 @@
"Everyone_can_access_this_channel": "Kanalen är öppen för alla",
"Everyone_can_access_this_team": "Teamet är öppet för alla",
"Expanded": "Expanderade",
+ "Experimental_retirement_continue": "Fortsätt till appen",
+ "Experimental_retirement_description": "Installera den officiella Rocket.Chat-appen och logga in i din arbetsyta igen. Denna experimentella version får inte längre uppdateringar.",
+ "Experimental_retirement_open_app_store": "Öppna App Store",
+ "Experimental_retirement_open_play_store": "Öppna Play Store",
+ "Experimental_retirement_or_open_manually": "Eller öppna den här länken manuellt:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental avvecklas",
"Expiration_Days": "Förfallotid (dagar)",
"Favorite": "Favorit",
"Favorites": "Favoriter",
diff --git a/app/i18n/locales/ta-IN.json b/app/i18n/locales/ta-IN.json
index 02b663e9c3a..5ee7e19f675 100644
--- a/app/i18n/locales/ta-IN.json
+++ b/app/i18n/locales/ta-IN.json
@@ -323,6 +323,12 @@
"Everyone_can_access_this_channel": "அனைத்தும் இந்த சேனலுக்கு அணுகலாம்",
"Everyone_can_access_this_team": "அனைத்தும் இந்த அணுகும் குழுக்கு அணுகலாம்",
"Expanded": "பரப்பியது",
+ "Experimental_retirement_continue": "பயன்பாட்டிற்குத் தொடரவும்",
+ "Experimental_retirement_description": "தயவுசெய்து உத்தியோகபூர்வ Rocket.Chat பயன்பாட்டை நிறுவி, உங்கள் பணியிடத்தில் மீண்டும் உள்நுழையவும். இந்த சோதனை பதிப்பு இனி புதுப்பிப்புகளைப் பெறாது.",
+ "Experimental_retirement_open_app_store": "App Store ஐ திற",
+ "Experimental_retirement_open_play_store": "Play Store ஐ திற",
+ "Experimental_retirement_or_open_manually": "அல்லது இந்த இணைப்பை கைமுறையாக திறக்கவும்:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental நீக்கப்படுகிறது",
"Expiration_Days": "காலாவதி (நாட்கள்)",
"Favorite": "பிடித்தது",
"Favorites": "பிடித்தவை",
diff --git a/app/i18n/locales/te-IN.json b/app/i18n/locales/te-IN.json
index 6a6860464cd..84dfbb29cd0 100644
--- a/app/i18n/locales/te-IN.json
+++ b/app/i18n/locales/te-IN.json
@@ -322,6 +322,12 @@
"Everyone_can_access_this_channel": "ప్రతిఒక్కరూ ఈ ఛానల్ను ప్రవేశించవచ్చు",
"Everyone_can_access_this_team": "ప్రతిఒక్కరూ ఈ టీమ్ను ప్రవేశించవచ్చు",
"Expanded": "విస్తృతం",
+ "Experimental_retirement_continue": "యాప్కి కొనసాగండి",
+ "Experimental_retirement_description": "దయచేసి అధికారిక Rocket.Chat యాప్ను ఇన్స్టాల్ చేసి, మీ వర్క్స్పేస్లోకి మళ్లీ సైన్ ఇన్ చేయండి. ఈ ప్రయోగాత్మక బిల్డ్కు ఇకపై అప్డేట్లు రావు.",
+ "Experimental_retirement_open_app_store": "App Store తెరవండి",
+ "Experimental_retirement_open_play_store": "Play Store తెరవండి",
+ "Experimental_retirement_or_open_manually": "లేదా ఈ లింక్ను మాన్యువల్గా తెరవండి:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental నిలిపివేయబడుతోంది",
"Expiration_Days": "కాలాంతరం (రోజులు)",
"Favorite": "पसंदीदा",
"Favorites": "ఇష్టాలు",
diff --git a/app/i18n/locales/tr.json b/app/i18n/locales/tr.json
index f111a5bff96..66eb1b4f4a9 100644
--- a/app/i18n/locales/tr.json
+++ b/app/i18n/locales/tr.json
@@ -229,6 +229,12 @@
"error-too-many-requests": "Hata, çok fazla istek. Lütfen yavaşla. Tekrar denemeden önce {{seconds}} saniye beklemelisiniz.",
"error-you-are-last-owner": "Son sahibi sizsiniz. Lütfen odadan ayrılmadan önce yeni bir sahip belirleyin.",
"Everyone_can_access_this_channel": "Bu kanala herkes erişebilir",
+ "Experimental_retirement_continue": "Uygulamaya devam et",
+ "Experimental_retirement_description": "Lütfen resmi Rocket.Chat uygulamasını yükleyin ve çalışma alanınıza yeniden giriş yapın. Bu deneysel sürüm artık güncelleme almayacak.",
+ "Experimental_retirement_open_app_store": "App Store'u Aç",
+ "Experimental_retirement_open_play_store": "Play Store'u Aç",
+ "Experimental_retirement_or_open_manually": "Veya bu bağlantıyı manuel olarak açın:",
+ "Experimental_retirement_title": "Rocket.Chat Experimental kullanımdan kaldırılıyor",
"Expiration_Days": "Geçerlilik Süresi (Gün)",
"Favorite": "Favori",
"Favorites": "Favoriler",
diff --git a/app/i18n/locales/zh-CN.json b/app/i18n/locales/zh-CN.json
index 0f8f99d45ff..847e844c19b 100644
--- a/app/i18n/locales/zh-CN.json
+++ b/app/i18n/locales/zh-CN.json
@@ -225,6 +225,12 @@
"error-too-many-requests": "错误,请求太多。请慢一点。在再次尝试之前,必须等待{{seconds}}秒。",
"error-you-are-last-owner": "您是最后的拥有者。请删除此人之前设置一个新的拥有者。",
"Everyone_can_access_this_channel": "每个人都可以访问此频道",
+ "Experimental_retirement_continue": "继续使用应用",
+ "Experimental_retirement_description": "请安装官方的 Rocket.Chat 应用并重新登录您的工作区。此实验版将不再接收更新。",
+ "Experimental_retirement_open_app_store": "打开 App Store",
+ "Experimental_retirement_open_play_store": "打开 Play 商店",
+ "Experimental_retirement_or_open_manually": "或手动打开此链接:",
+ "Experimental_retirement_title": "Rocket.Chat 实验版即将停用",
"Expiration_Days": "到期 (日)",
"Favorite": "收藏",
"Favorites": "收藏",
diff --git a/app/i18n/locales/zh-TW.json b/app/i18n/locales/zh-TW.json
index 3dd116c74c3..9921c7d56a7 100644
--- a/app/i18n/locales/zh-TW.json
+++ b/app/i18n/locales/zh-TW.json
@@ -233,6 +233,12 @@
"error-you-are-last-owner": "您是最後的擁有者。請刪除此人之前設置一個新的擁有者。",
"Everyone_can_access_this_channel": "所有人皆可存取此頻道",
"Everyone_can_access_this_team": "所有人皆可存取此團隊",
+ "Experimental_retirement_continue": "繼續使用應用程式",
+ "Experimental_retirement_description": "請安裝官方的 Rocket.Chat 應用程式並重新登入您的工作區。此實驗版將不再接收更新。",
+ "Experimental_retirement_open_app_store": "開啟 App Store",
+ "Experimental_retirement_open_play_store": "開啟 Play 商店",
+ "Experimental_retirement_or_open_manually": "或手動開啟此連結:",
+ "Experimental_retirement_title": "Rocket.Chat 實驗版即將停用",
"Expiration_Days": "到期 (日)",
"Favorite": "最愛",
"Favorites": "我的最愛",
diff --git a/app/index.tsx b/app/index.tsx
index 3c3ceeef2d0..b5e4a30c473 100644
--- a/app/index.tsx
+++ b/app/index.tsx
@@ -11,6 +11,7 @@ import AppContainer from './AppContainer';
import { appInit, appInitLocalSettings, setMasterDetail as setMasterDetailAction } from './actions/app';
import { deepLinkingOpen } from './actions/deepLinking';
import { ActionSheetProvider } from './containers/ActionSheet';
+import DeprecationModal from './containers/DeprecationModal';
import InAppNotification from './containers/InAppNotification';
import Loading from './containers/Loading';
import Toast from './containers/Toast';
@@ -267,6 +268,7 @@ export default class Root extends React.Component<{}, IState> {
+
diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile
index 6f52b0e2f6b..e0dbcd852e7 100644
--- a/ios/fastlane/Fastfile
+++ b/ios/fastlane/Fastfile
@@ -158,6 +158,24 @@ platform :ios do
)
end
+ desc "Build Official app for Simulator"
+ lane :build_official_simulator do
+ sh "../../scripts/prepare_ios_official.sh"
+ gym(
+ scheme: "RocketChat",
+ workspace: "RocketChatRN.xcworkspace",
+ destination: "generic/platform=iOS Simulator",
+ skip_package_ipa: true,
+ skip_codesigning: true,
+ output_name: "Rocket.Chat",
+ output_directory: "./fastlane/output",
+ build_path: "./fastlane/build",
+ configuration: "Release",
+ derived_data_path: "./fastlane/derived_data",
+ xcargs: "-parallelizeTargets -jobs 4 ARCHS=arm64 CODE_SIGNING_ALLOWED=NO"
+ )
+ end
+
after_all do |lane|
delete_keychain(name: ENV["MATCH_KEYCHAIN_NAME"])
end