diff --git a/.github/workflows/build_nightly.yml b/.github/workflows/build_nightly.yml new file mode 100644 index 0000000000..ebee9aa45a --- /dev/null +++ b/.github/workflows/build_nightly.yml @@ -0,0 +1,152 @@ +name: build_nightly + +on: + push: + branches: + - develop + workflow_dispatch: + inputs: + build_ios: + type: boolean + description: iOS + default: true + build_android: + type: boolean + description: Android + default: true + build_web: + type: boolean + description: Web + default: true + +defaults: + run: + working-directory: sample_app + +env: + FLUTTER_VERSION: "3.29.0" + FLUTTER_CHANNEL: stable + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build_and_deploy_ios: + runs-on: macos-latest + timeout-minutes: 40 + if: ${{ github.event_name == 'push' || inputs.build_ios == true }} + steps: + - name: Install Bot SSH Key + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }} + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: ${{ env.FLUTTER_CHANNEL }} + flutter-version: ${{ env.FLUTTER_VERSION }} + cache: true + + - name: Setup Ruby and Gems + uses: ruby/setup-ruby@v1 + with: + working-directory: sample_app/ios + bundler-cache: true + + - name: Install firebase-tools + run: npm install -g firebase-tools + + - name: Copy google service account + run: | + echo "${{ secrets.SAMPLE_FIREBASE_UPLOAD_CREDENTIALS }}" | base64 --decode | jq > ${{ github.workspace }}/sample_app/ios/firebase-service-account.json + + - name: Build and release + working-directory: sample_app/ios + env: + GOOGLE_APPLICATION_CREDENTIALS: "${{ github.workspace }}/sample_app/ios/firebase-service-account.json" + MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} + APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }} + run: | + bundle exec fastlane deploy_to_firebase + + build_and_deploy_android: + runs-on: ubuntu-latest + timeout-minutes: 15 + if: ${{ github.event_name == 'push' || inputs.build_android == true }} + steps: + - name: Install Bot SSH Key + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }} + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup Java + uses: actions/setup-java@v1 + with: + distribution: "zulu" + java-version: "17" + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: ${{ env.FLUTTER_CHANNEL }} + flutter-version: ${{ env.FLUTTER_VERSION }} + cache: true + + - name: Build + run: flutter build apk + + - name: Copy google service account + run: | + echo "${{ secrets.SAMPLE_FIREBASE_UPLOAD_CREDENTIALS }}" | base64 --decode | jq > ${{ github.workspace }}/sample_app/android/firebase-service-account.json + + - name: Deploy + uses: wzieba/Firebase-Distribution-Github-Action@v1 + with: + appId: ${{secrets.SAMPLE_FIREBASE_ANDROID_APPID}} + serviceCredentialsFile: "${{ github.workspace }}/sample_app/android/firebase-service-account.json" + groups: stream-testers + debug: true + file: "${{ github.workspace }}/sample_app/build/app/outputs/flutter-apk/app-release.apk" + + - name: Upload APK + uses: actions/upload-artifact@v4 + with: + name: android-stream-chat-v1 + path: "${{ github.workspace }}/sample_app/build/app/outputs/flutter-apk/app-release.apk" + + build_and_deploy_web: + runs-on: ubuntu-latest + timeout-minutes: 10 + if: ${{ github.event_name == 'push' || inputs.build_web == true }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: config git + run: | + git config --global user.email "$(git log --format='%ae' HEAD^!)" + git config --global user.name "$(git log --format='%an' HEAD^!)" + git fetch origin gh-pages:gh-pages + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: ${{ env.FLUTTER_CHANNEL }} + flutter-version: ${{ env.FLUTTER_VERSION }} + cache: true + + - name: Build and Deploy + uses: bluefireteam/flutter-gh-pages@v9 + with: + baseHref: /stream-chat-flutter/ + workingDir: sample_app + + diff --git a/.github/workflows/pr_title.yml b/.github/workflows/pr_title.yml index 8b200d5d8c..e9f188d367 100644 --- a/.github/workflows/pr_title.yml +++ b/.github/workflows/pr_title.yml @@ -26,6 +26,7 @@ jobs: doc repo localization + samples requireScope: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index c24b8110b1..a35227a8c1 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,7 @@ GeneratedPluginRegistrant.* **/android/gradlew.bat **/android/local.properties **/android/**/GeneratedPluginRegistrant.java +**/android/app/.cxx # iOS/XCode related **/ios/**/*.mode1v3 @@ -128,5 +129,6 @@ gradle-wrapper.jar !/pubspec.lock !**/example/web/sql-wasm.js !**/example/web/sql-wasm.wasm +!/sample_app/android/app/google-services.json !/sample_app/web/sql-wasm.js !/sample_app/web/sql-wasm.wasm \ No newline at end of file diff --git a/sample_app/Fastfile b/sample_app/Fastfile new file mode 100644 index 0000000000..0263840e38 --- /dev/null +++ b/sample_app/Fastfile @@ -0,0 +1,31 @@ +opt_out_usage + +# Have an easy way to get the root of the project +def root_path + Dir.pwd.sub(/.*\Kfastlane/, '').sub(/.*\Kandroid/, '').sub(/.*\Kios/, '').sub(/.*\K\/\//, '') +end + +# Have an easy way to run flutter tasks on the root of the project +lane :sh_on_root do |options| + Dir.chdir(root_path) { sh(options[:command]) } +end + +# Tasks to be reused on each platform flow +lane :fetch_dependencies do + sh_on_root(command: "flutter pub get --suppress-analytics") +end + +# Tasks to be reused on each platform flow +lane :build_autogenerated_code do + sh_on_root(command: "flutter pub run build_runner build --delete-conflicting-outputs") +end + +# Tasks to be reused on each platform flow +lane :lint do + sh_on_root(command: "flutter format --suppress-analytics --set-exit-if-changed -n lib/main.dart lib/src/ test/") +end + +# Tasks to be reused on each platform flow +lane :test do |options| + sh_on_root(command: "flutter test --no-pub --coverage --suppress-analytics") +end \ No newline at end of file diff --git a/sample_app/android/app/build.gradle b/sample_app/android/app/build.gradle index f19f37f25f..d4a1985222 100644 --- a/sample_app/android/app/build.gradle +++ b/sample_app/android/app/build.gradle @@ -24,7 +24,7 @@ if (flutterVersionName == null) { } android { - namespace "com.example.example" + namespace "io.getstream.chat.android.flutter.sample" compileSdkVersion 35 @@ -40,10 +40,9 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.example" + applicationId "io.getstream.chat.android.flutter.sample" minSdkVersion 23 - targetSdkVersion 34 + targetSdkVersion 35 versionCode flutterVersionCode.toInteger() versionName flutterVersionName multiDexEnabled true diff --git a/sample_app/android/app/google-services.json b/sample_app/android/app/google-services.json new file mode 100644 index 0000000000..13b6dba5c5 --- /dev/null +++ b/sample_app/android/app/google-services.json @@ -0,0 +1,603 @@ +{ + "project_info": { + "project_number": "674907137625", + "firebase_url": "https://stream-chat-internal.firebaseio.com", + "project_id": "stream-chat-internal", + "storage_bucket": "stream-chat-internal.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:e55b74fd5747e39ad7f348", + "android_client_info": { + "package_name": "com.example.example" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-2scfo9a5cs074dced5vhm712ej6hhtpm.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.example.example", + "certificate_hash": "84e6cb4b0fd5e03f18cc895f25771449543e5b0b" + } + }, + { + "client_id": "674907137625-c4p9d8pffjokeurnhlkkg0n7hlqhohrp.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.example.example", + "certificate_hash": "df0590804ff40703acf8b82d07ed2f8a21cd4cc8" + } + }, + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:5effa1cd0fef9003d7f348", + "android_client_info": { + "package_name": "com.sampleapp" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:07c76802bbfd5654d7f348", + "android_client_info": { + "package_name": "com.sampleapp.rnpushtest" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:c02fbdcc683148e1d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.android.compose.sample" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-70lqivg5sj9plf8cadf3mb9d4kqpjgg7.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.android.compose.sample", + "certificate_hash": "0df0d0349c0eb717eea90c0b41fc00ab1ab04e16" + } + }, + { + "client_id": "674907137625-plbo43m7pjorusbm76qstde280asrf71.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.android.compose.sample", + "certificate_hash": "c3188b0a93adae431af73d407565f38f284cbb4e" + } + }, + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:e96a572655e6c0e8d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.android.compose.sample.debug" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-ioqo27dsi1u5mg7uc9ubgpe0olma47hg.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.android.compose.sample.debug", + "certificate_hash": "c3188b0a93adae431af73d407565f38f284cbb4e" + } + }, + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:f4033353c54985b0d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.android.flutter.sample" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-0aa50j6b2i35ef9c52lsbk1v16otl492.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.android.flutter.sample", + "certificate_hash": "84e6cb4b0fd5e03f18cc895f25771449543e5b0b" + } + }, + { + "client_id": "674907137625-o2k4no2v5j6kces0b1v7s86mu421u5vm.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.android.flutter.sample", + "certificate_hash": "df0590804ff40703acf8b82d07ed2f8a21cd4cc8" + } + }, + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:c41e48c4c799aee8d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.example" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:c36d6f4ab7491192d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.sample" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:d91b4d966e372431d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.sample.debug" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:ff6593c705df1c43d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.sdk" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-khntpmmm3s1756v4jugnhcifgjlqrmd0.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.sdk", + "certificate_hash": "38f7d663a2ed58ae8990d365c41bd82df62185dc" + } + }, + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:630333f72f5080b2d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.ui.sample" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-8s27vqo4puao5d025nlsakt78j1pnb45.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.ui.sample", + "certificate_hash": "0df0d0349c0eb717eea90c0b41fc00ab1ab04e16" + } + }, + { + "client_id": "674907137625-j82a5eaohtarvub3agqtossi90fpefhg.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.ui.sample", + "certificate_hash": "c3188b0a93adae431af73d407565f38f284cbb4e" + } + }, + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:479d5763241739ded7f348", + "android_client_info": { + "package_name": "io.getstream.chat.ui.sample.debug" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-miq20f82jaeioq126h3sn3sagm5fdbo5.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "io.getstream.chat.ui.sample.debug", + "certificate_hash": "c3188b0a93adae431af73d407565f38f284cbb4e" + } + }, + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:47af6d69a27eac48d7f348", + "android_client_info": { + "package_name": "io.getstream.chat.virtualevent" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:674907137625:android:e20ff8f1ccbf76e4d7f348", + "android_client_info": { + "package_name": "io.ionic.starter" + } + }, + "oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBArS4RH7lUn3xbD-jhzWl5hVWZhliRgY0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "674907137625-o5iqvv6dtmljtn069b5djv19ad9a7js0.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "674907137625-2n5l5f3j8chjrgl0hkendtgvlbdnf42j.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "io.getstream.reactnative.SampleApp" + } + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/sample_app/android/app/src/debug/AndroidManifest.xml b/sample_app/android/app/src/debug/AndroidManifest.xml index 57257d0647..5afbbfdecd 100644 --- a/sample_app/android/app/src/debug/AndroidManifest.xml +++ b/sample_app/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/sample_app/android/app/src/main/AndroidManifest.xml b/sample_app/android/app/src/main/AndroidManifest.xml index 676306632e..8ff8f0abb5 100644 --- a/sample_app/android/app/src/main/AndroidManifest.xml +++ b/sample_app/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - +