From 398f37d59912391e6cfa852965210e084f44ced8 Mon Sep 17 00:00:00 2001 From: xmflsct Date: Sat, 24 Sep 2022 13:42:15 +0200 Subject: [PATCH 1/3] Remove sentry-expo Too many dependencies it needs, especially the unused expo-updates --- .github/workflows/build.yml | 5 +- android/app/src/main/AndroidManifest.xml | 3 - android/sentry.properties | 4 + app.config.ts | 14 -- fastlane/Fastfile | 2 +- ios/Podfile.lock | 48 ------- ios/sentry.properties | 4 + ios/tooot.xcodeproj/project.pbxproj | 17 +-- ios/tooot/Supporting/Expo.plist | 12 -- package.json | 3 - patches/@sentry+react-native+4.4.0.patch | 51 +++++++ src/App.tsx | 25 ++-- src/Screens.tsx | 17 +-- src/api/tooot.ts | 16 +-- src/screens/Compose.tsx | 4 +- src/startup/sentry.ts | 12 +- yarn.lock | 164 +---------------------- 17 files changed, 103 insertions(+), 298 deletions(-) create mode 100644 android/sentry.properties create mode 100644 ios/sentry.properties delete mode 100644 ios/tooot/Supporting/Expo.plist create mode 100644 patches/@sentry+react-native+4.4.0.patch diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4f76f667..d8b69994 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,8 +25,9 @@ jobs: run: bundle install - name: -- Step 5 -- Run fastlane env: - DEVELOPER_DIR: /Applications/Xcode_13.4.1.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_14.0.app/Contents/Developer ENVIRONMENT: ${{ steps.branch.outputs.branch }} + SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.branch }} LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }} @@ -67,6 +68,7 @@ jobs: - name: -- Step 6 -- Run fastlane env: ENVIRONMENT: ${{ steps.branch.outputs.branch }} + SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.branch }} LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }} @@ -103,6 +105,7 @@ jobs: - name: -- Step 6 -- Run fastlane env: ENVIRONMENT: ${{ steps.branch.outputs.branch }} + SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.branch }} LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 85094f05..85aa5430 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -13,9 +13,6 @@ - - - diff --git a/android/sentry.properties b/android/sentry.properties new file mode 100644 index 00000000..5a672fac --- /dev/null +++ b/android/sentry.properties @@ -0,0 +1,4 @@ +defaults.url=https://sentry.io/ +defaults.org=tooot +defaults.project=app +auth.token=d8f82bcbb7fe4cebb886d69e8ef32f36c0f19b08e967480a8c1c867b344a13ad diff --git a/app.config.ts b/app.config.ts index d7c2413b..fea5418b 100644 --- a/app.config.ts +++ b/app.config.ts @@ -10,20 +10,6 @@ export default (): ExpoConfig => ({ version, extra: { environment: process.env.ENVIRONMENT }, privacy: 'hidden', - hooks: { - postPublish: [ - { - file: 'sentry-expo/upload-sourcemaps', - config: { - organization: process.env.SENTRY_ORGANIZATION, - project: process.env.SENTRY_PROJECT, - authToken: process.env.SENTRY_AUTH_TOKEN, - setCommits: process.env.GITHUB_SHA || undefined, - deployEnv: process.env.ENVIRONMENT - } - } - ] - }, jsEngine: 'hermes', ios: { bundleIdentifier: 'com.xmflsct.app.tooot' diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 232384bd..c27497fe 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -8,7 +8,6 @@ GITHUB_REPO = "tooot-app/app" XCODEPROJ = "./ios/tooot.xcodeproj" INFO_PLIST = "./ios/tooot/Info.plist" -EXPO_PLIST = "./ios/tooot/Supporting/Expo.plist" desc "ANDROID: Prepare play store" private_lane :prepare_playstore_android do @@ -36,6 +35,7 @@ private_lane :build_ios do build_ios_app( export_method: "app-store", include_symbols: true, + include_bitcode: true, output_directory: BUILD_DIRECTORY, silent: false ) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index dcad12cf..9a06bbb7 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,9 +1,6 @@ PODS: - - ASN1Decoder (1.8.0) - boost (1.76.0) - DoubleConversion (1.1.6) - - EASClient (0.3.0): - - ExpoModulesCore - EXApplication (4.2.2): - ExpoModulesCore - EXAV (12.0.4): @@ -12,8 +9,6 @@ PODS: - ReactCommon - EXConstants (13.2.4): - ExpoModulesCore - - EXDevice (4.3.0): - - ExpoModulesCore - EXErrorRecovery (3.2.0): - ExpoModulesCore - EXFileSystem (14.1.0): @@ -27,9 +22,6 @@ PODS: - Firebase/Core (= 9.5.0) - EXFont (10.2.0): - ExpoModulesCore - - EXJSONUtils (0.3.0) - - EXManifests (0.3.1): - - EXJSONUtils - EXNotifications (0.16.1): - ExpoModulesCore - Expo (46.0.10): @@ -58,16 +50,6 @@ PODS: - React-Core - EXStoreReview (5.3.0): - ExpoModulesCore - - EXStructuredHeaders (2.2.1) - - EXUpdates (0.14.5): - - ASN1Decoder (~> 1.8) - - EASClient - - EXManifests - - ExpoModulesCore - - EXStructuredHeaders - - EXUpdatesInterface - - React-Core - - EXUpdatesInterface (0.7.0) - EXVideoThumbnails (6.4.0): - ExpoModulesCore - FBLazyVector (0.69.5) @@ -608,18 +590,14 @@ PODS: DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - - EASClient (from `../node_modules/expo-eas-client/ios`) - EXApplication (from `../node_modules/expo-application/ios`) - EXAV (from `../node_modules/expo-av/ios`) - EXConstants (from `../node_modules/expo-constants/ios`) - - EXDevice (from `../node_modules/expo-device/ios`) - EXErrorRecovery (from `../node_modules/expo-error-recovery/ios`) - EXFileSystem (from `../node_modules/expo-file-system/ios`) - EXFirebaseAnalytics (from `../node_modules/expo-firebase-analytics/ios`) - EXFirebaseCore (from `../node_modules/expo-firebase-core/ios`) - EXFont (from `../node_modules/expo-font/ios`) - - EXJSONUtils (from `../node_modules/expo-json-utils/ios`) - - EXManifests (from `../node_modules/expo-manifests/ios`) - EXNotifications (from `../node_modules/expo-notifications/ios`) - Expo (from `../node_modules/expo`) - ExpoCrypto (from `../node_modules/expo-crypto/ios`) @@ -633,9 +611,6 @@ DEPENDENCIES: - EXSecureStore (from `../node_modules/expo-secure-store/ios`) - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) - EXStoreReview (from `../node_modules/expo-store-review/ios`) - - EXStructuredHeaders (from `../node_modules/expo-structured-headers/ios`) - - EXUpdates (from `../node_modules/expo-updates/ios`) - - EXUpdatesInterface (from `../node_modules/expo-updates-interface/ios`) - EXVideoThumbnails (from `../node_modules/expo-video-thumbnails/ios`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) @@ -697,7 +672,6 @@ DEPENDENCIES: SPEC REPOS: trunk: - - ASN1Decoder - Firebase - FirebaseAnalytics - FirebaseCore @@ -722,16 +696,12 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" - EASClient: - :path: "../node_modules/expo-eas-client/ios" EXApplication: :path: "../node_modules/expo-application/ios" EXAV: :path: "../node_modules/expo-av/ios" EXConstants: :path: "../node_modules/expo-constants/ios" - EXDevice: - :path: "../node_modules/expo-device/ios" EXErrorRecovery: :path: "../node_modules/expo-error-recovery/ios" EXFileSystem: @@ -742,10 +712,6 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-firebase-core/ios" EXFont: :path: "../node_modules/expo-font/ios" - EXJSONUtils: - :path: "../node_modules/expo-json-utils/ios" - EXManifests: - :path: "../node_modules/expo-manifests/ios" EXNotifications: :path: "../node_modules/expo-notifications/ios" Expo: @@ -772,12 +738,6 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-splash-screen/ios" EXStoreReview: :path: "../node_modules/expo-store-review/ios" - EXStructuredHeaders: - :path: "../node_modules/expo-structured-headers/ios" - EXUpdates: - :path: "../node_modules/expo-updates/ios" - EXUpdatesInterface: - :path: "../node_modules/expo-updates-interface/ios" EXVideoThumbnails: :path: "../node_modules/expo-video-thumbnails/ios" FBLazyVector: @@ -886,21 +846,16 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - ASN1Decoder: 6110fdeacfdb41559b1481457a1645be716610aa boost: a7c83b31436843459a1961bfd74b96033dc77234 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - EASClient: a2581835cf9b97d0defd5d630fc6eb1bf77045e7 EXApplication: e418d737a036e788510f2c4ad6c10a7d54d18586 EXAV: 596506c9bee54ad52f2f3b625cdaeb9d9f2dd6b7 EXConstants: 7c44785d41d8e959d527d23d29444277a4d1ee73 - EXDevice: 7647ca9b1fd8b269dfd896a7643d659343358054 EXErrorRecovery: 74d71ee59f6814315457b09d68e86aa95cc7d05d EXFileSystem: 927e0a8885aa9c49e50fc38eaba2c2389f2f1019 EXFirebaseAnalytics: 2e478758e153b908b67477dff7adf99ffbf37a1b EXFirebaseCore: cb1e6afad20c4c32a4966432c78ebfff29d8db6b EXFont: a5d80bd9b3452b2d5abbce2487da89b0150e6487 - EXJSONUtils: 2a74b8f40f1523cc3f92af99c91aa78201737a77 - EXManifests: b38dc61303f5eede990b4c8ecbfac32f82160e65 EXNotifications: 9a2aa201deb19dfe1dbe0e370eeb2922de0d2422 Expo: fcdb32274e2ca9c7638d3b21b30fb665c6869219 ExpoCrypto: e534314db0e1a17ae12b5140d529bd0c5efcbc6a @@ -914,9 +869,6 @@ SPEC CHECKSUMS: EXSecureStore: ac4b3c89dd5810528074d9422d5fed5a9e684467 EXSplashScreen: 799bece80089219b2c989c1082d70f3b00995cda EXStoreReview: cbb6b2202bb6f831cd3234d9d8b995cec0eb32f2 - EXStructuredHeaders: 5d86829469399370a9fc7cb1e4391b09de87681d - EXUpdates: 664f999db423f90f3fb3d91edcda9bc28cb5a5b4 - EXUpdatesInterface: 2bbc11815dfa2ec3fc02e5534c7592c6b42b5327 EXVideoThumbnails: 486533e1a66c9859f9b9e3b2e1f9f0b275515b48 FBLazyVector: 0045cf98ca4a48af3bf7108d85b1c243740fa289 FBReactNativeSpec: 82e74141263f8c962e288f5cd6b5d149cdc8afe1 diff --git a/ios/sentry.properties b/ios/sentry.properties new file mode 100644 index 00000000..5a672fac --- /dev/null +++ b/ios/sentry.properties @@ -0,0 +1,4 @@ +defaults.url=https://sentry.io/ +defaults.org=tooot +defaults.project=app +auth.token=d8f82bcbb7fe4cebb886d69e8ef32f36c0f19b08e967480a8c1c867b344a13ad diff --git a/ios/tooot.xcodeproj/project.pbxproj b/ios/tooot.xcodeproj/project.pbxproj index 7bca145e..9ae5a4c1 100644 --- a/ios/tooot.xcodeproj/project.pbxproj +++ b/ios/tooot.xcodeproj/project.pbxproj @@ -17,7 +17,6 @@ 5EE088C926297820007E5FEC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5EE088CB26297820007E5FEC /* InfoPlist.strings */; }; 5EE44DD62600124E00A9BCED /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EE44DD52600124E00A9BCED /* File.swift */; }; 96905EF65AED1B983A6B3ABC /* libPods-tooot.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-tooot.a */; }; - BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; DA8B5B7F0DED488CAC0FF169 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B96B72E5384D44A7B240B27E /* GoogleService-Info.plist */; }; E3BC22F5F8ABE515E14CF199 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D878F932AF7A9974E06E461 /* ExpoModulesProvider.swift */; }; E613A80B28282A01003C97D6 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = E613A80A28282A01003C97D6 /* AppDelegate.mm */; }; @@ -71,7 +70,6 @@ 9D878F932AF7A9974E06E461 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-tooot/ExpoModulesProvider.swift"; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = tooot/SplashScreen.storyboard; sourceTree = ""; }; B96B72E5384D44A7B240B27E /* GoogleService-Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "tooot/GoogleService-Info.plist"; sourceTree = ""; }; - BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; DF8133F098604A10B0D94952 /* boop.mp3 */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = boop.mp3; path = tooot/boop.mp3; sourceTree = ""; }; E613A80A28282A01003C97D6 /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = tooot/AppDelegate.mm; sourceTree = ""; }; E633A420281EAEAB000E540F /* ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -106,7 +104,6 @@ isa = PBXGroup; children = ( E613A80A28282A01003C97D6 /* AppDelegate.mm */, - BB2F792B24A3F905000567C9 /* Supporting */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 13B07FB51A68108700A75B9A /* Images.xcassets */, @@ -183,15 +180,6 @@ name = Products; sourceTree = ""; }; - BB2F792B24A3F905000567C9 /* Supporting */ = { - isa = PBXGroup; - children = ( - BB2F792C24A3F905000567C9 /* Expo.plist */, - ); - name = Supporting; - path = tooot/Supporting; - sourceTree = ""; - }; D65327D7A22EEC0BE12398D9 /* Pods */ = { isa = PBXGroup; children = ( @@ -308,7 +296,6 @@ files = ( 5E36538325C9B8BD009F93EE /* RootViewColor.xcassets in Resources */, 5EE088C926297820007E5FEC /* InfoPlist.strings in Resources */, - BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, @@ -341,7 +328,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + shellScript = "set -e\nexport SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\nSENTRY_CLI_PATH=\"../node_modules/@sentry/cli/bin/sentry-cli\"\n/bin/sh -c \"$WITH_ENVIRONMENT \\\"$SENTRY_CLI_PATH react-native xcode $REACT_NATIVE_XCODE\\\"\""; }; 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; @@ -391,13 +378,11 @@ inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-tooot/Pods-tooot-resources.sh", "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates/EXUpdates.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXUpdates.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", ); runOnlyForDeploymentPostprocessing = 0; diff --git a/ios/tooot/Supporting/Expo.plist b/ios/tooot/Supporting/Expo.plist deleted file mode 100644 index b4c81f20..00000000 --- a/ios/tooot/Supporting/Expo.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - EXUpdatesAutoSetup - - EXUpdatesEnabled - - EXUpdatesSDKVersion - 46.0.0 - - \ No newline at end of file diff --git a/package.json b/package.json index 2e7ef5dd..a4a8ce07 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "expo-av": "^12.0.4", "expo-constants": "^13.2.4", "expo-crypto": "^11.0.0", - "expo-device": "^4.3.0", "expo-file-system": "^14.1.0", "expo-firebase-analytics": "^7.2.0", "expo-haptics": "^11.3.0", @@ -58,7 +57,6 @@ "expo-secure-store": "^11.3.0", "expo-splash-screen": "^0.16.2", "expo-store-review": "^5.3.0", - "expo-updates": "^0.14.5", "expo-video-thumbnails": "^6.4.0", "expo-web-browser": "^11.0.0", "i18next": "^21.9.2", @@ -94,7 +92,6 @@ "react-redux": "^8.0.4", "redux-persist": "^6.0.0", "rn-placeholder": "^3.0.3", - "sentry-expo": "^5.0.2", "tslib": "^2.4.0", "valid-url": "^1.0.9" }, diff --git a/patches/@sentry+react-native+4.4.0.patch b/patches/@sentry+react-native+4.4.0.patch new file mode 100644 index 00000000..b1b3c5f3 --- /dev/null +++ b/patches/@sentry+react-native+4.4.0.patch @@ -0,0 +1,51 @@ +diff --git a/node_modules/@sentry/react-native/ios/RNSentry.h b/node_modules/@sentry/react-native/ios/RNSentry.h +index 6f7df58..84b50c9 100644 +--- a/node_modules/@sentry/react-native/ios/RNSentry.h ++++ b/node_modules/@sentry/react-native/ios/RNSentry.h +@@ -1,7 +1,7 @@ + #if __has_include() + #import + #else +-#import "RCTBridge.h" ++#import + #endif + + @interface RNSentry : NSObject +diff --git a/node_modules/@sentry/react-native/ios/RNSentry.m b/node_modules/@sentry/react-native/ios/RNSentry.m +index 32a6087..003a001 100644 +--- a/node_modules/@sentry/react-native/ios/RNSentry.m ++++ b/node_modules/@sentry/react-native/ios/RNSentry.m +@@ -3,7 +3,7 @@ + #if __has_include() + #import + #else +-#import "RCTConvert.h" ++#import + #endif + + #import +diff --git a/node_modules/@sentry/react-native/react-native.config.js b/node_modules/@sentry/react-native/react-native.config.js +index f85fa01..053999b 100644 +--- a/node_modules/@sentry/react-native/react-native.config.js ++++ b/node_modules/@sentry/react-native/react-native.config.js +@@ -1,18 +1,10 @@ + module.exports = { + dependency: { + platforms: { +- ios: { +- sharedLibraries: ['libz'] +- }, ++ ios: {}, + android: { + packageInstance: 'new RNSentryPackage()' + } +- }, +- hooks: { +- postlink: +- 'node node_modules/@sentry/wizard/dist/bin.js -i reactNative -p ios android', +- postunlink: +- 'node node_modules/@sentry/wizard/dist/bin.js -i reactNative -p ios android --uninstall' + } + } + }; +\ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 788008db..17c57664 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -10,11 +10,9 @@ import push from '@root/startup/push' import sentry from '@root/startup/sentry' import timezone from '@root/startup/timezone' import { persistor, store } from '@root/store' +import * as Sentry from '@sentry/react-native' import AccessibilityManager from '@utils/accessibility/AccessibilityManager' -import { - changeLanguage, - getSettingsLanguage -} from '@utils/slices/settingsSlice' +import { changeLanguage, getSettingsLanguage } from '@utils/slices/settingsSlice' import ThemeManager from '@utils/styles/ThemeManager' import * as SplashScreen from 'expo-splash-screen' import React, { useCallback, useEffect, useState } from 'react' @@ -24,7 +22,6 @@ import { enableFreeze } from 'react-native-screens' import { QueryClientProvider } from 'react-query' import { Provider } from 'react-redux' import { PersistGate } from 'redux-persist/integration/react' -import * as Sentry from 'sentry-expo' Platform.select({ android: LogBox.ignoreLogs(['Setting a timer for a long period of time']) @@ -93,15 +90,13 @@ const App: React.FC = () => { } return ( - - - - - - - - - + + + + + + + ) } else { return null @@ -114,4 +109,4 @@ const App: React.FC = () => { ) } -export default React.memo(App, () => true) +export default Sentry.wrap(App) diff --git a/src/Screens.tsx b/src/Screens.tsx index 4bd00d8c..6eaedabc 100644 --- a/src/Screens.tsx +++ b/src/Screens.tsx @@ -10,6 +10,7 @@ import ScreenAnnouncements from '@screens/Announcements' import ScreenCompose from '@screens/Compose' import ScreenImagesViewer from '@screens/ImagesViewer' import ScreenTabs from '@screens/Tabs' +import * as Sentry from '@sentry/react-native' import initQuery from '@utils/initQuery' import { RootStackParamList } from '@utils/navigation/navigators' import pushUseConnect from '@utils/push/useConnect' @@ -31,7 +32,6 @@ import { IntlProvider } from 'react-intl' import { Alert, Platform, StatusBar } from 'react-native' import ShareMenu from 'react-native-share-menu' import { useSelector } from 'react-redux' -import * as Sentry from 'sentry-expo' import { useAppDispatch } from './store' const Stack = createNativeStackNavigator() @@ -49,10 +49,7 @@ const Screens: React.FC = ({ localCorrupt }) => { const routeRef = useRef<{ name?: string; params?: {} }>() // Push hooks - const instances = useSelector( - getInstances, - (prev, next) => prev.length === next.length - ) + const instances = useSelector(getInstances, (prev, next) => prev.length === next.length) pushUseConnect({ t, instances }) pushUseReceive({ instances }) pushUseRespond({ instances }) @@ -102,9 +99,7 @@ const Screens: React.FC = ({ localCorrupt }) => { const currentRoute = navigationRef.getCurrentRoute() routeRef.current = { name: currentRoute?.name, - params: currentRoute?.params - ? JSON.stringify(currentRoute.params) - : undefined + params: currentRoute?.params ? JSON.stringify(currentRoute.params) : undefined } }, []) const navigationContainerOnStateChange = useCallback(() => { @@ -119,7 +114,7 @@ const Screens: React.FC = ({ localCorrupt }) => { if (previousRoute?.name !== currentRoute?.name) { analytics('screen_view', { screen_name: currentRoute?.name }) - Sentry.Native.setContext('page', { + Sentry.setContext('page', { previous: previousRoute, current: currentRoute }) @@ -316,9 +311,7 @@ const Screens: React.FC = ({ localCorrupt }) => { headerShadowVisible: false, headerTransparent: true, headerStyle: { backgroundColor: 'transparent' }, - headerLeft: () => ( - navigation.goBack()} /> - ), + headerLeft: () => navigation.goBack()} />, title: t('screenAnnouncements:heading') })} /> diff --git a/src/api/tooot.ts b/src/api/tooot.ts index fc6bd0d3..09a8e6d7 100644 --- a/src/api/tooot.ts +++ b/src/api/tooot.ts @@ -1,7 +1,7 @@ +import * as Sentry from '@sentry/react-native' import { mapEnvironment } from '@utils/checkEnvironment' import axios from 'axios' import Constants from 'expo-constants' -import * as Sentry from 'sentry-expo' import handleError, { ctx } from './handleError' export type Params = { @@ -31,11 +31,11 @@ const apiTooot = async ({ }: Params): Promise<{ body: T }> => { console.log( ctx.bgGreen.bold(' API tooot ') + - ' ' + - method + - ctx.green(' -> ') + - `/${url}` + - (params ? ctx.green(' -> ') : ''), + ' ' + + method + + ctx.green(' -> ') + + `/${url}` + + (params ? ctx.green(' -> ') : ''), params ? params : '' ) @@ -65,12 +65,12 @@ const apiTooot = async ({ }) .catch(error => { if (sentry) { - Sentry.Native.setExtras({ + Sentry.setExtras({ API: 'tooot', ...(error?.response && { response: error.response }), ...(error?.request && { request: error.request }) }) - Sentry.Native.captureException(error) + Sentry.captureException(error) } return handleError(error) diff --git a/src/screens/Compose.tsx b/src/screens/Compose.tsx index bf4d802b..80004ec6 100644 --- a/src/screens/Compose.tsx +++ b/src/screens/Compose.tsx @@ -7,6 +7,7 @@ import haptics from '@root/components/haptics' import { useAppDispatch } from '@root/store' import formatText from '@screens/Compose/formatText' import ComposeRoot from '@screens/Compose/Root' +import * as Sentry from '@sentry/react-native' import { RootStackScreenProps } from '@utils/navigation/navigators' import { QueryKeyTimeline, useTimelineMutation } from '@utils/queryHooks/timeline' import { updateStoreReview } from '@utils/slices/contextsSlice' @@ -24,7 +25,6 @@ import { useTranslation } from 'react-i18next' import { Alert, Keyboard, Platform } from 'react-native' import { useQueryClient } from 'react-query' import { useSelector } from 'react-redux' -import * as Sentry from 'sentry-expo' import ComposeDraftsList from './Compose/DraftsList' import ComposeEditAttachment from './Compose/EditAttachment' import { uploadAttachment } from './Compose/Root/Footer/addAttachment' @@ -326,7 +326,7 @@ const ScreenCompose: React.FC> = ({ ] ) } else { - Sentry.Native.captureMessage('Compose posting', { + Sentry.captureMessage('Compose posting', { contexts: { errorObject: error } }) haptics('Error') diff --git a/src/startup/sentry.ts b/src/startup/sentry.ts index 2655e99c..fc39f039 100644 --- a/src/startup/sentry.ts +++ b/src/startup/sentry.ts @@ -1,12 +1,18 @@ -import * as Sentry from 'sentry-expo' +import * as Sentry from "@sentry/react-native"; +import { isDevelopment } from "@utils/checkEnvironment"; import log from './log' const sentry = () => { log('log', 'Sentry', 'initializing') Sentry.init({ - // @ts-ignore + enabled: !isDevelopment, dsn: 'https://53348b60ff844d52886e90251b3a5f41@o917354.ingest.sentry.io/6410576', - enableInExpoDevelopment: false, + tracesSampleRate: 0.35, + integrations: [ + new Sentry.ReactNativeTracing({ + tracingOrigins: ["tooot.app"], + }), + ], autoSessionTracking: true }) } diff --git a/yarn.lock b/yarn.lock index 2853006a..813624d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1171,7 +1171,7 @@ uuid "^3.4.0" wrap-ansi "^7.0.0" -"@expo/code-signing-certificates@0.0.2", "@expo/code-signing-certificates@^0.0.2": +"@expo/code-signing-certificates@^0.0.2": version "0.0.2" resolved "https://registry.yarnpkg.com/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz#65cd615800e6724b54831c966dd1a90145017246" integrity sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg== @@ -1317,7 +1317,7 @@ json5 "^1.0.1" write-file-atomic "^2.3.0" -"@expo/metro-config@~0.3.18", "@expo/metro-config@~0.3.19": +"@expo/metro-config@~0.3.18": version "0.3.22" resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.3.22.tgz#fa4a0729ec8ecbc9c9fb79c63ecc66a299505c82" integrity sha512-R81sLbaeUBjN8IXcxiVx7GcpSj8z7szILl1b5yJDb38WdIFwxhrseA5wXaTT1yMhI+59w6n99T2qtFV2yD5qYA== @@ -1413,7 +1413,7 @@ dependencies: cross-spawn "^6.0.5" -"@expo/spawn-async@^1.5.0", "@expo/spawn-async@^1.6.0": +"@expo/spawn-async@^1.5.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.7.0.tgz#3ab6082b24318cccc4e73b13464da91325555500" integrity sha512-sqPAjOEFTrjaTybrh9SnPFLInDXcoMC06psEFmH68jLTmoipSQCq8GCEfIoHhxRDALWB+DsiwXJSbXlE/iVIIQ== @@ -2009,16 +2009,6 @@ "@sentry/utils" "7.12.1" tslib "^1.9.3" -"@sentry/browser@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.7.0.tgz#7810ee98d4969bd0367e29ac0af6c5779db7e6c4" - integrity sha512-oyzpWcsjVZTaf14zAL89Ng1DUHlbjN+V8pl8dR9Y9anphbzL5BK9p0fSK4kPIrO4GukK+XrKnLJDPuE/o7WR3g== - dependencies: - "@sentry/core" "7.7.0" - "@sentry/types" "7.7.0" - "@sentry/utils" "7.7.0" - tslib "^1.9.3" - "@sentry/cli@1.74.4": version "1.74.4" resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.74.4.tgz#7df82f68045a155e1885bfcbb5d303e5259eb18e" @@ -2055,16 +2045,6 @@ "@sentry/utils" "7.12.1" tslib "^1.9.3" -"@sentry/core@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.7.0.tgz#1a2d477897552d179380f7c54c7d81a4e98ea29a" - integrity sha512-Z15ACiuiFINFcK4gbMrnejLn4AVjKBPJOWKrrmpIe8mh+Y9diOuswt5mMUABs+jhpZvqht3PBLLGBL0WMsYMYA== - dependencies: - "@sentry/hub" "7.7.0" - "@sentry/types" "7.7.0" - "@sentry/utils" "7.7.0" - tslib "^1.9.3" - "@sentry/hub@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.12.1.tgz#dffad40cd2b8f44df2d5f20a89df87879cbbf1c3" @@ -2074,15 +2054,6 @@ "@sentry/utils" "7.12.1" tslib "^1.9.3" -"@sentry/hub@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.7.0.tgz#9ad3471cf5ecaf1a9d3a3a04ca2515ffec9e2c09" - integrity sha512-6gydK234+a0nKhBRDdIJ7Dp42CaiW2juTiHegUVDq+482balVzbZyEAmESCmuzKJhx5BhlCElVxs/cci1NjMpg== - dependencies: - "@sentry/types" "7.7.0" - "@sentry/utils" "7.7.0" - tslib "^1.9.3" - "@sentry/integrations@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.12.1.tgz#da1dbc5d851f2fc9413883812c436a1540a5b27a" @@ -2093,32 +2064,6 @@ localforage "^1.8.1" tslib "^1.9.3" -"@sentry/integrations@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.7.0.tgz#be4d89ccce756f3decc52b04cc09add19f142715" - integrity sha512-qHIw4JrluVfkcdA6v22KVumhuqdk9I0MxEaiHyP/uzx4xIoi9S4I86YbLHZUpjqreJIQkntsimJSepZJkxvG5g== - dependencies: - "@sentry/types" "7.7.0" - "@sentry/utils" "7.7.0" - localforage "^1.8.1" - tslib "^1.9.3" - -"@sentry/react-native@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-4.2.2.tgz#613ffa2347746d2ed66200c314092411ad7aa43c" - integrity sha512-2zSgR73/jNByr4WDciE97n78Tj81Lrhhwj1/yMRWFDd9pF802ZYiRVeIkHArEYGHER41fiQojP7wBKftvnKgew== - dependencies: - "@sentry/browser" "7.7.0" - "@sentry/cli" "1.74.4" - "@sentry/core" "7.7.0" - "@sentry/hub" "7.7.0" - "@sentry/integrations" "7.7.0" - "@sentry/react" "7.7.0" - "@sentry/tracing" "7.7.0" - "@sentry/types" "7.7.0" - "@sentry/utils" "7.7.0" - "@sentry/wizard" "1.2.17" - "@sentry/react-native@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-4.4.0.tgz#6db112bb5c8c69d3385de9e81d91e936e0cc31a3" @@ -2146,17 +2091,6 @@ hoist-non-react-statics "^3.3.2" tslib "^1.9.3" -"@sentry/react@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.7.0.tgz#a519dd727f863c1abf1a77beac01a3336c856828" - integrity sha512-93Khad3YAln6mKU9E15QH09XC1ARIOpNTRpnBl6AGl3bVhSdLExsbKDLa7Rx0mW2j4z/prOC6VEHf5mBvg4mPg== - dependencies: - "@sentry/browser" "7.7.0" - "@sentry/types" "7.7.0" - "@sentry/utils" "7.7.0" - hoist-non-react-statics "^3.3.2" - tslib "^1.9.3" - "@sentry/tracing@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.12.1.tgz#9f92985f152054ac90b6ec83a33c44e8084a008e" @@ -2167,26 +2101,11 @@ "@sentry/utils" "7.12.1" tslib "^1.9.3" -"@sentry/tracing@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.7.0.tgz#67324b755a28e115289755e44a0b8b467a63d0b2" - integrity sha512-HNmvTwemuc21q/K6HXsSp9njkne6N1JQ71TB+QGqYU5VtxsVgYSUhhYqV6WcHz7LK4Hj6TvNFoeu69/rO0ysgw== - dependencies: - "@sentry/hub" "7.7.0" - "@sentry/types" "7.7.0" - "@sentry/utils" "7.7.0" - tslib "^1.9.3" - "@sentry/types@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.12.1.tgz#eff76d938f9effc62a2ec76cd5c3f04de37f5c15" integrity sha512-VGZs39SZgMcCGv7H0VyFy1LEFGsnFZH590JUopmz6nG63EpeYQ2xzhIoPNAiLKbyUvBEwukn+faCg3u3MGqhgQ== -"@sentry/types@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.7.0.tgz#dd6bd3d119d7efea0e85dbaa4b17de1c22b63c7a" - integrity sha512-4x8O7uerSGLnYC10krHl9t8h7xXHn5FextqKYbTCXCnx2hC8D+9lz8wcbQAFo0d97wiUYqI8opmEgFVGx7c5hQ== - "@sentry/utils@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.12.1.tgz#fcf80fdc332d0bd288e21b13efc7a2f0d604f75a" @@ -2195,14 +2114,6 @@ "@sentry/types" "7.12.1" tslib "^1.9.3" -"@sentry/utils@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.7.0.tgz#013e3097c4268a76de578494c7df999635fb0ad4" - integrity sha512-fD+ROSFpeJlK7bEvUT2LOW7QqgjBpXJwVISKZ0P2fuzclRC3KoB2pbZgBM4PXMMTiSzRGWhvfRRjBiBvQJBBJQ== - dependencies: - "@sentry/types" "7.7.0" - tslib "^1.9.3" - "@sentry/wizard@1.2.17": version "1.2.17" resolved "https://registry.yarnpkg.com/@sentry/wizard/-/wizard-1.2.17.tgz#c3247b47129d002cfa45d7a2048d13dc6513457b" @@ -3944,18 +3855,6 @@ expo-crypto@^11.0.0, expo-crypto@~11.0.0: resolved "https://registry.yarnpkg.com/expo-crypto/-/expo-crypto-11.0.0.tgz#e434ebede6bae20f5a5cf7d7ea99d41e7b67690e" integrity sha512-EH1Ikcy/HxfLJpo+zVRic4Igl6AovZEksAheKfeM2u+2TfL3FEBiQo+cGkuIa8NQ9ui3xYqQcyMk+IIZ6AO0Xg== -expo-device@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-4.3.0.tgz#a25257febe8dd18378f556ef61b5ff73ee687a6b" - integrity sha512-NRmsEuZVxx0EvD/dHZdng87wDgN9msfyjqp5DbNIyzvMGhxOrGtE/iEivvMyOdQpVotHGK8rBRbFKJzOtYB5lg== - dependencies: - ua-parser-js "^0.7.19" - -expo-eas-client@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.3.0.tgz#21383fc95a52e71e13c7276456db20388fefcf95" - integrity sha512-dBD00lJ629ayh5abbmgn6I1Z5NOaWM1iea2ODLd/EF1ZcS1P3yiPm6blpvL/tD+uewL8gxxmla/Ac+SiDdYAYA== - expo-error-recovery@~3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-3.2.0.tgz#3a4543382904a5e70829cb41d7fc0f022c2bef6e" @@ -3995,11 +3894,6 @@ expo-haptics@^11.3.0: resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-11.3.0.tgz#74283bd212a86f16ff2d6b0125e2a9604c940523" integrity sha512-mQYSZsJ7LcdM2b8JecrV2qEw9ymNzGleS/+bpufdHZ+n5tCnWZXiMvZFFczaExHfaeGY3nGQvH1RjEOFIXSfig== -expo-json-utils@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.3.0.tgz#0c4a0195ee2bbde02cbb5f4d384d1cb63bea7493" - integrity sha512-ceo0pWFJqRAsNjZWX3rVDhy+NDzmrBNFOdvW+HE4EHqlt+OEUu9INIYKO8fU+g3ifI0VcKqHfvvj5wKsSpvPBw== - expo-keep-awake@~10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-10.2.0.tgz#46f04740bccd321732bbbed93491e2076d5dbbd7" @@ -4023,13 +3917,6 @@ expo-localization@^13.1.0: dependencies: rtl-detect "^1.0.2" -expo-manifests@~0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.3.1.tgz#52c3ef41d3b1958039be0434363e6499c773aaf6" - integrity sha512-zv2a4pzhbvxVjrTO4XEiP5THt4RwtxyJjfixFhDNfHtDQR7fS4h9sZSGX9ind+IS5SQJQ2ykfVAi8xnwP6zHaw== - dependencies: - expo-json-utils "~0.3.0" - expo-modules-autolinking@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.10.3.tgz#31bfcf3e4b613a7c3949fb1f1e9c23eea4c14caf" @@ -4095,34 +3982,6 @@ expo-store-review@^5.3.0: resolved "https://registry.yarnpkg.com/expo-store-review/-/expo-store-review-5.3.0.tgz#f8b1253a607b13e548889a442d8ee7bb0fa025a3" integrity sha512-abWgsgXnfeJnAINOVGWxFC0HXizZxBoxNZoekswqW2AtsQ6DR5nvWj5VyovVjd8DktRG/ly1ZKJwP0KNXqWffw== -expo-structured-headers@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-2.2.1.tgz#739f969101de6bead921eee59e5899399ad67715" - integrity sha512-nY6GuvoS/U5XdhfBNmvXGRoGzIXywXpSZs2wdiP+FbS79P9UWyEqzgARrBTF+6pQxUVMs6/vdffxRpwhjwYPug== - -expo-updates-interface@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.7.0.tgz#f4f03b61dbdd949cac9fb44e250e1162ba177650" - integrity sha512-saThnbrYDSjKxfMFFguAvh5o5KGabvAOHItkJRwq2L3c0T/3q26Q0kM83880h/+TTtAVsl1+Vhny9d+ImD3yvQ== - -expo-updates@^0.14.5: - version "0.14.5" - resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.14.5.tgz#3de2764b143c93eee636cab538c081a7867aa086" - integrity sha512-m6IOiETTwsJhL93meHG/Y3FWuaRQIbn9LJ5wpWurQ7RniqIV9Ae61SRmJJyYtxk1qLy/dKJ/jHyF1xp8PKIlnQ== - dependencies: - "@expo/code-signing-certificates" "0.0.2" - "@expo/config" "~7.0.1" - "@expo/config-plugins" "~5.0.1" - "@expo/metro-config" "~0.3.19" - arg "4.1.0" - expo-eas-client "~0.3.0" - expo-manifests "~0.3.0" - expo-structured-headers "~2.2.0" - expo-updates-interface "~0.7.0" - fbemitter "^3.0.0" - resolve-from "^5.0.0" - uuid "^3.4.0" - expo-video-thumbnails@^6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/expo-video-thumbnails/-/expo-video-thumbnails-6.4.0.tgz#59603af06c1d2122c2f7db854562236bbd8319ec" @@ -7624,21 +7483,6 @@ send@0.18.0, send@^0.18.0: range-parser "~1.2.1" statuses "2.0.1" -sentry-expo@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/sentry-expo/-/sentry-expo-5.0.2.tgz#2dc1e3b0fb42c130758d1c812979e236a300dd59" - integrity sha512-okDqnFuQ1iQLWAEMW7SbLNcfg9XkKyr1FwP6cuLgVl4sPuZEr5mQtLSp4jXUncWYtIG2gnRkmXmZukkUat/OoQ== - dependencies: - "@expo/config-plugins" "~5.0.0" - "@expo/config-types" "^46.0.1" - "@expo/spawn-async" "^1.6.0" - "@sentry/browser" "7.7.0" - "@sentry/integrations" "7.7.0" - "@sentry/react-native" "4.2.2" - "@sentry/types" "7.7.0" - mkdirp "^1.0.4" - rimraf "^3.0.2" - serialize-error@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-6.0.0.tgz#ccfb887a1dd1c48d6d52d7863b92544331fd752b" @@ -8336,7 +8180,7 @@ typescript@^4.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== -ua-parser-js@^0.7.19, ua-parser-js@^0.7.30: +ua-parser-js@^0.7.30: version "0.7.31" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== From 74d904a440887fa94f050865249b8ea007cb29cb Mon Sep 17 00:00:00 2001 From: xmflsct Date: Sat, 24 Sep 2022 14:39:54 +0200 Subject: [PATCH 2/3] Add iOS languages --- fastlane/Deliverfile | 2 -- fastlane/metadata/default/release_notes.txt | 1 - fastlane/metadata/en-US/release_notes.txt | 2 -- fastlane/metadata/zh-Hans/release_notes.txt | 2 -- ios/de.lproj/InfoPlist.strings | 2 ++ ios/en.lproj/InfoPlist.strings | 12 ++---------- ios/it.lproj/InfoPlist.strings | 2 ++ ios/ko.lproj/InfoPlist.strings | 2 ++ ios/pt-BR.lproj/InfoPlist.strings | 2 ++ ios/tooot.xcodeproj/project.pbxproj | 15 +++++++++++++++ ios/vi.lproj/InfoPlist.strings | 2 ++ ios/zh-Hans.lproj/InfoPlist.strings | 10 +--------- src/screens/Tabs/Me/Settings/Dev.tsx | 11 +++++++++++ 13 files changed, 39 insertions(+), 26 deletions(-) delete mode 120000 fastlane/metadata/default/release_notes.txt delete mode 100644 fastlane/metadata/en-US/release_notes.txt delete mode 100644 fastlane/metadata/zh-Hans/release_notes.txt create mode 100644 ios/de.lproj/InfoPlist.strings create mode 100644 ios/it.lproj/InfoPlist.strings create mode 100644 ios/ko.lproj/InfoPlist.strings create mode 100644 ios/pt-BR.lproj/InfoPlist.strings create mode 100644 ios/vi.lproj/InfoPlist.strings diff --git a/fastlane/Deliverfile b/fastlane/Deliverfile index e86817ae..d298c5fa 100644 --- a/fastlane/Deliverfile +++ b/fastlane/Deliverfile @@ -1,5 +1,3 @@ -languages(['de-DE', 'en-US', 'it', 'ko', 'pt-BR', 'vi', 'zh-Hans']) - name({ 'default' => "tooot" }) diff --git a/fastlane/metadata/default/release_notes.txt b/fastlane/metadata/default/release_notes.txt deleted file mode 120000 index 457102d1..00000000 --- a/fastlane/metadata/default/release_notes.txt +++ /dev/null @@ -1 +0,0 @@ -../en-US/release_notes.txt \ No newline at end of file diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt deleted file mode 100644 index bd412548..00000000 --- a/fastlane/metadata/en-US/release_notes.txt +++ /dev/null @@ -1,2 +0,0 @@ -Support selecting multiple images -Long press toot to show options \ No newline at end of file diff --git a/fastlane/metadata/zh-Hans/release_notes.txt b/fastlane/metadata/zh-Hans/release_notes.txt deleted file mode 100644 index 69de255f..00000000 --- a/fastlane/metadata/zh-Hans/release_notes.txt +++ /dev/null @@ -1,2 +0,0 @@ -支持同时上传多张图片 -长按嘟文弹出嘟文选项 \ No newline at end of file diff --git a/ios/de.lproj/InfoPlist.strings b/ios/de.lproj/InfoPlist.strings new file mode 100644 index 00000000..f63a9471 --- /dev/null +++ b/ios/de.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +"NSPhotoLibraryAddUsageDescription" = "Erlauben Sie tooot, Bilder in Ihrer Kamerarolle zu speichern"; +"NSPhotoLibraryUsageDescription" = "Erlauben Sie tooot, Bilder in Ihrer Kamerarolle zu speichern"; diff --git a/ios/en.lproj/InfoPlist.strings b/ios/en.lproj/InfoPlist.strings index f9728054..21de883d 100644 --- a/ios/en.lproj/InfoPlist.strings +++ b/ios/en.lproj/InfoPlist.strings @@ -1,10 +1,2 @@ -/* - InfoPlist.strings - tooot - - Created by Zheng Zhiyuan (SEBD) on 2021-04-16. - -*/ - -"NSPhotoLibraryAddUsageDescription" = "Allow tooot to save an image to your camera roll"; -"NSPhotoLibraryUsageDescription" = "Allow tooot to access your camera roll to attach photos or videos to your toot"; +"NSPhotoLibraryAddUsageDescription" = "Allow tooot to save images to your camera roll"; +"NSPhotoLibraryUsageDescription" = "Allow tooot to save images to your camera roll"; diff --git a/ios/it.lproj/InfoPlist.strings b/ios/it.lproj/InfoPlist.strings new file mode 100644 index 00000000..1e0a7b2f --- /dev/null +++ b/ios/it.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +"NSPhotoLibraryAddUsageDescription" = "Consentire a tooot di salvare le immagini nel rullino fotografico"; +"NSPhotoLibraryUsageDescription" = "Consentire a tooot di salvare le immagini nel rullino fotografico"; diff --git a/ios/ko.lproj/InfoPlist.strings b/ios/ko.lproj/InfoPlist.strings new file mode 100644 index 00000000..dba60bfd --- /dev/null +++ b/ios/ko.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +"NSPhotoLibraryAddUsageDescription" = "tooot가 이미지를 카메라 롤에 저장하도록 허용"; +"NSPhotoLibraryUsageDescription" = "tooot가 이미지를 카메라 롤에 저장하도록 허용"; diff --git a/ios/pt-BR.lproj/InfoPlist.strings b/ios/pt-BR.lproj/InfoPlist.strings new file mode 100644 index 00000000..f3e7bcdf --- /dev/null +++ b/ios/pt-BR.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +"NSPhotoLibraryAddUsageDescription" = "Permita guardar imagens em seu rolo de câmera"; +"NSPhotoLibraryUsageDescription" = "Permita guardar imagens em seu rolo de câmera"; diff --git a/ios/tooot.xcodeproj/project.pbxproj b/ios/tooot.xcodeproj/project.pbxproj index 9ae5a4c1..4191bd59 100644 --- a/ios/tooot.xcodeproj/project.pbxproj +++ b/ios/tooot.xcodeproj/project.pbxproj @@ -76,6 +76,11 @@ E633A427281EAEAB000E540F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; E633A42F281EAF38000E540F /* ShareViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ShareViewController.swift; path = "../../node_modules/react-native-share-menu/ios/ShareViewController.swift"; sourceTree = ""; }; E633A431281EB55C000E540F /* ShareExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ShareExtension-Bridging-Header.h"; sourceTree = ""; }; + E69EBACA28DF282D0057EDEC /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; + E69EBACB28DF283A0057EDEC /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; + E69EBACC28DF28420057EDEC /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; + E69EBACD28DF284D0057EDEC /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/InfoPlist.strings"; sourceTree = ""; }; + E69EBACE28DF28560057EDEC /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; /* End PBXFileReference section */ @@ -277,6 +282,11 @@ en, Base, "zh-Hans", + de, + it, + ko, + "pt-BR", + vi, ); mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; @@ -496,6 +506,11 @@ children = ( 5EE088CA26297820007E5FEC /* en */, 5EE088CD2629786B007E5FEC /* zh-Hans */, + E69EBACA28DF282D0057EDEC /* de */, + E69EBACB28DF283A0057EDEC /* it */, + E69EBACC28DF28420057EDEC /* ko */, + E69EBACD28DF284D0057EDEC /* pt-BR */, + E69EBACE28DF28560057EDEC /* vi */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/ios/vi.lproj/InfoPlist.strings b/ios/vi.lproj/InfoPlist.strings new file mode 100644 index 00000000..e003125a --- /dev/null +++ b/ios/vi.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +"NSPhotoLibraryAddUsageDescription" = "Cho phép quá nhiều để lưu hình ảnh vào thư viện ảnh của bạn"; +"NSPhotoLibraryUsageDescription" = "Cho phép quá nhiều để lưu hình ảnh vào thư viện ảnh của bạn"; diff --git a/ios/zh-Hans.lproj/InfoPlist.strings b/ios/zh-Hans.lproj/InfoPlist.strings index 67025bd4..72eac37d 100644 --- a/ios/zh-Hans.lproj/InfoPlist.strings +++ b/ios/zh-Hans.lproj/InfoPlist.strings @@ -1,10 +1,2 @@ -/* - InfoPlist.strings - tooot - - Created by Zheng Zhiyuan (SEBD) on 2021-04-16. - -*/ - "NSPhotoLibraryAddUsageDescription" = "允许tooot保存图片至相册"; -"NSPhotoLibraryUsageDescription" = "允许tooot读取相册图片或视频,以添加嘟文附件"; +"NSPhotoLibraryUsageDescription" = "允许tooot保存图片至相册"; diff --git a/src/screens/Tabs/Me/Settings/Dev.tsx b/src/screens/Tabs/Me/Settings/Dev.tsx index 94b6d68e..35a50752 100644 --- a/src/screens/Tabs/Me/Settings/Dev.tsx +++ b/src/screens/Tabs/Me/Settings/Dev.tsx @@ -7,6 +7,7 @@ import { persistor } from '@root/store' import { getInstanceActive, getInstances } from '@utils/slices/instancesSlice' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' +import * as Localization from 'expo-localization' import React from 'react' import { DevSettings } from 'react-native' import { useSelector } from 'react-redux' @@ -19,6 +20,16 @@ const SettingsDev: React.FC = () => { return ( + + {JSON.stringify(Localization.locales)} + Date: Sat, 24 Sep 2022 14:41:27 +0200 Subject: [PATCH 3/3] Remove codeql analysis --- .github/workflows/codeql-analysis.yml | 70 --------------------------- README.md | 4 +- 2 files changed, 2 insertions(+), 72 deletions(-) delete mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index dda1c8c7..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,70 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ main ] - # pull_request: - # # The branches below must be a subset of the branches above - # branches: [ main ] - # schedule: - # - cron: '35 4 * * 4' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://git.io/codeql-language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/README.md b/README.md index dd99cf9d..551b20e3 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # [tooot](https://tooot.app/) app for Mastodon -[![GPL-3.0](https://img.shields.io/github/license/tooot-app/push)](LICENSE) ![GitHub issues](https://img.shields.io/github/issues/tooot-app/app) ![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/tooot-app/app?include_prereleases) ![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/tooot-app/app) [![Crowdin](https://badges.crowdin.net/tooot/localized.svg)](https://crowdin.tooot.app/project/tooot) +[![GPL-3.0](https://img.shields.io/github/license/tooot-app/push)](LICENSE) ![GitHub issues](https://img.shields.io/github/issues/tooot-app/app) ![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/tooot-app/app?include_prereleases) [![Crowdin](https://badges.crowdin.net/tooot/localized.svg)](https://crowdin.tooot.app/project/tooot) -![GitHub Workflow Status](https://img.shields.io/github/workflow/status/tooot-app/app/build) ![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/tooot-app/app/build/candidate?label=build%20candidate) ![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/tooot-app/app/build/release?label=build%20release) +![GitHub Workflow Status (candidate)](https://img.shields.io/github/workflow/status/tooot-app/app/build/candidate?label=build%20candidate) ![GitHub Workflow Status (release)](https://img.shields.io/github/workflow/status/tooot-app/app/build/release?label=build%20release) ## Contribute to translation