diff --git a/projects/Mallard/ios/Mallard.xcodeproj/project.pbxproj b/projects/Mallard/ios/Mallard.xcodeproj/project.pbxproj index 0e926d393..729b0d2b9 100644 --- a/projects/Mallard/ios/Mallard.xcodeproj/project.pbxproj +++ b/projects/Mallard/ios/Mallard.xcodeproj/project.pbxproj @@ -99,7 +99,7 @@ 00E356EE1AD99517003FC87E /* MallardTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MallardTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* MallardTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MallardTests.m; sourceTree = ""; }; - 02E1B622A3A40B9AA4D2A0D0 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Mallard/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 02E1B622A3A40B9AA4D2A0D0 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Mallard/PrivacyInfo.xcprivacy; sourceTree = ""; }; 066221D953054F3682287E74 /* GuardianTextEgyptian-RegIt.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "GuardianTextEgyptian-RegIt.ttf"; path = "../src/assets/fonts/GuardianTextEgyptian-RegIt.ttf"; sourceTree = ""; }; 0BAE21BBF3F8EE5432E6C63F /* Pods-Mallard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mallard.release.xcconfig"; path = "Target Support Files/Pods-Mallard/Pods-Mallard.release.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* Guardian Editions.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Guardian Editions.app"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -130,7 +130,7 @@ 78F4F0CCE3DEAAA92756A4D3 /* Pods-MallardTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MallardTests.debug.xcconfig"; path = "Target Support Files/Pods-MallardTests/Pods-MallardTests.debug.xcconfig"; sourceTree = ""; }; 79BBF3A13361423996CF9307 /* GuardianIcons-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "GuardianIcons-Regular.otf"; path = "../src/assets/fonts/GuardianIcons-Regular.otf"; sourceTree = ""; }; 7FE20416D3D243E5A4320927 /* 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; }; - 83755ADD9036308F5B27CC7A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Mallard/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 83755ADD9036308F5B27CC7A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Mallard/PrivacyInfo.xcprivacy; sourceTree = ""; }; 8667926B5E05ACF532B86834 /* Pods-Mallard-MallardTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mallard-MallardTests.debug.xcconfig"; path = "Target Support Files/Pods-Mallard-MallardTests/Pods-Mallard-MallardTests.debug.xcconfig"; sourceTree = ""; }; 896089CD248679CF00DCBF7D /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 90A50D1828ED405BB7AD9145 /* GuardianTextEgyptian-Reg.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "GuardianTextEgyptian-Reg.ttf"; path = "../src/assets/fonts/GuardianTextEgyptian-Reg.ttf"; sourceTree = ""; }; @@ -678,6 +678,7 @@ "${PODS_CONFIGURATION_BUILD_DIR}/RNBackgroundFetch/TSBackgroundFetchPrivacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( @@ -691,6 +692,7 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TSBackgroundFetchPrivacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SSZipArchive.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -767,6 +769,7 @@ "${PODS_CONFIGURATION_BUILD_DIR}/RNBackgroundFetch/TSBackgroundFetchPrivacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( @@ -780,6 +783,7 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TSBackgroundFetchPrivacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SSZipArchive.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/projects/Mallard/ios/Podfile b/projects/Mallard/ios/Podfile index 503bbe969..90b1a0bf7 100644 --- a/projects/Mallard/ios/Podfile +++ b/projects/Mallard/ios/Podfile @@ -9,7 +9,7 @@ require Pod::Executable.execute_command('node', ['-p', $RNFirebaseAnalyticsWithoutAdIdSupport = true -platform :ios, '13.4' +platform :ios, '15.5' prepare_react_native_project! setup_permissions([ @@ -48,6 +48,7 @@ $RNFirebaseAsStaticFramework = true # Pods for testing end + post_install do |installer| # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 react_native_post_install( @@ -60,6 +61,16 @@ $RNFirebaseAsStaticFramework = true config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end installer.pods_project.targets.each do |target| + if target.name == 'BoringSSL-GRPC' + target.source_build_phase.files.each do |file| + if file.settings && file.settings['COMPILER_FLAGS'] + flags = file.settings['COMPILER_FLAGS'].split + flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' } + file.settings['COMPILER_FLAGS'] = flags.join(' ') + end + end + end + if (target.name&.eql?('FBReactNativeSpec')) target.build_phases.each do |build_phase| if (build_phase.respond_to?(:name) && build_phase.name.eql?('[CP-User] Generate Specs')) @@ -69,4 +80,7 @@ $RNFirebaseAsStaticFramework = true end end end -end \ No newline at end of file +end + + + diff --git a/projects/Mallard/ios/Podfile.lock b/projects/Mallard/ios/Podfile.lock index f4e557e6d..51b3064f8 100644 --- a/projects/Mallard/ios/Podfile.lock +++ b/projects/Mallard/ios/Podfile.lock @@ -1137,7 +1137,7 @@ PODS: - React - react-native-splash-screen (3.3.0): - React-Core - - react-native-webview (13.10.5): + - react-native-webview (13.12.2): - DoubleConversion - glog - hermes-engine @@ -1545,13 +1545,13 @@ PODS: - Yoga - RNSVG (15.5.0): - React-Core - - RNZipArchive (6.0.9): + - RNZipArchive (7.0.1): - React-Core - - RNZipArchive/Core (= 6.0.9) - - SSZipArchive (~> 2.2) - - RNZipArchive/Core (6.0.9): + - RNZipArchive/Core (= 7.0.1) + - SSZipArchive (~> 2.5.5) + - RNZipArchive/Core (7.0.1): - React-Core - - SSZipArchive (~> 2.2) + - SSZipArchive (~> 2.5.5) - SDWebImage (5.11.1): - SDWebImage/Core (= 5.11.1) - SDWebImage/Core (5.11.1) @@ -1559,7 +1559,7 @@ PODS: - libwebp (~> 1.0) - SDWebImage/Core (~> 5.10) - SocketRocket (0.7.0) - - SSZipArchive (2.4.3) + - SSZipArchive (2.5.5) - Yoga (0.0.0) DEPENDENCIES: @@ -1934,7 +1934,7 @@ SPEC CHECKSUMS: react-native-safe-area-context: b7daa1a8df36095a032dff095a1ea8963cb48371 react-native-safe-area-insets: 5f827f8f343c8a02347a65f1a7861c195dcb1a2c react-native-splash-screen: 4312f786b13a81b5169ef346d76d33bc0c6dc457 - react-native-webview: 553abd09f58e340fdc7746c9e2ae096839e99911 + react-native-webview: 8d746f921964c87b87b190bf6a46fa148d40cd0f React-nativeconfig: ba9a2e54e2f0882cf7882698825052793ed4c851 React-NativeModulesApple: 8d11ff8955181540585c944cf48e9e7236952697 React-perflogger: ed4e0c65781521e0424f2e5e40b40cc7879d737e @@ -1981,13 +1981,13 @@ SPEC CHECKSUMS: RNReanimated: 45553a3ae29a75a76269595f8554d07d4090e392 RNScreens: aa943ad421c3ced3ef5a47ede02b0cbfc43a012e RNSVG: b986585e367f4a49d8aa43065066cc9c290b3d9b - RNZipArchive: 68a0c6db4b1c103f846f1559622050df254a3ade + RNZipArchive: 7bb4c70d6aa2dd235212c0a4a3de0a4e237e2569 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef + SSZipArchive: c69881e8ac5521f0e622291387add5f60f30f3c4 Yoga: 2246eea72aaf1b816a68a35e6e4b74563653ae09 -PODFILE CHECKSUM: d4d3a3fba6c6ad741007029c7bfa9fb6429eee61 +PODFILE CHECKSUM: 27f1378175150e610127c984db637f685a6102a1 COCOAPODS: 1.14.3 diff --git a/projects/Mallard/package.json b/projects/Mallard/package.json index cc7982b44..ad72fc301 100644 --- a/projects/Mallard/package.json +++ b/projects/Mallard/package.json @@ -91,8 +91,8 @@ "react-native-splash-screen": "^3.3.0", "react-native-status-bar-height": "^2.4.0", "react-native-svg": "^15.4.0", - "react-native-webview": "^13.10.5", - "react-native-zip-archive": "6.0.9" + "react-native-webview": "^13.12.2", + "react-native-zip-archive": "7.0.1" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/projects/Mallard/src/components/article/types/crossword.tsx b/projects/Mallard/src/components/article/types/crossword.tsx index 7b3b8ad5f..deb0af47a 100644 --- a/projects/Mallard/src/components/article/types/crossword.tsx +++ b/projects/Mallard/src/components/article/types/crossword.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { StyleSheet } from 'react-native'; +import { Alert, StyleSheet } from 'react-native'; import { WebView } from 'react-native-webview'; import type { CrosswordArticle } from '../../../common'; import { getBundleUri } from '../../../helpers/webview'; @@ -28,6 +28,12 @@ const Crossword = ({ style={styles.flex} webviewDebuggingEnabled bounces={false} + onContentProcessDidTerminate={() => { + Alert.alert( + 'Error', + 'Content process terminated, please try again', + ); + }} /> ); }; diff --git a/projects/Mallard/yarn.lock b/projects/Mallard/yarn.lock index be1d62e93..bc6a2d0eb 100644 --- a/projects/Mallard/yarn.lock +++ b/projects/Mallard/yarn.lock @@ -6076,13 +6076,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:2.0.0, escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - "escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -6090,6 +6083,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -9031,8 +9031,8 @@ __metadata: react-native-splash-screen: ^3.3.0 react-native-status-bar-height: ^2.4.0 react-native-svg: ^15.4.0 - react-native-webview: ^13.10.5 - react-native-zip-archive: 6.0.9 + react-native-webview: ^13.12.2 + react-native-zip-archive: 7.0.1 react-test-renderer: 18.2.0 typescript: 5.0.4 languageName: unknown @@ -10756,26 +10756,26 @@ __metadata: languageName: node linkType: hard -"react-native-webview@npm:^13.10.5": - version: 13.10.5 - resolution: "react-native-webview@npm:13.10.5" +"react-native-webview@npm:^13.12.2": + version: 13.12.2 + resolution: "react-native-webview@npm:13.12.2" dependencies: - escape-string-regexp: 2.0.0 + escape-string-regexp: ^4.0.0 invariant: 2.2.4 peerDependencies: react: "*" react-native: "*" - checksum: fa4bd3885a405236474d2baf455d81bddc024874ec012884fbded02f47303c47c00edaf8ef7072eb52e6fb8c68f1f2fd2abe6ca5890ae217102e7742ab97f3f8 + checksum: d84b2e2e75dc484eb40f8e285607b9686693f2d31e95802e2b358dc0820bcc294b438a77174eba157c31d95675c962c61c94885629af999416ad1355e9618fe0 languageName: node linkType: hard -"react-native-zip-archive@npm:6.0.9": - version: 6.0.9 - resolution: "react-native-zip-archive@npm:6.0.9" +"react-native-zip-archive@npm:7.0.1": + version: 7.0.1 + resolution: "react-native-zip-archive@npm:7.0.1" peerDependencies: react: ">=16.8.6" react-native: ">=0.60.0" - checksum: 96c83864a596fcd8a82f55a01fa5e97822c9e80c7cf55de6b011a27cc436fbf58371207cb61c63b19dbd22b852ee62b95935358b4b9a73686695133dffdcfe27 + checksum: 2f7747d2ed903102e0d097921d1a019311f0c23c9ceb15304c39d699fba380e60b70cb1474b1fb516d114514af2a3c8a88ee5690f83d0a92d87500d095ba2b39 languageName: node linkType: hard