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