diff --git a/Gemfile b/Gemfile index d642d3d7..4ff5505f 100644 --- a/Gemfile +++ b/Gemfile @@ -14,6 +14,9 @@ gem 'bigdecimal' gem 'logger' gem 'benchmark' gem 'mutex_m' +# CFPropertyList (a CocoaPods dep) requires 'kconv', which Ruby 3.4 removed +# from the standard library; the nkf gem ships kconv.rb and restores it. +gem 'nkf' gem "fastlane" eval_gemfile("fastlane/Pluginfile") diff --git a/Gemfile.lock b/Gemfile.lock index 2d81a2e6..dde432f7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,7 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.6) - rexml + CFPropertyList (3.0.8) activesupport (7.1.3.2) base64 bigdecimal @@ -235,6 +234,7 @@ GEM nap (1.1.0) naturally (2.3.0) netrc (0.11.0) + nkf (0.3.0) optparse (0.6.0) os (1.1.4) plist (3.7.2) @@ -301,6 +301,7 @@ DEPENDENCIES fastlane-plugin-versioning logger mutex_m + nkf xcodeproj (< 1.26.0) RUBY VERSION diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 1c169c51..a9baea6b 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -2,7 +2,7 @@ fastlane_require "base64" fastlane_require "fileutils" fastlane_require "json" -IOS_APP_VERSION = "2.2.2" +IOS_APP_VERSION = "2.2.3" ANDROID_APP_VERSION = "2.2.0" # run `fastlane bootstrap` after editing this PROJECT_NAME = "Discourse" IOS_TEAM_ID = "6T3LU73T8S" diff --git a/ios/Discourse.xcodeproj/project.pbxproj b/ios/Discourse.xcodeproj/project.pbxproj index 35cf5626..7641b07b 100644 --- a/ios/Discourse.xcodeproj/project.pbxproj +++ b/ios/Discourse.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 695; + CURRENT_PROJECT_VERSION = 700; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 6T3LU73T8S; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 6T3LU73T8S; @@ -498,7 +498,7 @@ PRODUCT_BUNDLE_IDENTIFIER = org.discourse.DiscourseApp; PRODUCT_NAME = Discourse; PROVISIONING_PROFILE_SPECIFIER = "match AdHoc org.discourse.DiscourseApp"; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AdHoc org.discourse.DiscourseApp 1776778144"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AdHoc org.discourse.DiscourseApp 1784743760"; SWIFT_OBJC_BRIDGING_HEADER = "Discourse-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -516,7 +516,7 @@ CODE_SIGN_ENTITLEMENTS = Discourse/Discourse.entitlements; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 695; + CURRENT_PROJECT_VERSION = 700; DEVELOPMENT_TEAM = 6T3LU73T8S; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 6T3LU73T8S; ENABLE_BITCODE = NO; @@ -605,10 +605,7 @@ LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift$(inherited)"; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = ( - "$(inherited)", - " ", - ); + OTHER_LDFLAGS = "$(inherited) "; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; @@ -664,10 +661,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.0; LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift$(inherited)"; MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ( - "$(inherited)", - " ", - ); + OTHER_LDFLAGS = "$(inherited) "; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; @@ -702,7 +696,7 @@ PRODUCT_BUNDLE_IDENTIFIER = org.discourse.DiscourseApp.ShareExtension; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match AdHoc org.discourse.DiscourseApp.ShareExtension"; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AdHoc org.discourse.DiscourseApp.ShareExtension 1776778146"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AdHoc org.discourse.DiscourseApp.ShareExtension 1784743763"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; diff --git a/ios/Discourse/Info.plist b/ios/Discourse/Info.plist index cf556b3e..7b7a260c 100644 --- a/ios/Discourse/Info.plist +++ b/ios/Discourse/Info.plist @@ -19,7 +19,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.2.2 + 2.2.3 CFBundleSignature ???? CFBundleURLTypes @@ -37,7 +37,7 @@ CFBundleVersion - 695 + 700 Fabric APIKey diff --git a/ios/Podfile b/ios/Podfile index 76906ac4..30e76fe0 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -33,6 +33,18 @@ target 'Discourse' do # :ccache_enabled => true ) + # fmt 11.0.2 fails to compile with Xcode 26.4+ because its consteval + # implementation is incompatible with the newer Apple Clang. React Native + # 0.80 pins that fmt version, so compile only this pod as C++17 until React + # Native is upgraded to a version that includes a newer fmt release. + installer.pods_project.targets.each do |target| + next unless target.name == "fmt" + + target.build_configurations.each do |build_config| + build_config.build_settings["CLANG_CXX_LANGUAGE_STANDARD"] = "c++17" + end + end + # fix the "No template named 'unary_function'" error # see https://stackoverflow.com/questions/77133361/no-template-named-unary-function-in-namespace-std-did-you-mean-unary-fun # should be fixed in RN 0.72.5+ @@ -63,4 +75,4 @@ target 'Discourse' do strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path) end -end \ No newline at end of file +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index bd58ebf1..400121e1 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1776,7 +1776,7 @@ PODS: - react-native-segmented-control (2.2.2): - React-Core - react-native-vector-icons-fontawesome5 (12.2.0) - - react-native-webview (13.16.0): + - react-native-webview (13.17.0): - boost - DoubleConversion - fast_float @@ -2968,12 +2968,12 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 - DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb + boost: 1dca942403ed9342f98334bf4c3621f011aa7946 + DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 FBLazyVector: 86588b5a1547e7a417942a08f49559b184e002c8 - fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd - glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 + fmt: 01b82d4ca6470831d1cc0852a1af644be019e8f6 + glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a hermes-engine: bbc1152da7d2d40f9e59c28acc6576fcf5d28e2a RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 RCTDeprecation: 300c5eb91114d4339b0bb39505d0f4824d7299b7 @@ -3015,7 +3015,7 @@ SPEC CHECKSUMS: react-native-safe-area-context: 8ed800930eb7d0b6651218f69656e823d37b6ef7 react-native-segmented-control: be570ddc1678933470a39471e0ebd824f23e39a8 react-native-vector-icons-fontawesome5: 1199fa2cf3323fac0b9b52b2aecb1329aa3602a5 - react-native-webview: 38b7d49cbe748b6fa02381be0a097d3922caf94a + react-native-webview: a685ccea981f1410f67245117d44bfb91c6d7df6 React-NativeModulesApple: 37c08c3c54db55854de816b0df0f3683832be35a React-oscompat: 56d6de59f9ae95cd006a1c40be2cde83bc06a4e1 React-perflogger: 4008bd05a8b6c157b06608c0ea0b8bd5d9c5e6c9 @@ -3062,6 +3062,6 @@ SPEC CHECKSUMS: SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: a742cc68e8366fcfc681808162492bc0aa7a9498 -PODFILE CHECKSUM: 105b7f665a0c7a8986fa1cec6c9c9d43743ea208 +PODFILE CHECKSUM: 8125ac004090fc2c53beddf13d18c2becd0d99e9 COCOAPODS: 1.16.2 diff --git a/ios/ShareExtension/Info.plist b/ios/ShareExtension/Info.plist index d7daa81b..a01b4454 100644 --- a/ios/ShareExtension/Info.plist +++ b/ios/ShareExtension/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 2.2.2 + 2.2.3 CFBundleVersion - 695 + 700 NSExtension NSExtensionAttributes diff --git a/js/screens/WebViewScreenComponents/WebViewComponent.js b/js/screens/WebViewScreenComponents/WebViewComponent.js index 97c10355..e957fe57 100644 --- a/js/screens/WebViewScreenComponents/WebViewComponent.js +++ b/js/screens/WebViewScreenComponents/WebViewComponent.js @@ -196,7 +196,7 @@ class WebViewComponent extends React.Component { allowsInlineMediaPlayback={true} allowsFullscreenVideo={true} allowsLinkPreview={true} - hideKeyboardAccessoryView={false} + hideKeyboardAccessoryView={!Platform.isPad} webviewDebuggingEnabled={true} onLoadEnd={() => { this.webview.requestFocus(); diff --git a/package.json b/package.json index 685ada32..24fcefa8 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "react-native-siri-shortcut": "^3.2.4", "react-native-svg": "^15.1.0", "react-native-toast-message": "^2.1.7", - "react-native-webview": "^13.12.3", + "react-native-webview": "^13.16.0", "react-native-worklets": "^0.5.0" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 896779d0..75ccc1a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4297,6 +4297,87 @@ __metadata: languageName: node linkType: hard +"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260707.2": + version: 7.0.0-dev.20260707.2 + resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260707.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260707.2": + version: 7.0.0-dev.20260707.2 + resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260707.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260707.2": + version: 7.0.0-dev.20260707.2 + resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260707.2" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260707.2": + version: 7.0.0-dev.20260707.2 + resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260707.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260707.2": + version: 7.0.0-dev.20260707.2 + resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260707.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260707.2": + version: 7.0.0-dev.20260707.2 + resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260707.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260707.2": + version: 7.0.0-dev.20260707.2 + resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260707.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@typescript/native-preview@npm:^7.0.0-dev.20260301.1": + version: 7.0.0-dev.20260707.2 + resolution: "@typescript/native-preview@npm:7.0.0-dev.20260707.2" + dependencies: + "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260707.2" + "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260707.2" + "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260707.2" + "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260707.2" + "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260707.2" + "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260707.2" + "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260707.2" + dependenciesMeta: + "@typescript/native-preview-darwin-arm64": + optional: true + "@typescript/native-preview-darwin-x64": + optional: true + "@typescript/native-preview-linux-arm": + optional: true + "@typescript/native-preview-linux-arm64": + optional: true + "@typescript/native-preview-linux-x64": + optional: true + "@typescript/native-preview-win32-arm64": + optional: true + "@typescript/native-preview-win32-x64": + optional: true + bin: + tsgo: bin/tsgo + checksum: 10/c0fa2e0326b205e5542bd063e85e34622d11db6c364f43d898e4f7473cc73dc40244b7616252f28d5e9ace71126bd09cc7c9eb3e26788fe20daa30091f77afcb + languageName: node + linkType: hard + "@vscode/sudo-prompt@npm:^9.0.0": version: 9.3.1 resolution: "@vscode/sudo-prompt@npm:9.3.1" @@ -6173,7 +6254,7 @@ __metadata: react-native-siri-shortcut: "npm:^3.2.4" react-native-svg: "npm:^15.1.0" react-native-toast-message: "npm:^2.1.7" - react-native-webview: "npm:^13.12.3" + react-native-webview: "npm:^13.16.0" react-native-worklets: "npm:^0.5.0" react-test-renderer: "npm:19.1.0" typescript: "npm:5.0.4" @@ -12042,16 +12123,17 @@ __metadata: languageName: node linkType: hard -"react-native-webview@npm:^13.12.3": - version: 13.16.0 - resolution: "react-native-webview@npm:13.16.0" +"react-native-webview@npm:^13.16.0": + version: 13.17.0 + resolution: "react-native-webview@npm:13.17.0" dependencies: + "@typescript/native-preview": "npm:^7.0.0-dev.20260301.1" escape-string-regexp: "npm:^4.0.0" invariant: "npm:2.2.4" peerDependencies: react: "*" react-native: "*" - checksum: 10/dc3d84c4785676bac3f316ec2119d3239f64fd8b18400dcc1cf8fa4f05b9bf677cf167aa4e7da72c9f60760eb6303c99da22324e15ff5fb380a3b1b31f531132 + checksum: 10/60ebb1f2519f554babce01c72d308cac9cbb1f86d5bfd7e9a8d2b89e26aa2adec3f514a296142f3020357ded3203009d716fbed204e89298449bb3b78bda955d languageName: node linkType: hard