diff --git a/.circleci/config.yml b/.circleci/config.yml
index 548febfda6..2541bbeb66 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -8,6 +8,11 @@ macos: &macos
bash-env: &bash-env
BASH_ENV: "~/.nvm/nvm.sh"
+android-env: &android-env
+ JAVA_OPTS: '-Xms512m -Xmx2g'
+ GRADLE_OPTS: '-Xmx3g -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx2g -XX:+HeapDumpOnOutOfMemoryError"'
+ TERM: dumb
+
install-npm-modules: &install-npm-modules
name: Install NPM modules
command: yarn
@@ -75,61 +80,11 @@ restore_cache: &restore-gradle-cache
name: Restore gradle cache
key: android-{{ checksum "android/build.gradle" }}-{{ checksum "android/app/build.gradle" }}
-version: 2.1
-
-# EXECUTORS
-executors:
- mac-env:
- <<: *macos
- environment:
- <<: *bash-env
-
-# JOBS
-jobs:
- lint-testunit:
- <<: *defaults
- docker:
- - image: circleci/node:10
-
- environment:
- CODECOV_TOKEN: caa771ab-3d45-4756-8e2a-e1f25996fef6
-
- steps:
- - checkout
-
- - restore_cache: *restore-npm-cache-linux
-
- - run: *install-npm-modules
-
- - run:
- name: Lint
- command: |
- yarn lint
-
- - run:
- name: Test
- command: |
- yarn test
-
- - run:
- name: Codecov
- command: |
- yarn codecov
-
- - save_cache: *save-npm-cache-linux
-
- # Android builds
- android-play-build:
- <<: *defaults
- docker:
- - image: circleci/android:api-28-node
-
- environment:
- JAVA_OPTS: '-Xms512m -Xmx2g'
- GRADLE_OPTS: '-Xmx3g -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx2g -XX:+HeapDumpOnOutOfMemoryError"'
- TERM: dumb
- <<: *bash-env
+# COMMANDS
+commands:
+ android-build:
+ description: "Build Android app"
steps:
- checkout
@@ -139,8 +94,6 @@ jobs:
- run: *install-npm-modules
- - run: *update-fastlane-android
-
- restore_cache: *restore-gradle-cache
- run:
@@ -151,11 +104,19 @@ jobs:
echo -e "android.useAndroidX=true" >> ./gradle.properties
echo -e "android.enableJetifier=true" >> ./gradle.properties
echo -e "FLIPPER_VERSION=0.51.0" >> ./gradle.properties
- echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties
echo -e "VERSIONCODE=$CIRCLE_BUILD_NUM" >> ./gradle.properties
- echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties
- if [[ $KEYSTORE ]]; then
+ if [[ $CIRCLE_JOB == "android-build-official" ]]; then
+ echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties
+ echo -e "BugsnagAPIKey=$BUGSNAG_KEY_OFFICIAL" >> ./gradle.properties
+ echo $CHAT_ROCKET_ANDROID_STORE_FILE_BASE64_JKS | base64 --decode > ./app/$KEYSTORE_OFFICIAL
+ echo -e "KEYSTORE=$KEYSTORE_OFFICIAL" >> ./gradle.properties
+ echo -e "KEYSTORE_PASSWORD=$CHAT_ROCKET_ANDROID_STORE_PASSWORD" >> ./gradle.properties
+ echo -e "KEY_ALIAS=$CHAT_ROCKET_ANDROID_KEY_ALIAS" >> ./gradle.properties
+ echo -e "KEY_PASSWORD=$CHAT_ROCKET_ANDROID_KEY_PASSWORD" >> ./gradle.properties
+ else
+ echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties
+ echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties
echo $KEYSTORE_BASE64 | base64 --decode > ./app/$KEYSTORE
echo -e "KEYSTORE=$KEYSTORE" >> ./gradle.properties
echo -e "KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties
@@ -170,97 +131,52 @@ jobs:
if [[ $KEYSTORE ]]; then
echo $GOOGLE_SERVICES_ANDROID | base64 --decode > google-services.json
fi
- working_directory: android/app/src/play
+ working_directory: android/app
- run:
name: Config variables
command: |
- echo -e "export default { BUGSNAG_API_KEY: '$BUGSNAG_KEY' };" > ./config.js
+ if [[ $CIRCLE_JOB == "android-build-official" ]]; then
+ echo -e "export default { BUGSNAG_API_KEY: '$BUGSNAG_KEY_OFFICIAL' };" > ./config.js
+ else
+ echo -e "export default { BUGSNAG_API_KEY: '$BUGSNAG_KEY' };" > ./config.js
+ fi
- run:
- name: Build Android Play App
+ name: Build App
command: |
- if [[ $KEYSTORE ]]; then
- bundle exec fastlane android playRelease
- else
- bundle exec fastlane android playBuild
+ if [[ $CIRCLE_JOB == "android-build-official" ]]; then
+ ./gradlew bundleOfficialPlayRelease
+ fi
+ if [[ $CIRCLE_JOB == "android-build-experimental" ]]; then
+ ./gradlew bundleExperimentalPlayRelease
+ fi
+ if [[ ! $KEYSTORE ]]; then
+ ./gradlew assembleExperimentalPlayDebug
fi
working_directory: android
- run:
name: Upload sourcemaps to Bugsnag
command: |
- if [[ $BUGSNAG_KEY ]]; then
+ if [[ $CIRCLE_JOB == "android-build-official" ]]; then
yarn generate-source-maps-android upload \
- --api-key=$BUGSNAG_KEY \
+ --api-key=$BUGSNAG_KEY_OFFICIAL \
--app-version=$CIRCLE_BUILD_NUM \
- --minifiedFile=android/app/build/generated/assets/react/play/release/app.bundle \
- --source-map=android/app/build/generated/sourcemaps/react/play/release/app.bundle.map \
+ --minifiedFile=android/app/build/generated/assets/react/officialPlay/release/app.bundle \
+ --source-map=android/app/build/generated/sourcemaps/react/officialPlay/release/app.bundle.map \
--minified-url=app.bundle \
--upload-sources
fi
-
- - store_artifacts:
- path: android/app/build/outputs
-
- - save_cache: *save-npm-cache-linux
-
- - save_cache: *save-gradle-cache
-
- - persist_to_workspace:
- root: .
- paths:
- - android/fastlane/report.xml
- - android/app/build/outputs
-
- android-foss-build:
- <<: *defaults
- docker:
- - image: circleci/android:api-28-node
-
- environment:
- JAVA_OPTS: '-Xms512m -Xmx2g'
- GRADLE_OPTS: '-Xmx3g -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx2g -XX:+HeapDumpOnOutOfMemoryError"'
- TERM: dumb
- <<: *bash-env
-
- steps:
- - checkout
-
- - run: *install-node
-
- - restore_cache: *restore-npm-cache-linux
-
- - run: *install-npm-modules
-
- - run: *update-fastlane-android
-
- - restore_cache: *restore-gradle-cache
-
- - run:
- name: Configure Gradle
- command: |
- echo -e "" > ./gradle.properties
- # echo -e "android.enableAapt2=false" >> ./gradle.properties
- echo -e "android.useAndroidX=true" >> ./gradle.properties
- echo -e "android.enableJetifier=true" >> ./gradle.properties
- echo -e "FLIPPER_VERSION=0.51.0" >> ./gradle.properties
- echo -e "VERSIONCODE=$CIRCLE_BUILD_NUM" >> ./gradle.properties
- echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties
-
- if [[ $KEYSTORE ]]; then
- echo $KEYSTORE_BASE64 | base64 --decode > ./app/$KEYSTORE
- echo -e "KEYSTORE=$KEYSTORE" >> ./gradle.properties
- echo -e "KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties
- echo -e "KEY_ALIAS=$KEY_ALIAS" >> ./gradle.properties
- echo -e "KEY_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties
+ if [[ $CIRCLE_JOB == "android-build-experimental" ]]; then
+ yarn generate-source-maps-android upload \
+ --api-key=$BUGSNAG_KEY \
+ --app-version=$CIRCLE_BUILD_NUM \
+ --minifiedFile=android/app/build/generated/assets/react/experimentalPlay/release/app.bundle \
+ --source-map=android/app/build/generated/sourcemaps/react/experimentalPlay/release/app.bundle.map \
+ --minified-url=app.bundle \
+ --upload-sources
fi
- working_directory: android
-
- - run:
- name: Build Android Foss App
- command: bundle exec fastlane android fossRelease
- working_directory: android
- store_artifacts:
path: android/app/build/outputs
@@ -272,61 +188,38 @@ jobs:
- persist_to_workspace:
root: .
paths:
- - android/fastlane/report.xml
- android/app/build/outputs
- android-google-play-beta:
- <<: *defaults
- docker:
- - image: circleci/android:api-28-node
-
- steps:
- - checkout
-
- - attach_workspace:
- at: android
-
- - run:
- name: Store the google service account key
- command: echo "$FASTLANE_GOOGLE_SERVICE_ACCOUNT" | base64 --decode > service_account.json
- working_directory: android
-
- - run: *update-fastlane-android
-
- - run:
- name: Fastlane Play Store Upload
- command: bundle exec fastlane android beta
- working_directory: android
-
- # iOS builds
ios-build:
- executor: mac-env
-
+ description: "Build iOS app"
steps:
- checkout
-
- restore_cache: *restore-gems-cache
-
- restore_cache: *restore-npm-cache-mac
-
- run: *install-node
-
- run: *install-npm-modules
-
- run: *update-fastlane-ios
-
- run:
name: Set Google Services
command: |
if [[ $KEYSTORE ]]; then
- echo $GOOGLE_SERVICES_REACTNATIVE | base64 --decode > GoogleService-Info.plist
+ echo $GOOGLE_SERVICES_IOS | base64 --decode > GoogleService-Info.plist
fi
working_directory: ios
-
- run:
name: Upload sourcemaps to Bugsnag
command: |
- if [[ $BUGSNAG_KEY ]]; then
+ if [[ $CIRCLE_JOB == "ios-build-official" ]]; then
+ yarn generate-source-maps-ios
+ curl https://upload.bugsnag.com/react-native-source-map \
+ -F apiKey=$BUGSNAG_KEY_OFFICIAL \
+ -F appBundleVersion=$CIRCLE_BUILD_NUM \
+ -F dev=false \
+ -F platform=ios \
+ -F sourceMap=@ios-release.bundle.map \
+ -F bundle=@ios-release.bundle
+ fi
+ if [[ $CIRCLE_JOB == "ios-build-experimental" ]]; then
yarn generate-source-maps-ios
curl https://upload.bugsnag.com/react-native-source-map \
-F apiKey=$BUGSNAG_KEY \
@@ -336,87 +229,244 @@ jobs:
-F sourceMap=@ios-release.bundle.map \
-F bundle=@ios-release.bundle
fi
-
- run:
name: Fastlane Build
no_output_timeout: 1200
command: |
agvtool new-version -all $CIRCLE_BUILD_NUM
- /usr/libexec/PlistBuddy -c "Set BugsnagAPIKey $BUGSNAG_KEY" ./RocketChatRN/Info.plist
+ if [[ $CIRCLE_JOB == "ios-build-official" ]]; then
+ /usr/libexec/PlistBuddy -c "Set BugsnagAPIKey $BUGSNAG_KEY_OFFICIAL" ./RocketChatRN/Info.plist
+ /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL YES" ./RocketChatRN/Info.plist
+ else
+ /usr/libexec/PlistBuddy -c "Set BugsnagAPIKey $BUGSNAG_KEY" ./RocketChatRN/Info.plist
+ /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./RocketChatRN/Info.plist
+ fi
if [[ $APP_STORE_CONNECT_API_KEY ]]; then
echo $APP_STORE_CONNECT_API_KEY | base64 --decode > ./fastlane/app_store_connect_api_key.p8
- bundle exec fastlane ios release
- else
- bundle exec fastlane ios build_fork
+ if [[ $CIRCLE_JOB == "ios-build-official" ]]; then
+ bundle exec fastlane ios build_official
+ else
+ if [[ $KEYSTORE ]]; then
+ bundle exec fastlane ios release # TODO: rename
+ else
+ bundle exec fastlane ios build_fork
+ fi
+ fi
fi
working_directory: ios
-
- save_cache: *save-npm-cache-mac
-
- save_cache: *save-gems-cache
-
- store_artifacts:
- path: ios/RocketChatRN.ipa
-
+ path: ios/Rocket.Chat.ipa
+ - store_artifacts:
+ path: ios/Rocket.Chat.app.dSYM.zip
- persist_to_workspace:
root: .
paths:
- ios/*.ipa
- - ios/fastlane/report.xml
-
- ios-testflight:
- executor: mac-env
+ - ios/*.zip
+ upload-to-google-play-beta:
+ description: "Upload to Google Play beta"
+ parameters:
+ official:
+ type: boolean
steps:
- checkout
+ - attach_workspace:
+ at: android
+ - run:
+ name: Store the google service account key
+ command: echo "$FASTLANE_GOOGLE_SERVICE_ACCOUNT" | base64 --decode > service_account.json
+ working_directory: android
+ - run: *update-fastlane-android
+ - run:
+ name: Fastlane Play Store Upload
+ command: bundle exec fastlane android beta official:<< parameters.official >>
+ working_directory: android
+ upload-to-testflight:
+ description: "Upload to TestFlight"
+ parameters:
+ official:
+ type: boolean
+ steps:
+ - checkout
- attach_workspace:
at: ios
-
- restore_cache: *restore-gems-cache
-
- run: *update-fastlane-ios
-
- run:
name: Fastlane Tesflight Upload
command: |
echo $APP_STORE_CONNECT_API_KEY | base64 --decode > ./fastlane/app_store_connect_api_key.p8
- bundle exec fastlane ios beta
+ bundle exec fastlane ios beta official:<< parameters.official >>
working_directory: ios
-
- save_cache: *save-gems-cache
+version: 2.1
+
+# EXECUTORS
+executors:
+ mac-env:
+ <<: *macos
+ environment:
+ <<: *bash-env
+
+# JOBS
+jobs:
+ lint-testunit:
+ <<: *defaults
+ docker:
+ - image: circleci/node:10
+
+ environment:
+ CODECOV_TOKEN: caa771ab-3d45-4756-8e2a-e1f25996fef6
+
+ steps:
+ - checkout
+
+ - restore_cache: *restore-npm-cache-linux
+
+ - run: *install-npm-modules
+
+ - run:
+ name: Lint
+ command: |
+ yarn lint
+
+ - run:
+ name: Test
+ command: |
+ yarn test
+
+ - run:
+ name: Codecov
+ command: |
+ yarn codecov
+
+ - save_cache: *save-npm-cache-linux
+
+ # Android builds
+ android-build-experimental:
+ <<: *defaults
+ docker:
+ - image: circleci/android:api-28-node
+ environment:
+ <<: *android-env
+ <<: *bash-env
+ steps:
+ - android-build
+
+ android-build-official:
+ <<: *defaults
+ docker:
+ - image: circleci/android:api-28-node
+ environment:
+ <<: *android-env
+ <<: *bash-env
+ steps:
+ - android-build
+
+ android-google-play-beta-experimental:
+ <<: *defaults
+ docker:
+ - image: circleci/android:api-28-node
+
+ steps:
+ - upload-to-google-play-beta:
+ official: false
+
+ android-google-play-beta-official:
+ <<: *defaults
+ docker:
+ - image: circleci/android:api-28-node
+
+ steps:
+ - upload-to-google-play-beta:
+ official: true
+
+ # iOS builds
+ ios-build-experimental:
+ executor: mac-env
+ steps:
+ - ios-build
+
+ ios-build-official:
+ executor: mac-env
+ steps:
+ - ios-build
+
+ ios-testflight-experimental:
+ executor: mac-env
+ steps:
+ - upload-to-testflight:
+ official: false
+
+ ios-testflight-official:
+ executor: mac-env
+ steps:
+ - upload-to-testflight:
+ official: true
+
workflows:
build-and-test:
jobs:
- lint-testunit
- - ios-build:
+ # iOS Experimental
+ - ios-build-experimental:
requires:
- lint-testunit
- - ios-hold-testflight:
+ - ios-hold-testflight-experimental:
type: approval
requires:
- - ios-build
- - ios-testflight:
+ - ios-build-experimental
+ - ios-testflight-experimental:
requires:
- - ios-hold-testflight
+ - ios-hold-testflight-experimental
- - android-play-build:
+ # iOS Official
+ - ios-hold-build-official:
+ type: approval
requires:
- lint-testunit
- - android-hold-google-play-beta:
+ - ios-build-official:
+ requires:
+ - ios-hold-build-official
+ - ios-hold-testflight-official:
type: approval
requires:
- - android-play-build
- - android-google-play-beta:
+ - ios-build-official
+ - ios-testflight-official:
requires:
- - android-hold-google-play-beta
- - android-hold-foss-build:
+ - ios-hold-testflight-official
+
+ # Android Experimental
+ - android-build-experimental:
+ requires:
+ - lint-testunit
+ - android-hold-google-play-beta-experimental:
+ type: approval
+ requires:
+ - android-build-experimental
+ - android-google-play-beta-experimental:
+ requires:
+ - android-hold-google-play-beta-experimental
+
+ # Android Official
+ - android-hold-build-official:
type: approval
requires:
- lint-testunit
- - android-foss-build:
+ - android-build-official:
+ requires:
+ - android-hold-build-official
+ - android-hold-google-play-beta-official:
+ type: approval
+ requires:
+ - android-build-official
+ - android-google-play-beta-official:
requires:
- - android-hold-foss-build
+ - android-hold-google-play-beta-official
diff --git a/.gitignore b/.gitignore
index 3d1baa2150..d34d286716 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@ DerivedData
*.ipa
*.xcuserstate
project.xcworkspace
+*.mobileprovision
# Android/IntelliJ
#
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 28518d655d..d25d0425f2 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,10 +1,10 @@
def taskRequests = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase()
-def isPlay = !taskRequests.contains("foss")
+def isFoss = taskRequests.contains("foss")
apply plugin: "com.android.application"
apply plugin: 'kotlin-android'
-if (isPlay) {
+if (!isFoss) {
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.bugsnag.android.gradle'
}
@@ -146,7 +146,7 @@ android {
versionCode VERSIONCODE as Integer
versionName "4.13.0"
vectorDrawables.useSupportLibrary = true
- if (isPlay) {
+ if (!isFoss) {
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60" // See note below!
}
@@ -176,7 +176,7 @@ android {
minifyEnabled enableProguardInReleaseBuilds
setProguardFiles([getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'])
signingConfig signingConfigs.release
- if (isPlay) {
+ if (!isFoss) {
firebaseCrashlytics {
nativeSymbolUploadEnabled true
}
@@ -193,10 +193,17 @@ android {
// applicationVariants are e.g. debug, release
- flavorDimensions "type"
+ flavorDimensions "app", "type"
productFlavors {
+ official {
+ dimension = "app"
+ buildConfigField "boolean", "IS_OFFICIAL", "true"
+ }
+ experimental {
+ dimension = "app"
+ buildConfigField "boolean", "IS_OFFICIAL", "false"
+ }
foss {
- applicationId APPLICATION_ID
dimension = "type"
buildConfigField "boolean", "FDROID_BUILD", "true"
}
@@ -206,11 +213,20 @@ android {
}
}
sourceSets {
- playDebug {
+ // TODO: refactor making sure notifications are working properly both on debug and release
+ experimentalPlayDebug {
+ java.srcDirs = ['src/main/java', 'src/play/java']
+ manifest.srcFile 'src/play/AndroidManifest.xml'
+ }
+ experimentalPlayRelease {
+ java.srcDirs = ['src/main/java', 'src/play/java']
+ manifest.srcFile 'src/play/AndroidManifest.xml'
+ }
+ officialPlayDebug {
java.srcDirs = ['src/main/java', 'src/play/java']
manifest.srcFile 'src/play/AndroidManifest.xml'
}
- playRelease {
+ officialPlayRelease {
java.srcDirs = ['src/main/java', 'src/play/java']
manifest.srcFile 'src/play/AndroidManifest.xml'
}
@@ -287,6 +303,6 @@ task copyDownloadableDepsToLibs(type: Copy) {
}
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
-if (isPlay) {
+if (!isFoss) {
apply plugin: 'com.google.gms.google-services'
}
diff --git a/android/app/google-services.json b/android/app/google-services.json
new file mode 100644
index 0000000000..f5014f14c1
--- /dev/null
+++ b/android/app/google-services.json
@@ -0,0 +1,83 @@
+{
+ "project_info": {
+ "project_number": "115198584049",
+ "firebase_url": "https://rocketchat-reactnative-test.firebaseio.com",
+ "project_id": "rocketchat-reactnative-test",
+ "storage_bucket": "rocketchat-reactnative-test.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:115198584049:android:a79216ae48935d2c9ab550",
+ "android_client_info": {
+ "package_name": "chat.rocket.android"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAWwowhAfACHBw3YxmDOXY3QyakgjhJLqc"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com",
+ "client_type": 3
+ },
+ {
+ "client_id": "115198584049-0efgfvm0oh9ap55g7epmqnjm27mq3j4e.apps.googleusercontent.com",
+ "client_type": 2,
+ "ios_info": {
+ "bundle_id": "chat.rocket.reactnative"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:115198584049:android:8be27b1f7c42a2ed",
+ "android_client_info": {
+ "package_name": "chat.rocket.reactnative"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAWwowhAfACHBw3YxmDOXY3QyakgjhJLqc"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com",
+ "client_type": 3
+ },
+ {
+ "client_id": "115198584049-0efgfvm0oh9ap55g7epmqnjm27mq3j4e.apps.googleusercontent.com",
+ "client_type": 2,
+ "ios_info": {
+ "bundle_id": "chat.rocket.reactnative"
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/android/app/src/play/ic_launcher-web.png b/android/app/src/experimental/ic_launcher-web.png
similarity index 100%
rename from android/app/src/play/ic_launcher-web.png
rename to android/app/src/experimental/ic_launcher-web.png
diff --git a/android/app/src/play/res/drawable-v24/ic_launcher_background.xml b/android/app/src/experimental/res/drawable-v24/ic_launcher_background.xml
similarity index 100%
rename from android/app/src/play/res/drawable-v24/ic_launcher_background.xml
rename to android/app/src/experimental/res/drawable-v24/ic_launcher_background.xml
diff --git a/android/app/src/play/res/drawable-xxhdpi/splash.png b/android/app/src/experimental/res/drawable-xxhdpi/splash.png
similarity index 100%
rename from android/app/src/play/res/drawable-xxhdpi/splash.png
rename to android/app/src/experimental/res/drawable-xxhdpi/splash.png
diff --git a/android/app/src/play/res/drawable/ic_launcher_foreground.xml b/android/app/src/experimental/res/drawable/ic_launcher_foreground.xml
similarity index 100%
rename from android/app/src/play/res/drawable/ic_launcher_foreground.xml
rename to android/app/src/experimental/res/drawable/ic_launcher_foreground.xml
diff --git a/android/app/src/foss/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/experimental/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from android/app/src/foss/res/mipmap-anydpi-v26/ic_launcher.xml
rename to android/app/src/experimental/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/android/app/src/foss/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/experimental/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from android/app/src/foss/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to android/app/src/experimental/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/android/app/src/play/res/mipmap-hdpi/ic_launcher.png b/android/app/src/experimental/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/play/res/mipmap-hdpi/ic_launcher.png
rename to android/app/src/experimental/res/mipmap-hdpi/ic_launcher.png
diff --git a/android/app/src/play/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/experimental/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/play/res/mipmap-hdpi/ic_launcher_round.png
rename to android/app/src/experimental/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/android/app/src/play/res/mipmap-mdpi/ic_launcher.png b/android/app/src/experimental/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/play/res/mipmap-mdpi/ic_launcher.png
rename to android/app/src/experimental/res/mipmap-mdpi/ic_launcher.png
diff --git a/android/app/src/play/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/experimental/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/play/res/mipmap-mdpi/ic_launcher_round.png
rename to android/app/src/experimental/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/android/app/src/play/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/experimental/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/play/res/mipmap-xhdpi/ic_launcher.png
rename to android/app/src/experimental/res/mipmap-xhdpi/ic_launcher.png
diff --git a/android/app/src/play/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/experimental/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/play/res/mipmap-xhdpi/ic_launcher_round.png
rename to android/app/src/experimental/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/android/app/src/play/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/experimental/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/play/res/mipmap-xxhdpi/ic_launcher.png
rename to android/app/src/experimental/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/android/app/src/play/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/experimental/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/play/res/mipmap-xxhdpi/ic_launcher_round.png
rename to android/app/src/experimental/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/android/app/src/play/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/experimental/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/play/res/mipmap-xxxhdpi/ic_launcher.png
rename to android/app/src/experimental/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/android/app/src/play/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/experimental/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/play/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to android/app/src/experimental/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/experimental/res/values/colors.xml
similarity index 100%
rename from android/app/src/main/res/values/colors.xml
rename to android/app/src/experimental/res/values/colors.xml
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/experimental/res/values/strings.xml
similarity index 100%
rename from android/app/src/main/res/values/strings.xml
rename to android/app/src/experimental/res/values/strings.xml
diff --git a/android/app/src/foss/res/values-night/colors.xml b/android/app/src/foss/res/values-night/colors.xml
deleted file mode 100644
index 3c1a14f899..0000000000
--- a/android/app/src/foss/res/values-night/colors.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- - #000000
-
diff --git a/android/app/src/foss/res/values/styles.xml b/android/app/src/foss/res/values/styles.xml
deleted file mode 100644
index 50861d8e0c..0000000000
--- a/android/app/src/foss/res/values/styles.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/res/values-night/colors.xml b/android/app/src/main/res/values-night/colors.xml
index d5d36f2f57..3c1a14f899 100644
--- a/android/app/src/main/res/values-night/colors.xml
+++ b/android/app/src/main/res/values-night/colors.xml
@@ -1,5 +1,4 @@
- #000000
- - #1D74F5
-
\ No newline at end of file
+
diff --git a/android/app/src/foss/ic_launcher-web.png b/android/app/src/official/ic_launcher-web.png
similarity index 100%
rename from android/app/src/foss/ic_launcher-web.png
rename to android/app/src/official/ic_launcher-web.png
diff --git a/android/app/src/foss/res/drawable-xxhdpi/splash.png b/android/app/src/official/res/drawable-xxhdpi/splash.png
similarity index 100%
rename from android/app/src/foss/res/drawable-xxhdpi/splash.png
rename to android/app/src/official/res/drawable-xxhdpi/splash.png
diff --git a/android/app/src/foss/res/drawable/ic_launcher_background.xml b/android/app/src/official/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from android/app/src/foss/res/drawable/ic_launcher_background.xml
rename to android/app/src/official/res/drawable/ic_launcher_background.xml
diff --git a/android/app/src/foss/res/drawable/ic_launcher_foreground.xml b/android/app/src/official/res/drawable/ic_launcher_foreground.xml
similarity index 100%
rename from android/app/src/foss/res/drawable/ic_launcher_foreground.xml
rename to android/app/src/official/res/drawable/ic_launcher_foreground.xml
diff --git a/android/app/src/foss/res/drawable/launch_screen.xml b/android/app/src/official/res/drawable/launch_screen.xml
similarity index 100%
rename from android/app/src/foss/res/drawable/launch_screen.xml
rename to android/app/src/official/res/drawable/launch_screen.xml
diff --git a/android/app/src/play/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/official/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from android/app/src/play/res/mipmap-anydpi-v26/ic_launcher.xml
rename to android/app/src/official/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/android/app/src/play/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/official/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from android/app/src/play/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to android/app/src/official/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/android/app/src/foss/res/mipmap-hdpi/ic_launcher.png b/android/app/src/official/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-hdpi/ic_launcher.png
rename to android/app/src/official/res/mipmap-hdpi/ic_launcher.png
diff --git a/android/app/src/foss/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/official/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-hdpi/ic_launcher_round.png
rename to android/app/src/official/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/android/app/src/foss/res/mipmap-mdpi/ic_launcher.png b/android/app/src/official/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-mdpi/ic_launcher.png
rename to android/app/src/official/res/mipmap-mdpi/ic_launcher.png
diff --git a/android/app/src/foss/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/official/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-mdpi/ic_launcher_round.png
rename to android/app/src/official/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/android/app/src/foss/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/official/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-xhdpi/ic_launcher.png
rename to android/app/src/official/res/mipmap-xhdpi/ic_launcher.png
diff --git a/android/app/src/foss/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/official/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-xhdpi/ic_launcher_round.png
rename to android/app/src/official/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/android/app/src/foss/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/official/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-xxhdpi/ic_launcher.png
rename to android/app/src/official/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/android/app/src/foss/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/official/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-xxhdpi/ic_launcher_round.png
rename to android/app/src/official/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/android/app/src/foss/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/official/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-xxxhdpi/ic_launcher.png
rename to android/app/src/official/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/android/app/src/foss/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/official/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from android/app/src/foss/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to android/app/src/official/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/android/app/src/foss/res/values/colors.xml b/android/app/src/official/res/values/colors.xml
similarity index 100%
rename from android/app/src/foss/res/values/colors.xml
rename to android/app/src/official/res/values/colors.xml
diff --git a/android/app/src/foss/res/values/strings.xml b/android/app/src/official/res/values/strings.xml
similarity index 100%
rename from android/app/src/foss/res/values/strings.xml
rename to android/app/src/official/res/values/strings.xml
diff --git a/android/app/src/play/google-services.json b/android/app/src/play/google-services.json
deleted file mode 100644
index 4b3f409be4..0000000000
--- a/android/app/src/play/google-services.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "project_info": {
- "project_number": "115198584049",
- "firebase_url": "https://rocketchat-reactnative-test.firebaseio.com",
- "project_id": "rocketchat-reactnative-test",
- "storage_bucket": "rocketchat-reactnative-test.appspot.com"
- },
- "client": [
- {
- "client_info": {
- "mobilesdk_app_id": "1:115198584049:android:8be27b1f7c42a2ed",
- "android_client_info": {
- "package_name": "chat.rocket.reactnative"
- }
- },
- "oauth_client": [
- {
- "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com",
- "client_type": 3
- }
- ],
- "api_key": [
- {
- "current_key": "AIzaSyAWwowhAfACHBw3YxmDOXY3QyakgjhJLqc"
- }
- ],
- "services": {
- "appinvite_service": {
- "other_platform_oauth_client": [
- {
- "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com",
- "client_type": 3
- }
- ]
- }
- }
- }
- ],
- "configuration_version": "1"
-}
\ No newline at end of file
diff --git a/android/app/src/play/java/chat/rocket/reactnative/Encryption.java b/android/app/src/play/java/chat/rocket/reactnative/Encryption.java
index 83c2559cdb..bb7b12ff68 100644
--- a/android/app/src/play/java/chat/rocket/reactnative/Encryption.java
+++ b/android/app/src/play/java/chat/rocket/reactnative/Encryption.java
@@ -1,28 +1,22 @@
package chat.rocket.reactnative;
-import android.util.Log;
-import android.util.Base64;
import android.database.Cursor;
+import android.util.Base64;
+import android.util.Log;
-import com.pedrouid.crypto.RSA;
-import com.pedrouid.crypto.RCTAes;
-import com.pedrouid.crypto.RCTRsaUtils;
-import com.pedrouid.crypto.Util;
-
-import com.google.gson.Gson;
-
-import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.Arguments;
-import com.facebook.react.bridge.ReactMethod;
-import com.facebook.react.bridge.ReadableMap;
-import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.ReactApplicationContext;
-import com.facebook.react.bridge.ReactContextBaseJavaModule;
-
+import com.facebook.react.bridge.WritableMap;
+import com.google.gson.Gson;
import com.nozbe.watermelondb.Database;
+import com.pedrouid.crypto.RCTAes;
+import com.pedrouid.crypto.RCTRsaUtils;
+import com.pedrouid.crypto.RSA;
+import com.pedrouid.crypto.Util;
-import java.util.Arrays;
+import java.lang.reflect.Field;
import java.security.SecureRandom;
+import java.util.Arrays;
class Message {
String _id;
@@ -69,8 +63,24 @@ class Encryption {
public static Encryption shared = new Encryption();
private ReactApplicationContext reactContext;
- public Room readRoom(final Ejson ejson) {
- Database database = new Database(ejson.serverURL().replace("https://", "") + "-experimental.db", reactContext);
+ public Room readRoom(final Ejson ejson) throws NoSuchFieldException {
+ int resId = reactContext.getResources().getIdentifier("rn_config_reader_custom_package", "string", reactContext.getPackageName());
+ String className = reactContext.getString(resId);
+ Class clazz = null;
+ Boolean isOfficial = false;
+ try {
+ clazz = Class.forName(className + ".BuildConfig");
+ Field IS_OFFICIAL = clazz.getField("IS_OFFICIAL");
+ isOfficial = (Boolean) IS_OFFICIAL.get(null);
+ } catch (ClassNotFoundException | IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ String dbName = ejson.serverURL().replace("https://", "");
+ if (!isOfficial) {
+ dbName += "-experimental";
+ }
+ dbName += ".db";
+ Database database = new Database(dbName, reactContext);
String[] query = {ejson.rid};
Cursor cursor = database.rawQuery("select * from subscriptions where id == ? limit 1", query);
@@ -152,7 +162,7 @@ public String decryptMessage(final Ejson ejson, final ReactApplicationContext re
return m.text;
} catch (Exception e) {
- Log.d("[ROCKETCHAT][ENCRYPTION]", Log.getStackTraceString(e));
+ Log.d("[ROCKETCHAT][E2E]", Log.getStackTraceString(e));
}
return null;
@@ -182,7 +192,7 @@ public String encryptMessage(final String message, final String id, final Ejson
return keyId + Base64.encodeToString(concat(bytes, data), Base64.NO_WRAP);
} catch (Exception e) {
- Log.d("[ROCKETCHAT][ENCRYPTION]", Log.getStackTraceString(e));
+ Log.d("[ROCKETCHAT][E2E]", Log.getStackTraceString(e));
}
return message;
diff --git a/android/fastlane/Fastfile b/android/fastlane/Fastfile
index d73d3381fc..1ac6d1fa73 100644
--- a/android/fastlane/Fastfile
+++ b/android/fastlane/Fastfile
@@ -16,26 +16,20 @@
default_platform(:android)
platform :android do
- desc "Play build for development"
- lane :playBuild do
- gradle(task: "assemblePlayDebug")
- end
-
- desc "Foss build for release"
- lane :fossRelease do
- gradle(task: "assembleFossRelease")
- end
-
- desc "Play build for release"
- lane :playRelease do
- gradle(task: "bundlePlayRelease")
- end
-
desc "Upload App to Play Store Internal"
- lane :beta do
- upload_to_play_store(
- track: 'internal',
- aab: 'android/app/build/outputs/bundle/playRelease/app-play-release.aab'
- )
+ lane :beta do |options|
+ if options[:official]
+ upload_to_play_store(
+ package_name: 'chat.rocket.android',
+ track: 'internal',
+ aab: 'android/app/build/outputs/bundle/officialPlayRelease/app-official-play-release.aab'
+ )
+ else
+ upload_to_play_store(
+ package_name: 'chat.rocket.reactnative',
+ track: 'internal',
+ aab: 'android/app/build/outputs/bundle/experimentalPlayRelease/app-experimental-play-release.aab'
+ )
+ end
end
end
diff --git a/app/constants/environment.js b/app/constants/environment.js
index 099d27d1ce..43a1dc49f9 100644
--- a/app/constants/environment.js
+++ b/app/constants/environment.js
@@ -1,3 +1,5 @@
import RNConfigReader from 'react-native-config-reader';
export const isFDroidBuild = RNConfigReader.FDROID_BUILD;
+
+export const isOfficial = RNConfigReader.IS_OFFICIAL;
diff --git a/app/lib/database/index.js b/app/lib/database/index.js
index 41f135551b..67ae9782c8 100644
--- a/app/lib/database/index.js
+++ b/app/lib/database/index.js
@@ -28,6 +28,7 @@ import serversMigrations from './model/servers/migrations';
import { isIOS } from '../../utils/deviceInfo';
import appGroup from '../../utils/appGroup';
+import { isOfficial } from '../../constants/environment';
const appGroupPath = isIOS ? appGroup.path : '';
@@ -35,9 +36,11 @@ if (__DEV__ && isIOS) {
console.log(appGroupPath);
}
+const getDatabasePath = name => `${ appGroupPath }${ name }${ isOfficial ? '' : '-experimental' }.db`;
+
export const getDatabase = (database = '') => {
const path = database.replace(/(^\w+:|^)\/\//, '').replace(/\//g, '.');
- const dbName = `${ appGroupPath }${ path }-experimental.db`;
+ const dbName = getDatabasePath(path);
const adapter = new SQLiteAdapter({
dbName,
@@ -70,7 +73,7 @@ class DB {
databases = {
serversDB: new Database({
adapter: new SQLiteAdapter({
- dbName: `${ appGroupPath }default-experimental.db`,
+ dbName: getDatabasePath('default'),
schema: serversSchema,
migrations: serversMigrations
}),
@@ -97,7 +100,7 @@ class DB {
setShareDB(database = '') {
const path = database.replace(/(^\w+:|^)\/\//, '').replace(/\//g, '.');
- const dbName = `${ appGroupPath }${ path }-experimental.db`;
+ const dbName = getDatabasePath(path);
const adapter = new SQLiteAdapter({
dbName,
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/100.png b/ios/Experimental.xcassets/AppIcon.appiconset/100.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/100.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/100.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/1024.png b/ios/Experimental.xcassets/AppIcon.appiconset/1024.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/1024.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/1024.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/114.png b/ios/Experimental.xcassets/AppIcon.appiconset/114.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/114.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/114.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/120.png b/ios/Experimental.xcassets/AppIcon.appiconset/120.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/120.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/120.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/144.png b/ios/Experimental.xcassets/AppIcon.appiconset/144.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/144.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/144.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/152.png b/ios/Experimental.xcassets/AppIcon.appiconset/152.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/152.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/152.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/167.png b/ios/Experimental.xcassets/AppIcon.appiconset/167.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/167.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/167.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/180.png b/ios/Experimental.xcassets/AppIcon.appiconset/180.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/180.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/180.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/20.png b/ios/Experimental.xcassets/AppIcon.appiconset/20.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/20.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/20.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/29.png b/ios/Experimental.xcassets/AppIcon.appiconset/29.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/29.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/29.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/40.png b/ios/Experimental.xcassets/AppIcon.appiconset/40.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/40.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/40.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/50.png b/ios/Experimental.xcassets/AppIcon.appiconset/50.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/50.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/50.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/57.png b/ios/Experimental.xcassets/AppIcon.appiconset/57.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/57.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/57.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/58.png b/ios/Experimental.xcassets/AppIcon.appiconset/58.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/58.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/58.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/60.png b/ios/Experimental.xcassets/AppIcon.appiconset/60.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/60.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/60.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/72.png b/ios/Experimental.xcassets/AppIcon.appiconset/72.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/72.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/72.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/76.png b/ios/Experimental.xcassets/AppIcon.appiconset/76.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/76.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/76.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/80.png b/ios/Experimental.xcassets/AppIcon.appiconset/80.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/80.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/80.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/87.png b/ios/Experimental.xcassets/AppIcon.appiconset/87.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/87.png
rename to ios/Experimental.xcassets/AppIcon.appiconset/87.png
diff --git a/ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/Experimental.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/AppIcon.appiconset/Contents.json
rename to ios/Experimental.xcassets/AppIcon.appiconset/Contents.json
diff --git a/ios/Experimental.xcassets/Contents.json b/ios/Experimental.xcassets/Contents.json
new file mode 100644
index 0000000000..73c00596a7
--- /dev/null
+++ b/ios/Experimental.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/logo.imageset/Contents.json b/ios/Experimental.xcassets/Launch Screen Icon.imageset/Contents.json
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/logo.imageset/Contents.json
rename to ios/Experimental.xcassets/Launch Screen Icon.imageset/Contents.json
diff --git a/ios/RocketChatRN/Images.xcassets/Launch Screen Icon.imageset/icon.png b/ios/Experimental.xcassets/Launch Screen Icon.imageset/icon.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Launch Screen Icon.imageset/icon.png
rename to ios/Experimental.xcassets/Launch Screen Icon.imageset/icon.png
diff --git a/ios/RocketChatRN/Images.xcassets/Launch Screen Icon.imageset/icon@2x.png b/ios/Experimental.xcassets/Launch Screen Icon.imageset/icon@2x.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Launch Screen Icon.imageset/icon@2x.png
rename to ios/Experimental.xcassets/Launch Screen Icon.imageset/icon@2x.png
diff --git a/ios/RocketChatRN/Images.xcassets/Launch Screen Icon.imageset/icon@3x.png b/ios/Experimental.xcassets/Launch Screen Icon.imageset/icon@3x.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Launch Screen Icon.imageset/icon@3x.png
rename to ios/Experimental.xcassets/Launch Screen Icon.imageset/icon@3x.png
diff --git a/ios/Experimental.xcassets/splashBackgroundColor.colorset/Contents.json b/ios/Experimental.xcassets/splashBackgroundColor.colorset/Contents.json
new file mode 100644
index 0000000000..76ebb74fc1
--- /dev/null
+++ b/ios/Experimental.xcassets/splashBackgroundColor.colorset/Contents.json
@@ -0,0 +1,59 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "extended-srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.945",
+ "green" : "0.937",
+ "red" : "0.933"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "light"
+ }
+ ],
+ "color" : {
+ "color-space" : "extended-srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.961",
+ "green" : "0.455",
+ "red" : "0.114"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.000",
+ "green" : "0.000",
+ "red" : "0.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "localizable" : true
+ }
+}
diff --git a/ios/LaunchScreen.storyboard b/ios/LaunchScreen.storyboard
index 4cf51f288b..f6ec6adeb5 100644
--- a/ios/LaunchScreen.storyboard
+++ b/ios/LaunchScreen.storyboard
@@ -1,9 +1,9 @@
-
+
-
+
@@ -24,6 +24,7 @@
+
@@ -32,7 +33,6 @@
-
@@ -43,7 +43,7 @@
-
+
diff --git a/ios/NotificationService/Info.plist b/ios/NotificationService/Info.plist
index 5705853e51..d2f1244d4b 100644
--- a/ios/NotificationService/Info.plist
+++ b/ios/NotificationService/Info.plist
@@ -2,8 +2,6 @@
- KeychainGroup
- $(AppIdentifierPrefix)chat.rocket.reactnative
AppGroup
group.ios.chat.rocket
CFBundleDevelopmentRegion
@@ -24,6 +22,8 @@
$(MARKETING_VERSION)
CFBundleVersion
1
+ KeychainGroup
+ $(AppIdentifierPrefix)chat.rocket.reactnative
NSExtension
NSExtensionPointIdentifier
diff --git a/ios/Official.xcassets/AppIcon.appiconset/100.png b/ios/Official.xcassets/AppIcon.appiconset/100.png
new file mode 100644
index 0000000000..7f24a26797
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/100.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/1024.png b/ios/Official.xcassets/AppIcon.appiconset/1024.png
new file mode 100644
index 0000000000..e737a61ea6
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/1024.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/114.png b/ios/Official.xcassets/AppIcon.appiconset/114.png
new file mode 100644
index 0000000000..7b5b7e31f0
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/114.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/120.png b/ios/Official.xcassets/AppIcon.appiconset/120.png
new file mode 100644
index 0000000000..2db6152265
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/120.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/144.png b/ios/Official.xcassets/AppIcon.appiconset/144.png
new file mode 100644
index 0000000000..9e4461b531
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/144.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/152.png b/ios/Official.xcassets/AppIcon.appiconset/152.png
new file mode 100644
index 0000000000..ece9c43b4e
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/152.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/167.png b/ios/Official.xcassets/AppIcon.appiconset/167.png
new file mode 100644
index 0000000000..c10c5fae9a
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/167.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/180.png b/ios/Official.xcassets/AppIcon.appiconset/180.png
new file mode 100644
index 0000000000..e883fea311
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/180.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/20.png b/ios/Official.xcassets/AppIcon.appiconset/20.png
new file mode 100644
index 0000000000..580f31abf6
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/20.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/29.png b/ios/Official.xcassets/AppIcon.appiconset/29.png
new file mode 100644
index 0000000000..075803b018
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/29.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/40.png b/ios/Official.xcassets/AppIcon.appiconset/40.png
new file mode 100644
index 0000000000..cc301e7db6
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/40.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/50.png b/ios/Official.xcassets/AppIcon.appiconset/50.png
new file mode 100644
index 0000000000..4b68ad4618
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/50.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/57.png b/ios/Official.xcassets/AppIcon.appiconset/57.png
new file mode 100644
index 0000000000..5af4cfb70a
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/57.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/58.png b/ios/Official.xcassets/AppIcon.appiconset/58.png
new file mode 100644
index 0000000000..e9c3392d48
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/58.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/60.png b/ios/Official.xcassets/AppIcon.appiconset/60.png
new file mode 100644
index 0000000000..57618b80da
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/60.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/72.png b/ios/Official.xcassets/AppIcon.appiconset/72.png
new file mode 100644
index 0000000000..b539994906
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/72.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/76.png b/ios/Official.xcassets/AppIcon.appiconset/76.png
new file mode 100644
index 0000000000..caef08f4d2
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/76.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/80.png b/ios/Official.xcassets/AppIcon.appiconset/80.png
new file mode 100644
index 0000000000..1b956d3da4
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/80.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/87.png b/ios/Official.xcassets/AppIcon.appiconset/87.png
new file mode 100644
index 0000000000..17381abce1
Binary files /dev/null and b/ios/Official.xcassets/AppIcon.appiconset/87.png differ
diff --git a/ios/Official.xcassets/AppIcon.appiconset/Contents.json b/ios/Official.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000000..4fdf88263a
--- /dev/null
+++ b/ios/Official.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,158 @@
+{
+ "images" : [
+ {
+ "filename" : "40.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "60.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "29.png",
+ "idiom" : "iphone",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "58.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "87.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "80.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "120.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "57.png",
+ "idiom" : "iphone",
+ "scale" : "1x",
+ "size" : "57x57"
+ },
+ {
+ "filename" : "114.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "57x57"
+ },
+ {
+ "filename" : "120.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "180.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "20.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "40.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "29.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "58.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "40.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "80.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "50.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "50x50"
+ },
+ {
+ "filename" : "100.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "50x50"
+ },
+ {
+ "filename" : "72.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "72x72"
+ },
+ {
+ "filename" : "144.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "72x72"
+ },
+ {
+ "filename" : "76.png",
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "152.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "filename" : "167.png",
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "filename" : "1024.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Official.xcassets/Contents.json b/ios/Official.xcassets/Contents.json
new file mode 100644
index 0000000000..73c00596a7
--- /dev/null
+++ b/ios/Official.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Official.xcassets/Launch Screen Icon.imageset/Contents.json b/ios/Official.xcassets/Launch Screen Icon.imageset/Contents.json
new file mode 100644
index 0000000000..a7e6775761
--- /dev/null
+++ b/ios/Official.xcassets/Launch Screen Icon.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "Icon.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "Icon@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "Icon@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Official.xcassets/Launch Screen Icon.imageset/Icon.png b/ios/Official.xcassets/Launch Screen Icon.imageset/Icon.png
new file mode 100644
index 0000000000..624302b848
Binary files /dev/null and b/ios/Official.xcassets/Launch Screen Icon.imageset/Icon.png differ
diff --git a/ios/Official.xcassets/Launch Screen Icon.imageset/Icon@2x.png b/ios/Official.xcassets/Launch Screen Icon.imageset/Icon@2x.png
new file mode 100644
index 0000000000..46b4dedd4d
Binary files /dev/null and b/ios/Official.xcassets/Launch Screen Icon.imageset/Icon@2x.png differ
diff --git a/ios/Official.xcassets/Launch Screen Icon.imageset/Icon@3x.png b/ios/Official.xcassets/Launch Screen Icon.imageset/Icon@3x.png
new file mode 100644
index 0000000000..9ff1d336fb
Binary files /dev/null and b/ios/Official.xcassets/Launch Screen Icon.imageset/Icon@3x.png differ
diff --git a/ios/RocketChatRN/Images.xcassets/splashBackgroundColor.colorset/Contents.json b/ios/Official.xcassets/splashBackgroundColor.colorset/Contents.json
similarity index 85%
rename from ios/RocketChatRN/Images.xcassets/splashBackgroundColor.colorset/Contents.json
rename to ios/Official.xcassets/splashBackgroundColor.colorset/Contents.json
index 0e90a95d4c..07fb2c4e4e 100644
--- a/ios/RocketChatRN/Images.xcassets/splashBackgroundColor.colorset/Contents.json
+++ b/ios/Official.xcassets/splashBackgroundColor.colorset/Contents.json
@@ -23,9 +23,9 @@
"color-space" : "extended-srgb",
"components" : {
"alpha" : "1.000",
- "blue" : "0xF5",
- "green" : "0x74",
- "red" : "0x1D"
+ "blue" : "0x5C",
+ "green" : "0x45",
+ "red" : "0xF5"
}
},
"idiom" : "universal"
@@ -41,9 +41,9 @@
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
- "blue" : "0x00",
- "green" : "0x00",
- "red" : "0x00"
+ "blue" : "0.000",
+ "green" : "0.000",
+ "red" : "0.000"
}
},
"idiom" : "universal"
diff --git a/ios/RocketChatRN.xcodeproj/project.pbxproj b/ios/RocketChatRN.xcodeproj/project.pbxproj
index b9004681a9..2b0d270082 100644
--- a/ios/RocketChatRN.xcodeproj/project.pbxproj
+++ b/ios/RocketChatRN.xcodeproj/project.pbxproj
@@ -87,10 +87,58 @@
50046CB6BDA69B9232CF66D9 /* libPods-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C235DC7B31A4D1578EDEF219 /* libPods-RocketChatRN.a */; };
7A006F14229C83B600803143 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7A006F13229C83B600803143 /* GoogleService-Info.plist */; };
7A0D62D2242AB187006D5C06 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */; };
+ 7A14FCED257FEB3A005BDCD4 /* Experimental.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */; };
+ 7A14FCF4257FEB59005BDCD4 /* Official.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7A14FCF3257FEB59005BDCD4 /* Official.xcassets */; };
7A3268F624F04FFE0050E241 /* custom.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7A3268F524F04FFE0050E241 /* custom.ttf */; };
7A3268F724F04FFE0050E241 /* custom.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7A3268F524F04FFE0050E241 /* custom.ttf */; };
- 7AAA749E23043B1E00F1ADE9 /* Watermelon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AAA749D23043B1E00F1ADE9 /* Watermelon.swift */; };
- 7AC99C1C2339361F0000A0CB /* Watermelon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AAA749D23043B1E00F1ADE9 /* Watermelon.swift */; };
+ 7AAB3E15257E6A6E00707CF6 /* Sender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C8282511304100FEF824 /* Sender.swift */; };
+ 7AAB3E16257E6A6E00707CF6 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E680ED82512990700C9257A /* Request.swift */; };
+ 7AAB3E17257E6A6E00707CF6 /* ReplyNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ED00BB02513E04400A1331F /* ReplyNotification.swift */; };
+ 7AAB3E18257E6A6E00707CF6 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EB8EF712510F1EE00F352B7 /* Storage.swift */; };
+ 7AAB3E19257E6A6E00707CF6 /* Push.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2F61652512958900871711 /* Push.swift */; };
+ 7AAB3E1A257E6A6E00707CF6 /* RoomType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0426E5251A5467008F022C /* RoomType.swift */; };
+ 7AAB3E1B257E6A6E00707CF6 /* MessageType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E51D961251263CD00DC95DE /* MessageType.swift */; };
+ 7AAB3E1C257E6A6E00707CF6 /* PushResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C8202511301400FEF824 /* PushResponse.swift */; };
+ 7AAB3E1D257E6A6E00707CF6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
+ 7AAB3E1E257E6A6E00707CF6 /* Encryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EF5FBD0250C109E00614FEA /* Encryption.swift */; };
+ 7AAB3E1F257E6A6E00707CF6 /* RocketChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E470E822513A71E00E3DD1D /* RocketChat.swift */; };
+ 7AAB3E20257E6A6E00707CF6 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2F61632512955D00871711 /* HTTPMethod.swift */; };
+ 7AAB3E21257E6A6E00707CF6 /* Payload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C8262511303900FEF824 /* Payload.swift */; };
+ 7AAB3E23257E6A6E00707CF6 /* Data+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E598AE625150660002BDFBD /* Data+Extensions.swift */; };
+ 7AAB3E24257E6A6E00707CF6 /* Date+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E598AE32515057D002BDFBD /* Date+Extensions.swift */; };
+ 7AAB3E25257E6A6E00707CF6 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E1C2F7F250FCB69005DCE7D /* Database.swift */; };
+ 7AAB3E26257E6A6E00707CF6 /* String+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E67380324DC529B0009E081 /* String+Extensions.swift */; };
+ 7AAB3E27257E6A6E00707CF6 /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C8242511303100FEF824 /* Notification.swift */; };
+ 7AAB3E28257E6A6E00707CF6 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2F615A25128F9A00871711 /* API.swift */; };
+ 7AAB3E29257E6A6E00707CF6 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2F615C25128FA300871711 /* Response.swift */; };
+ 7AAB3E2A257E6A6E00707CF6 /* AppGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E068D0024FD2E0500A0FFC1 /* AppGroup.m */; };
+ 7AAB3E2B257E6A6E00707CF6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
+ 7AAB3E2C257E6A6E00707CF6 /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C81B2511208400FEF824 /* URL+Extensions.swift */; };
+ 7AAB3E2D257E6A6E00707CF6 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E068CFD24FD2DC700A0FFC1 /* AppGroup.swift */; };
+ 7AAB3E2E257E6A6E00707CF6 /* RoomKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C82C2511337700FEF824 /* RoomKey.swift */; };
+ 7AAB3E2F257E6A6E00707CF6 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C82A2511335A00FEF824 /* Message.swift */; };
+ 7AAB3E30257E6A6E00707CF6 /* NotificationType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E51D964251263D600DC95DE /* NotificationType.swift */; };
+ 7AAB3E31257E6A6E00707CF6 /* SendMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E598AE825151A63002BDFBD /* SendMessage.swift */; };
+ 7AAB3E33257E6A6E00707CF6 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B37C79D9BD0742CE936B6982 /* libc++.tbd */; };
+ 7AAB3E34257E6A6E00707CF6 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA8192326CD5100E22452 /* libsqlite3.tbd */; };
+ 7AAB3E35257E6A6E00707CF6 /* libc.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA8172326CD4B00E22452 /* libc.tbd */; };
+ 7AAB3E36257E6A6E00707CF6 /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA8152326CD4500E22452 /* VideoToolbox.framework */; };
+ 7AAB3E37257E6A6E00707CF6 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA8132326CD3E00E22452 /* CoreVideo.framework */; };
+ 7AAB3E38257E6A6E00707CF6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA8112326CD3900E22452 /* CoreAudio.framework */; };
+ 7AAB3E39257E6A6E00707CF6 /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA80F2326CD3300E22452 /* GLKit.framework */; };
+ 7AAB3E3A257E6A6E00707CF6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA80D2326CD2F00E22452 /* CoreGraphics.framework */; };
+ 7AAB3E3B257E6A6E00707CF6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA80B2326CD2800E22452 /* AudioToolbox.framework */; };
+ 7AAB3E3C257E6A6E00707CF6 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1EA8092326CD2200E22452 /* AVFoundation.framework */; };
+ 7AAB3E3D257E6A6E00707CF6 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7ACD4853222860DE00442C55 /* JavaScriptCore.framework */; };
+ 7AAB3E3E257E6A6E00707CF6 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 06BB44DD4855498082A744AD /* libz.tbd */; };
+ 7AAB3E3F257E6A6E00707CF6 /* libWatermelonDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BA7E862283664608B3894E34 /* libWatermelonDB.a */; };
+ 7AAB3E40257E6A6E00707CF6 /* libPods-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C235DC7B31A4D1578EDEF219 /* libPods-RocketChatRN.a */; };
+ 7AAB3E42257E6A6E00707CF6 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
+ 7AAB3E43257E6A6E00707CF6 /* custom.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7A3268F524F04FFE0050E241 /* custom.ttf */; };
+ 7AAB3E44257E6A6E00707CF6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7A006F13229C83B600803143 /* GoogleService-Info.plist */; };
+ 7AAB3E45257E6A6E00707CF6 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */; };
+ 7AAB3E49257E6A6E00707CF6 /* ShareRocketChatRN.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1EC6ACB022CB9FC300A41C61 /* ShareRocketChatRN.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ 7AAB3E4A257E6A6E00707CF6 /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1EFEB5952493B6640072EDC0 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
7ACD4897222860DE00442C55 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7ACD4853222860DE00442C55 /* JavaScriptCore.framework */; };
DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BA7E862283664608B3894E34 /* libWatermelonDB.a */; };
/* End PBXBuildFile section */
@@ -117,6 +165,20 @@
remoteGlobalIDString = 6E660D5E213BCCD300189354;
remoteInfo = WatermelonDB;
};
+ 7AAB3E0F257E6A6E00707CF6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 1EC6ACAF22CB9FC300A41C61;
+ remoteInfo = ShareRocketChatRN;
+ };
+ 7AAB3E11257E6A6E00707CF6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 1EFEB5942493B6640072EDC0;
+ remoteInfo = NotificationService;
+ };
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -132,6 +194,18 @@
name = "Embed App Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
+ 7AAB3E48257E6A6E00707CF6 /* Embed App Extensions */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 13;
+ files = (
+ 7AAB3E49257E6A6E00707CF6 /* ShareRocketChatRN.appex in Embed App Extensions */,
+ 7AAB3E4A257E6A6E00707CF6 /* NotificationService.appex in Embed App Extensions */,
+ );
+ name = "Embed App Extensions";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
@@ -139,7 +213,7 @@
037C33B0D9A54FB4CB670FB7 /* Pods-ShareRocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShareRocketChatRN.release.xcconfig"; path = "Pods/Target Support Files/Pods-ShareRocketChatRN/Pods-ShareRocketChatRN.release.xcconfig"; sourceTree = ""; };
0383633C4523666C176CAA52 /* Pods-ShareRocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShareRocketChatRN.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ShareRocketChatRN/Pods-ShareRocketChatRN.debug.xcconfig"; sourceTree = ""; };
06BB44DD4855498082A744AD /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
- 13B07F961A680F5B00A75B9A /* RocketChatRN.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RocketChatRN.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 13B07F961A680F5B00A75B9A /* Rocket.Chat Experimental.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Rocket.Chat Experimental.app"; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = RocketChatRN/AppDelegate.h; sourceTree = ""; };
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = RocketChatRN/AppDelegate.m; sourceTree = ""; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RocketChatRN/Images.xcassets; sourceTree = ""; };
@@ -197,9 +271,11 @@
66D6B1D0567051BE541450C9 /* Pods-RocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RocketChatRN.release.xcconfig"; path = "Pods/Target Support Files/Pods-RocketChatRN/Pods-RocketChatRN.release.xcconfig"; sourceTree = ""; };
7A006F13229C83B600803143 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; };
+ 7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Experimental.xcassets; sourceTree = ""; };
+ 7A14FCF3257FEB59005BDCD4 /* Official.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Official.xcassets; sourceTree = ""; };
7A3268F524F04FFE0050E241 /* custom.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = custom.ttf; sourceTree = ""; };
7AAA749C23043B1D00F1ADE9 /* RocketChatRN-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RocketChatRN-Bridging-Header.h"; sourceTree = ""; };
- 7AAA749D23043B1E00F1ADE9 /* Watermelon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Watermelon.swift; sourceTree = ""; };
+ 7AAB3E52257E6A6E00707CF6 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; };
7ACD4853222860DE00442C55 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
81411D280138EF5344596C2F /* libPods-NotificationService.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-NotificationService.a"; sourceTree = BUILT_PRODUCTS_DIR; };
9730F55A254AC78BC5361659 /* Pods-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.release.xcconfig"; path = "Pods/Target Support Files/Pods-NotificationService/Pods-NotificationService.release.xcconfig"; sourceTree = ""; };
@@ -251,6 +327,27 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 7AAB3E32257E6A6E00707CF6 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7AAB3E33257E6A6E00707CF6 /* libc++.tbd in Frameworks */,
+ 7AAB3E34257E6A6E00707CF6 /* libsqlite3.tbd in Frameworks */,
+ 7AAB3E35257E6A6E00707CF6 /* libc.tbd in Frameworks */,
+ 7AAB3E36257E6A6E00707CF6 /* VideoToolbox.framework in Frameworks */,
+ 7AAB3E37257E6A6E00707CF6 /* CoreVideo.framework in Frameworks */,
+ 7AAB3E38257E6A6E00707CF6 /* CoreAudio.framework in Frameworks */,
+ 7AAB3E39257E6A6E00707CF6 /* GLKit.framework in Frameworks */,
+ 7AAB3E3A257E6A6E00707CF6 /* CoreGraphics.framework in Frameworks */,
+ 7AAB3E3B257E6A6E00707CF6 /* AudioToolbox.framework in Frameworks */,
+ 7AAB3E3C257E6A6E00707CF6 /* AVFoundation.framework in Frameworks */,
+ 7AAB3E3D257E6A6E00707CF6 /* JavaScriptCore.framework in Frameworks */,
+ 7AAB3E3E257E6A6E00707CF6 /* libz.tbd in Frameworks */,
+ 7AAB3E3F257E6A6E00707CF6 /* libWatermelonDB.a in Frameworks */,
+ 7AAB3E40257E6A6E00707CF6 /* libPods-RocketChatRN.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -263,9 +360,10 @@
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
13B07FB01A68108700A75B9A /* AppDelegate.m */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
+ 7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */,
+ 7A14FCF3257FEB59005BDCD4 /* Official.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
13B07FB71A68108700A75B9A /* main.m */,
- 7AAA749D23043B1E00F1ADE9 /* Watermelon.swift */,
7AAA749C23043B1D00F1ADE9 /* RocketChatRN-Bridging-Header.h */,
7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */,
1ED00BB02513E04400A1331F /* ReplyNotification.swift */,
@@ -426,9 +524,10 @@
83CBBA001A601CBA00E9B192 /* Products */ = {
isa = PBXGroup;
children = (
- 13B07F961A680F5B00A75B9A /* RocketChatRN.app */,
+ 13B07F961A680F5B00A75B9A /* Rocket.Chat Experimental.app */,
1EC6ACB022CB9FC300A41C61 /* ShareRocketChatRN.appex */,
1EFEB5952493B6640072EDC0 /* NotificationService.appex */,
+ 7AAB3E52257E6A6E00707CF6 /* Rocket.Chat.app */,
);
name = Products;
sourceTree = "";
@@ -499,7 +598,7 @@
);
name = RocketChatRN;
productName = "Hello World";
- productReference = 13B07F961A680F5B00A75B9A /* RocketChatRN.app */;
+ productReference = 13B07F961A680F5B00A75B9A /* Rocket.Chat Experimental.app */;
productType = "com.apple.product-type.application";
};
1EC6ACAF22CB9FC300A41C61 /* ShareRocketChatRN */ = {
@@ -545,6 +644,34 @@
productReference = 1EFEB5952493B6640072EDC0 /* NotificationService.appex */;
productType = "com.apple.product-type.app-extension";
};
+ 7AAB3E0D257E6A6E00707CF6 /* Rocket.Chat */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 7AAB3E4F257E6A6E00707CF6 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */;
+ buildPhases = (
+ 7AAB3E12257E6A6E00707CF6 /* [CP] Check Pods Manifest.lock */,
+ 7AAB3E13257E6A6E00707CF6 /* Start Packager */,
+ 7AAB3E14257E6A6E00707CF6 /* Sources */,
+ 7AAB3E32257E6A6E00707CF6 /* Frameworks */,
+ 7AAB3E41257E6A6E00707CF6 /* Resources */,
+ 7AAB3E46257E6A6E00707CF6 /* Bundle React Native code and images */,
+ 7AAB3E47257E6A6E00707CF6 /* [CP] Copy Pods Resources */,
+ 7AAB3E48257E6A6E00707CF6 /* Embed App Extensions */,
+ 7AAB3E4B257E6A6E00707CF6 /* ShellScript */,
+ 7AAB3E4C257E6A6E00707CF6 /* [CP] Embed Pods Frameworks */,
+ 7AAB3E4D257E6A6E00707CF6 /* [CP-User] [RNFB] Core Configuration */,
+ 7AAB3E4E257E6A6E00707CF6 /* [CP-User] [RNFB] Crashlytics Configuration */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 7AAB3E0E257E6A6E00707CF6 /* PBXTargetDependency */,
+ 7AAB3E10257E6A6E00707CF6 /* PBXTargetDependency */,
+ );
+ name = Rocket.Chat;
+ productName = "Hello World";
+ productReference = 7AAB3E52257E6A6E00707CF6 /* Rocket.Chat.app */;
+ productType = "com.apple.product-type.application";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -590,6 +717,10 @@
DevelopmentTeam = S6UPZG7ZR3;
ProvisioningStyle = Manual;
};
+ 7AAB3E0D257E6A6E00707CF6 = {
+ DevelopmentTeam = S6UPZG7ZR3;
+ ProvisioningStyle = Manual;
+ };
};
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "RocketChatRN" */;
@@ -615,6 +746,7 @@
13B07F861A680F5B00A75B9A /* RocketChatRN */,
1EC6ACAF22CB9FC300A41C61 /* ShareRocketChatRN */,
1EFEB5942493B6640072EDC0 /* NotificationService */,
+ 7AAB3E0D257E6A6E00707CF6 /* Rocket.Chat */,
);
};
/* End PBXProject section */
@@ -636,6 +768,7 @@
files = (
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
7A3268F624F04FFE0050E241 /* custom.ttf in Resources */,
+ 7A14FCED257FEB3A005BDCD4 /* Experimental.xcassets in Resources */,
7A006F14229C83B600803143 /* GoogleService-Info.plist in Resources */,
7A0D62D2242AB187006D5C06 /* LaunchScreen.storyboard in Resources */,
);
@@ -659,6 +792,18 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 7AAB3E41257E6A6E00707CF6 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7A14FCF4257FEB59005BDCD4 /* Official.xcassets in Resources */,
+ 7AAB3E42257E6A6E00707CF6 /* Images.xcassets in Resources */,
+ 7AAB3E43257E6A6E00707CF6 /* custom.ttf in Resources */,
+ 7AAB3E44257E6A6E00707CF6 /* GoogleService-Info.plist in Resources */,
+ 7AAB3E45257E6A6E00707CF6 /* LaunchScreen.storyboard in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
@@ -868,6 +1013,167 @@
shellPath = /bin/sh;
shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
};
+ 7AAB3E12257E6A6E00707CF6 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-RocketChatRN-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 7AAB3E13257E6A6E00707CF6 /* Start Packager */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Start Packager";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
+ };
+ 7AAB3E46257E6A6E00707CF6 /* Bundle React Native code and images */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 12;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Bundle React Native code and images";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
+ };
+ 7AAB3E47257E6A6E00707CF6 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-RocketChatRN/Pods-RocketChatRN-resources.sh",
+ "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RocketChatRN/Pods-RocketChatRN-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 7AAB3E4B257E6A6E00707CF6 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "echo \"Target architectures: $ARCHS\"\n\nAPP_PATH=\"${TARGET_BUILD_DIR}/${WRAPPER_NAME}\"\n\nfind \"$APP_PATH\" -name '*.framework' -type d | while read -r FRAMEWORK\ndo\nFRAMEWORK_EXECUTABLE_NAME=$(defaults read \"$FRAMEWORK/Info.plist\" CFBundleExecutable)\nFRAMEWORK_EXECUTABLE_PATH=\"$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME\"\necho \"Executable is $FRAMEWORK_EXECUTABLE_PATH\"\necho $(lipo -info \"$FRAMEWORK_EXECUTABLE_PATH\")\n\nFRAMEWORK_TMP_PATH=\"$FRAMEWORK_EXECUTABLE_PATH-tmp\"\n\n# remove simulator's archs if location is not simulator's directory\ncase \"${TARGET_BUILD_DIR}\" in\n*\"iphonesimulator\")\necho \"No need to remove archs\"\n;;\n*)\nif $(lipo \"$FRAMEWORK_EXECUTABLE_PATH\" -verify_arch \"i386\") ; then\nlipo -output \"$FRAMEWORK_TMP_PATH\" -remove \"i386\" \"$FRAMEWORK_EXECUTABLE_PATH\"\necho \"i386 architecture removed\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_TMP_PATH\" \"$FRAMEWORK_EXECUTABLE_PATH\"\nfi\nif $(lipo \"$FRAMEWORK_EXECUTABLE_PATH\" -verify_arch \"x86_64\") ; then\nlipo -output \"$FRAMEWORK_TMP_PATH\" -remove \"x86_64\" \"$FRAMEWORK_EXECUTABLE_PATH\"\necho \"x86_64 architecture removed\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_TMP_PATH\" \"$FRAMEWORK_EXECUTABLE_PATH\"\nfi\n;;\nesac\n\necho \"Completed for executable $FRAMEWORK_EXECUTABLE_PATH\"\necho $\n\ndone\n";
+ };
+ 7AAB3E4C257E6A6E00707CF6 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-RocketChatRN/Pods-RocketChatRN-frameworks.sh",
+ "${PODS_ROOT}/JitsiMeetSDK/Frameworks/JitsiMeet.framework",
+ "${PODS_ROOT}/JitsiMeetSDK/Frameworks/WebRTC.framework",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeet.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RocketChatRN/Pods-RocketChatRN-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 7AAB3E4D257E6A6E00707CF6 /* [CP-User] [RNFB] Core Configuration */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ name = "[CP-User] [RNFB] Core Configuration";
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n _JSON_OUTPUT_BASE64=$(python -c 'import json,sys,base64;print(base64.b64encode(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"').read())['${_JSON_ROOT}'])))' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes usful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\n\n # config.admob_delay_app_measurement_init\n _ADMOB_DELAY_APP_MEASUREMENT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"admob_delay_app_measurement_init\")\n if [[ $_ADMOB_DELAY_APP_MEASUREMENT == \"true\" ]]; then\n _PLIST_ENTRY_KEYS+=(\"GADDelayAppMeasurementInit\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"YES\")\n fi\n\n # config.admob_ios_app_id\n _ADMOB_IOS_APP_ID=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"admob_ios_app_id\")\n if [[ $_ADMOB_IOS_APP_ID ]]; then\n _PLIST_ENTRY_KEYS+=(\"GADApplicationIdentifier\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_ADMOB_IOS_APP_ID\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally \n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n\n";
+ };
+ 7AAB3E4E257E6A6E00707CF6 /* [CP-User] [RNFB] Crashlytics Configuration */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ name = "[CP-User] [RNFB] Crashlytics Configuration";
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n";
+ };
9558AC195A3506BB8472CE99 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -1052,7 +1358,6 @@
1E76CBC825152C070067298C /* RocketChat.swift in Sources */,
1E76CBD725152C840067298C /* HTTPMethod.swift in Sources */,
1E76CBC725152BFF0067298C /* Payload.swift in Sources */,
- 7AAA749E23043B1E00F1ADE9 /* Watermelon.swift in Sources */,
1E76CBD225152C730067298C /* Data+Extensions.swift in Sources */,
1E76CBD125152C710067298C /* Date+Extensions.swift in Sources */,
1E76CBD425152C790067298C /* Database.swift in Sources */,
@@ -1077,7 +1382,6 @@
files = (
1EC6ACF622CBA01500A41C61 /* ShareRocketChatRN.m in Sources */,
1E068CFF24FD2DC700A0FFC1 /* AppGroup.swift in Sources */,
- 7AC99C1C2339361F0000A0CB /* Watermelon.swift in Sources */,
1E068D0224FD2E0500A0FFC1 /* AppGroup.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -1113,6 +1417,41 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 7AAB3E14257E6A6E00707CF6 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7AAB3E15257E6A6E00707CF6 /* Sender.swift in Sources */,
+ 7AAB3E16257E6A6E00707CF6 /* Request.swift in Sources */,
+ 7AAB3E17257E6A6E00707CF6 /* ReplyNotification.swift in Sources */,
+ 7AAB3E18257E6A6E00707CF6 /* Storage.swift in Sources */,
+ 7AAB3E19257E6A6E00707CF6 /* Push.swift in Sources */,
+ 7AAB3E1A257E6A6E00707CF6 /* RoomType.swift in Sources */,
+ 7AAB3E1B257E6A6E00707CF6 /* MessageType.swift in Sources */,
+ 7AAB3E1C257E6A6E00707CF6 /* PushResponse.swift in Sources */,
+ 7AAB3E1D257E6A6E00707CF6 /* AppDelegate.m in Sources */,
+ 7AAB3E1E257E6A6E00707CF6 /* Encryption.swift in Sources */,
+ 7AAB3E1F257E6A6E00707CF6 /* RocketChat.swift in Sources */,
+ 7AAB3E20257E6A6E00707CF6 /* HTTPMethod.swift in Sources */,
+ 7AAB3E21257E6A6E00707CF6 /* Payload.swift in Sources */,
+ 7AAB3E23257E6A6E00707CF6 /* Data+Extensions.swift in Sources */,
+ 7AAB3E24257E6A6E00707CF6 /* Date+Extensions.swift in Sources */,
+ 7AAB3E25257E6A6E00707CF6 /* Database.swift in Sources */,
+ 7AAB3E26257E6A6E00707CF6 /* String+Extensions.swift in Sources */,
+ 7AAB3E27257E6A6E00707CF6 /* Notification.swift in Sources */,
+ 7AAB3E28257E6A6E00707CF6 /* API.swift in Sources */,
+ 7AAB3E29257E6A6E00707CF6 /* Response.swift in Sources */,
+ 7AAB3E2A257E6A6E00707CF6 /* AppGroup.m in Sources */,
+ 7AAB3E2B257E6A6E00707CF6 /* main.m in Sources */,
+ 7AAB3E2C257E6A6E00707CF6 /* URL+Extensions.swift in Sources */,
+ 7AAB3E2D257E6A6E00707CF6 /* AppGroup.swift in Sources */,
+ 7AAB3E2E257E6A6E00707CF6 /* RoomKey.swift in Sources */,
+ 7AAB3E2F257E6A6E00707CF6 /* Message.swift in Sources */,
+ 7AAB3E30257E6A6E00707CF6 /* NotificationType.swift in Sources */,
+ 7AAB3E31257E6A6E00707CF6 /* SendMessage.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -1126,6 +1465,16 @@
target = 1EFEB5942493B6640072EDC0 /* NotificationService */;
targetProxy = 1EFEB59A2493B6640072EDC0 /* PBXContainerItemProxy */;
};
+ 7AAB3E0E257E6A6E00707CF6 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 1EC6ACAF22CB9FC300A41C61 /* ShareRocketChatRN */;
+ targetProxy = 7AAB3E0F257E6A6E00707CF6 /* PBXContainerItemProxy */;
+ };
+ 7AAB3E10257E6A6E00707CF6 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 1EFEB5942493B6640072EDC0 /* NotificationService */;
+ targetProxy = 7AAB3E11257E6A6E00707CF6 /* PBXContainerItemProxy */;
+ };
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
@@ -1153,7 +1502,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 100;
+ CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = S6UPZG7ZR3;
ENABLE_BITCODE = NO;
@@ -1183,9 +1532,10 @@
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative;
- PRODUCT_NAME = RocketChatRN;
- PROVISIONING_PROFILE_SPECIFIER = "chat.rocket.reactnative Development";
+ PRODUCT_NAME = "Rocket.Chat Experimental";
+ PROVISIONING_PROFILE_SPECIFIER = "match Development chat.rocket.reactnative";
SWIFT_OBJC_BRIDGING_HEADER = "RocketChatRN-Bridging-Header.h";
+ SWIFT_OBJC_INTERFACE_HEADER_NAME = "RocketChatRN-Swift.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -1206,7 +1556,7 @@
CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 100;
+ CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = S6UPZG7ZR3;
ENABLE_BITCODE = NO;
@@ -1236,9 +1586,10 @@
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative;
- PRODUCT_NAME = RocketChatRN;
+ PRODUCT_NAME = "Rocket.Chat Experimental";
PROVISIONING_PROFILE_SPECIFIER = "match AppStore chat.rocket.reactnative";
SWIFT_OBJC_BRIDGING_HEADER = "RocketChatRN-Bridging-Header.h";
+ SWIFT_OBJC_INTERFACE_HEADER_NAME = "RocketChatRN-Swift.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
@@ -1304,7 +1655,7 @@
);
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.ShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = "chat.rocket.reactnative.ShareExtension Development";
+ PROVISIONING_PROFILE_SPECIFIER = "match Development chat.rocket.reactnative.ShareExtension";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -1401,7 +1752,7 @@
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = "chat.rocket.reactnative.NotificationService Development";
+ PROVISIONING_PROFILE_SPECIFIER = "match Development chat.rocket.reactnative.NotificationService";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OBJC_BRIDGING_HEADER = "NotificationService/NotificationService-Bridging-Header.h";
@@ -1446,6 +1797,110 @@
};
name = Release;
};
+ 7AAB3E50257E6A6E00707CF6 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = ACD75701AFD1CB848CAB0CB3 /* Pods-RocketChatRN.debug.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+ APPLICATION_EXTENSION_API_ONLY = NO;
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
+ CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = RocketChatRN/RocketChatRN.entitlements;
+ CODE_SIGN_STYLE = Manual;
+ CURRENT_PROJECT_VERSION = 1;
+ DEAD_CODE_STRIPPING = NO;
+ DEVELOPMENT_TEAM = S6UPZG7ZR3;
+ ENABLE_BITCODE = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)",
+ );
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(SRCROOT)/../../../react-native/React/**",
+ "$(SRCROOT)/../node_modules/@nozbe/watermelondb/native/ios/WatermelonDB/SupportingFiles/**",
+ );
+ INFOPLIST_FILE = RocketChatRN/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
+ "$(inherited)",
+ );
+ OTHER_CFLAGS = (
+ "$(inherited)",
+ "-DFB_SONARKIT_ENABLED=1",
+ );
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "match Development chat.rocket.ios";
+ SWIFT_OBJC_BRIDGING_HEADER = "RocketChatRN-Bridging-Header.h";
+ SWIFT_OBJC_INTERFACE_HEADER_NAME = "RocketChatRN-Swift.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Debug;
+ };
+ 7AAB3E51257E6A6E00707CF6 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 66D6B1D0567051BE541450C9 /* Pods-RocketChatRN.release.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+ APPLICATION_EXTENSION_API_ONLY = NO;
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = "";
+ CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = RocketChatRN/RocketChatRN.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Distribution";
+ CODE_SIGN_STYLE = Manual;
+ CURRENT_PROJECT_VERSION = 1;
+ DEAD_CODE_STRIPPING = NO;
+ DEVELOPMENT_TEAM = S6UPZG7ZR3;
+ ENABLE_BITCODE = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)",
+ );
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(SRCROOT)/../../../react-native/React/**",
+ "$(SRCROOT)/../node_modules/@nozbe/watermelondb/native/ios/WatermelonDB/SupportingFiles/**",
+ );
+ INFOPLIST_FILE = RocketChatRN/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
+ "$(inherited)",
+ );
+ OTHER_CFLAGS = (
+ "$(inherited)",
+ "-DFB_SONARKIT_ENABLED=1",
+ );
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "match AppStore chat.rocket.ios";
+ SWIFT_OBJC_BRIDGING_HEADER = "RocketChatRN-Bridging-Header.h";
+ SWIFT_OBJC_INTERFACE_HEADER_NAME = "RocketChatRN-Swift.h";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Release;
+ };
83CBBA201A601CBA00E9B192 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -1578,6 +2033,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 7AAB3E4F257E6A6E00707CF6 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 7AAB3E50257E6A6E00707CF6 /* Debug */,
+ 7AAB3E51257E6A6E00707CF6 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "RocketChatRN" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/NotificationService.xcscheme b/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/NotificationService.xcscheme
index 3fd37eb6a7..0bd04dfdb1 100644
--- a/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/NotificationService.xcscheme
+++ b/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/NotificationService.xcscheme
@@ -30,7 +30,7 @@
@@ -66,7 +66,7 @@
@@ -84,7 +84,7 @@
diff --git a/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/RocketChat.xcscheme b/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/RocketChat.xcscheme
new file mode 100644
index 0000000000..5f4de25a32
--- /dev/null
+++ b/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/RocketChat.xcscheme
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/RocketChatRN.xcscheme b/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/RocketChatRN.xcscheme
index a0a55dc16e..dbff852ea5 100644
--- a/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/RocketChatRN.xcscheme
+++ b/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/RocketChatRN.xcscheme
@@ -29,7 +29,7 @@
@@ -59,7 +59,7 @@
@@ -92,7 +92,7 @@
@@ -126,7 +126,7 @@
diff --git a/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/ShareRocketChatRN.xcscheme b/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/ShareRocketChatRN.xcscheme
index 5771aad3f4..6db82c3370 100644
--- a/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/ShareRocketChatRN.xcscheme
+++ b/ios/RocketChatRN.xcodeproj/xcshareddata/xcschemes/ShareRocketChatRN.xcscheme
@@ -30,7 +30,7 @@
@@ -75,7 +75,7 @@
@@ -93,7 +93,7 @@
diff --git a/ios/RocketChatRN/Images.xcassets/Contents.json b/ios/RocketChatRN/Images.xcassets/Contents.json
index da4a164c91..73c00596a7 100644
--- a/ios/RocketChatRN/Images.xcassets/Contents.json
+++ b/ios/RocketChatRN/Images.xcassets/Contents.json
@@ -1,6 +1,6 @@
{
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
}
-}
\ No newline at end of file
+}
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/Contents.json b/ios/RocketChatRN/Images.xcassets/Icons/Contents.json
deleted file mode 100644
index da4a164c91..0000000000
--- a/ios/RocketChatRN/Images.xcassets/Icons/Contents.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_black.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/Icons/message_empty_black.imageset/Contents.json
deleted file mode 100644
index 8507827073..0000000000
--- a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_black.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "Message Empty Black Theme.pdf"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_dark.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/Icons/message_empty_dark.imageset/Contents.json
deleted file mode 100644
index d414a4c130..0000000000
--- a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_dark.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "Message Empty Dark Theme.pdf"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_light.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/Icons/message_empty_light.imageset/Contents.json
deleted file mode 100644
index d1ff3f57bb..0000000000
--- a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_light.imageset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "Message Empty.pdf"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/Contents.json
similarity index 88%
rename from ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/Contents.json
rename to ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/Contents.json
index eed49b1492..371d769fb8 100644
--- a/ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/Contents.json
+++ b/ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/Contents.json
@@ -1,23 +1,23 @@
{
"images" : [
{
- "idiom" : "universal",
"filename" : "audio_thumb.png",
+ "idiom" : "universal",
"scale" : "1x"
},
{
- "idiom" : "universal",
"filename" : "audio_thumb@2x.png",
+ "idiom" : "universal",
"scale" : "2x"
},
{
- "idiom" : "universal",
"filename" : "audio_thumb@3x.png",
+ "idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
}
-}
\ No newline at end of file
+}
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/audio_thumb.png b/ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/audio_thumb.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/audio_thumb.png
rename to ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/audio_thumb.png
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/audio_thumb@2x.png b/ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/audio_thumb@2x.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/audio_thumb@2x.png
rename to ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/audio_thumb@2x.png
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/audio_thumb@3x.png b/ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/audio_thumb@3x.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/audio_thumb.imageset/audio_thumb@3x.png
rename to ios/RocketChatRN/Images.xcassets/audio_thumb.imageset/audio_thumb@3x.png
diff --git a/ios/RocketChatRN/Images.xcassets/Launch Screen Icon.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/logo.imageset/Contents.json
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Launch Screen Icon.imageset/Contents.json
rename to ios/RocketChatRN/Images.xcassets/logo.imageset/Contents.json
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/logo.imageset/icon.png b/ios/RocketChatRN/Images.xcassets/logo.imageset/icon.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/logo.imageset/icon.png
rename to ios/RocketChatRN/Images.xcassets/logo.imageset/icon.png
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/logo.imageset/icon@2x.png b/ios/RocketChatRN/Images.xcassets/logo.imageset/icon@2x.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/logo.imageset/icon@2x.png
rename to ios/RocketChatRN/Images.xcassets/logo.imageset/icon@2x.png
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/logo.imageset/icon@3x.png b/ios/RocketChatRN/Images.xcassets/logo.imageset/icon@3x.png
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/logo.imageset/icon@3x.png
rename to ios/RocketChatRN/Images.xcassets/logo.imageset/icon@3x.png
diff --git a/ios/RocketChatRN/Images.xcassets/message_empty_black.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/message_empty_black.imageset/Contents.json
new file mode 100644
index 0000000000..dff142af84
--- /dev/null
+++ b/ios/RocketChatRN/Images.xcassets/message_empty_black.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "Message Empty Black Theme.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_black.imageset/Message Empty Black Theme.pdf b/ios/RocketChatRN/Images.xcassets/message_empty_black.imageset/Message Empty Black Theme.pdf
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/message_empty_black.imageset/Message Empty Black Theme.pdf
rename to ios/RocketChatRN/Images.xcassets/message_empty_black.imageset/Message Empty Black Theme.pdf
diff --git a/ios/RocketChatRN/Images.xcassets/message_empty_dark.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/message_empty_dark.imageset/Contents.json
new file mode 100644
index 0000000000..90d210a029
--- /dev/null
+++ b/ios/RocketChatRN/Images.xcassets/message_empty_dark.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "Message Empty Dark Theme.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_dark.imageset/Message Empty Dark Theme.pdf b/ios/RocketChatRN/Images.xcassets/message_empty_dark.imageset/Message Empty Dark Theme.pdf
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/message_empty_dark.imageset/Message Empty Dark Theme.pdf
rename to ios/RocketChatRN/Images.xcassets/message_empty_dark.imageset/Message Empty Dark Theme.pdf
diff --git a/ios/RocketChatRN/Images.xcassets/message_empty_light.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/message_empty_light.imageset/Contents.json
new file mode 100644
index 0000000000..defdb34c90
--- /dev/null
+++ b/ios/RocketChatRN/Images.xcassets/message_empty_light.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "Message Empty.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/RocketChatRN/Images.xcassets/Icons/message_empty_light.imageset/Message Empty.pdf b/ios/RocketChatRN/Images.xcassets/message_empty_light.imageset/Message Empty.pdf
similarity index 100%
rename from ios/RocketChatRN/Images.xcassets/Icons/message_empty_light.imageset/Message Empty.pdf
rename to ios/RocketChatRN/Images.xcassets/message_empty_light.imageset/Message Empty.pdf
diff --git a/ios/RocketChatRN/Info.plist b/ios/RocketChatRN/Info.plist
index e0cf557119..5fd2e90d11 100644
--- a/ios/RocketChatRN/Info.plist
+++ b/ios/RocketChatRN/Info.plist
@@ -2,14 +2,16 @@
- KeychainGroup
- $(AppIdentifierPrefix)chat.rocket.reactnative
+ IS_OFFICIAL
+
+ AppGroup
+ group.ios.chat.rocket
BugsnagAPIKey
CFBundleDevelopmentRegion
en
CFBundleDisplayName
- Rocket.Chat Experimental
+ $(PRODUCT_NAME)
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
@@ -38,9 +40,18 @@
CFBundleVersion
- 100
+ $(CURRENT_PROJECT_VERSION)
ITSAppUsesNonExemptEncryption
+ KeychainGroup
+ $(AppIdentifierPrefix)chat.rocket.reactnative
+ LSApplicationQueriesSchemes
+
+ googlechrome
+ googlechromes
+ firefox
+ brave
+
LSRequiresIPhoneOS
NSAppTransportSecurity
@@ -60,6 +71,8 @@
Take photos to share with other users
NSContactsUsageDescription
Allow $(PRODUCT_NAME) to access your contacts
+ NSFaceIDUsageDescription
+ Unlock the app with FaceID
NSLocationAlwaysAndWhenInUseUsageDescription
This permission stems from a library we use and will never be called anyway. If you see this, deny access
NSLocationAlwaysUsageDescription
@@ -76,8 +89,6 @@
Upload photos to share with other users or to change your avatar
NSRemindersUsageDescription
Allow $(PRODUCT_NAME) to access your reminders
- NSFaceIDUsageDescription
- Unlock the app with FaceID
UIAppFonts
custom.ttf
@@ -107,14 +118,5 @@
UIViewControllerBasedStatusBarAppearance
- LSApplicationQueriesSchemes
-
- googlechrome
- googlechromes
- firefox
- brave
-
- AppGroup
- group.ios.chat.rocket
diff --git a/ios/ShareRocketChatRN/Info.plist b/ios/ShareRocketChatRN/Info.plist
index 60da51fe8c..35791ba381 100644
--- a/ios/ShareRocketChatRN/Info.plist
+++ b/ios/ShareRocketChatRN/Info.plist
@@ -2,8 +2,8 @@
- KeychainGroup
- $(AppIdentifierPrefix)chat.rocket.reactnative
+ AppGroup
+ group.ios.chat.rocket
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleDisplayName
@@ -22,6 +22,8 @@
4.13.0
CFBundleVersion
1
+ KeychainGroup
+ $(AppIdentifierPrefix)chat.rocket.reactnative
NSAppTransportSecurity
NSAllowsArbitraryLoads
@@ -62,7 +64,5 @@
custom.ttf
- AppGroup
- group.ios.chat.rocket
diff --git a/ios/Shared/RocketChat/Database.swift b/ios/Shared/RocketChat/Database.swift
index 4dcf295d5b..7e7928506c 100644
--- a/ios/Shared/RocketChat/Database.swift
+++ b/ios/Shared/RocketChat/Database.swift
@@ -25,7 +25,8 @@ final class Database {
init(server: String) {
if let url = URL(string: server) {
if let domain = url.domain, let directory = directory {
- self.database = WatermelonDB.Database(path: "\(directory)/\(domain)-experimental.db")
+ let isOfficial = Bundle.main.object(forInfoDictionaryKey: "IS_OFFICIAL") as? Bool ?? false
+ self.database = WatermelonDB.Database(path: "\(directory)/\(domain)\(isOfficial ? "" : "-experimental").db")
}
}
}
diff --git a/ios/Watermelon.swift b/ios/Watermelon.swift
deleted file mode 100644
index 5008e23690..0000000000
--- a/ios/Watermelon.swift
+++ /dev/null
@@ -1,9 +0,0 @@
-//
-// Watermelon.swift
-// RocketChatRN
-//
-// Created by Diego Mello on 14/08/19.
-// Copyright © 2019 Facebook. All rights reserved.
-//
-
-import Foundation
diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile
index 456a8a2c0f..6b6dd11ccd 100644
--- a/ios/fastlane/Fastfile
+++ b/ios/fastlane/Fastfile
@@ -25,13 +25,8 @@ platform :ios do
)
end
- desc "Runs all the tests"
- lane :test do
- scan
- end
-
desc "Submit a new Beta Build to Apple TestFlight"
- lane :beta do
+ lane :beta do |options|
api_key = app_store_connect_api_key(
key_id: "F296L2294Y",
issuer_id: "69a6de8e-75cf-47e3-e053-5b8c7c11a4d1",
@@ -39,12 +34,14 @@ platform :ios do
in_house: false
)
pilot(
- ipa: 'ios/RocketChatRN.ipa',
+ ipa: 'ios/Rocket.Chat.ipa',
+ app_identifier: options[:official] ? 'chat.rocket.ios' : 'chat.rocket.reactnative',
skip_waiting_for_build_processing: true
)
+ upload_symbols_to_crashlytics(dsym_path: "./ios/Rocket.Chat.app.dSYM.zip")
end
- desc "Build App for release"
+ desc "Build Experimental app"
lane :release do
api_key = app_store_connect_api_key(
key_id: "F296L2294Y",
@@ -56,7 +53,11 @@ platform :ios do
get_provisioning_profile(app_identifier: "chat.rocket.reactnative.ShareExtension")
get_provisioning_profile(app_identifier: "chat.rocket.reactnative.NotificationService")
# pem(api_key: api_key) # still uses Spaceship http://docs.fastlane.tools/actions/pem/#how-does-it-work
- gym(scheme: "RocketChatRN", workspace: "RocketChatRN.xcworkspace")
+ gym(
+ scheme: "RocketChatRN",
+ workspace: "RocketChatRN.xcworkspace",
+ output_name: "Rocket.Chat"
+ )
end
desc "Build fork app"
@@ -64,6 +65,41 @@ platform :ios do
gym(scheme: "RocketChatRN", workspace: "RocketChatRN.xcworkspace", skip_codesigning: true, skip_archive: true)
end
+ desc "Build Official app"
+ lane :build_official do
+ sh "../../scripts/prepare_ios_official.sh"
+
+ match(
+ type: "appstore",
+ app_identifier: ["chat.rocket.ios", "chat.rocket.ios.NotificationService", "chat.rocket.ios.Rocket-Chat-ShareExtension"],
+ readonly: true,
+ output_path: './'
+ )
+
+ update_project_provisioning(
+ xcodeproj: 'RocketChatRN.xcodeproj',
+ profile: "AppStore_chat.rocket.ios.NotificationService.mobileprovision",
+ target_filter: "NotificationService",
+ build_configuration: 'Release',
+ code_signing_identity: 'iPhone Distribution'
+ )
+
+ update_project_provisioning(
+ xcodeproj: 'RocketChatRN.xcodeproj',
+ profile: "AppStore_chat.rocket.ios.Rocket-Chat-ShareExtension.mobileprovision",
+ target_filter: "ShareRocketChatRN",
+ build_configuration: 'Release',
+ code_signing_identity: 'iPhone Distribution'
+ )
+
+ gym(
+ scheme: "RocketChat",
+ workspace: "RocketChatRN.xcworkspace",
+ xcargs: "-allowProvisioningUpdates",
+ output_name: "Rocket.Chat"
+ )
+ end
+
after_all do |lane|
delete_keychain(name: ENV["MATCH_KEYCHAIN_NAME"])
end
diff --git a/ios/fastlane/README.md b/ios/fastlane/README.md
index 82c024be66..275f6ac1ec 100644
--- a/ios/fastlane/README.md
+++ b/ios/fastlane/README.md
@@ -16,11 +16,6 @@ or alternatively using `brew install fastlane`
# Available Actions
## iOS
-### ios test
-```
-fastlane ios test
-```
-Runs all the tests
### ios beta
```
fastlane ios beta
@@ -30,12 +25,17 @@ Submit a new Beta Build to Apple TestFlight
```
fastlane ios release
```
-Build App for release
-### ios build
+Build Experimental app
+### ios build_fork
+```
+fastlane ios build_fork
+```
+Build fork app
+### ios build_official
```
-fastlane ios build
+fastlane ios build_official
```
-Build App for development
+Build Official app
----
diff --git a/package.json b/package.json
index c8cafd9b61..6fc1fed654 100644
--- a/package.json
+++ b/package.json
@@ -190,7 +190,7 @@
"specs": "e2e/tests",
"configurations": {
"ios.sim.debug": {
- "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/RocketChatRN.app",
+ "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/Rocket.Chat Experimental.app",
"build": "xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"device": {
@@ -198,7 +198,7 @@
}
},
"ios.sim.release": {
- "binaryPath": "ios/build/Build/Products/Release-iphonesimulator/RocketChatRN.app",
+ "binaryPath": "ios/build/Build/Products/Release-iphonesimulator/Rocket.Chat Experimental.app",
"build": "xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Release -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"device": {
diff --git a/scripts/prepare_ios_official.sh b/scripts/prepare_ios_official.sh
new file mode 100755
index 0000000000..8750c1803f
--- /dev/null
+++ b/scripts/prepare_ios_official.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+sed -i '' \
+ 's/PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.ShareExtension;/PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios.Rocket-Chat-ShareExtension;/' \
+ ../RocketChatRN.xcodeproj/project.pbxproj
+
+sed -i '' \
+ 's/PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;/PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios.NotificationService;/' \
+ ../RocketChatRN.xcodeproj/project.pbxproj
\ No newline at end of file