diff --git a/.github/workflows/mobile.yml b/.github/workflows/mobile.yml
index 8fa9dfdf0f6..dbd607c362b 100644
--- a/.github/workflows/mobile.yml
+++ b/.github/workflows/mobile.yml
@@ -432,7 +432,7 @@ jobs:
# iOS Release Candidate: Build and upload
mobile-build-upload-releasecandidate-ios:
name: iOS Release Candidate Build & Upload
- runs-on: macos-15
+ runs-on: macos-26
needs: [mobile-install, mobile-version-check]
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' && needs.mobile-version-check.outputs.version_changed == 'true'
steps:
@@ -834,7 +834,7 @@ jobs:
# iOS Production: Build and upload (requires approval)
mobile-build-upload-production-ios-main:
name: iOS Production Build & Upload
- runs-on: macos-15
+ runs-on: macos-26
needs: [mobile-install, mobile-version-check]
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' && needs.mobile-version-check.outputs.version_changed == 'true'
environment:
diff --git a/package-lock.json b/package-lock.json
index 64b2bda8be6..4cfbf46fdf5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5754,7 +5754,6 @@
},
"node_modules/@clack/prompts/node_modules/is-unicode-supported": {
"version": "1.3.0",
- "extraneous": true,
"inBundle": true,
"license": "MIT",
"engines": {
@@ -87388,6 +87387,29 @@
"react-native-pager-view": ">= 6.0.0"
}
},
+ "node_modules/react-native-track-player": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/react-native-track-player/-/react-native-track-player-4.1.2.tgz",
+ "integrity": "sha512-cIgMlqVJx/95hirUWPRW8CHxiBFj9Rjl/voKHh2jF/2URYMTQyt76t/m2FKvjeYUW2doKv4QSCBIOUmtyDLtJw==",
+ "license": "Apache-2.0",
+ "funding": {
+ "url": "https://github.com/doublesymmetry/react-native-track-player?sponsor=1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.6",
+ "react-native": ">=0.60.0-rc.2",
+ "react-native-windows": ">=0.63.0",
+ "shaka-player": "^4.7.9"
+ },
+ "peerDependenciesMeta": {
+ "react-native-windows": {
+ "optional": true
+ },
+ "shaka-player": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-native-version-number": {
"version": "0.3.6",
"license": "MIT"
@@ -127552,7 +127574,7 @@
},
"packages/mobile": {
"name": "@audius/mobile",
- "version": "1.5.180",
+ "version": "1.5.183",
"dependencies": {
"@amplitude/analytics-react-native": "1.4.11",
"@audius/common": "*",
@@ -127661,7 +127683,7 @@
"react-native-svg": "^15.11.2",
"react-native-svg-transformer": "1.5.0",
"react-native-tab-view": "4.2.0",
- "react-native-track-player": "4.0.1",
+ "react-native-track-player": "4.1.2",
"react-native-url-polyfill": "2.0.0",
"react-native-version-number": "0.3.6",
"react-native-video": "6.18.0",
@@ -130071,25 +130093,6 @@
"react-native": "*"
}
},
- "packages/mobile/node_modules/react-native-track-player": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/react-native-track-player/-/react-native-track-player-4.0.1.tgz",
- "integrity": "sha512-DpqKL4TQS0kGlHwEtmMrL++mdgWb+uc75eQiP3vfYSlgvAJjbXbkL9h+cofndSuq4TTCp8jclAK+hZKqtMw6+A==",
- "license": "Apache-2.0",
- "funding": {
- "url": "https://github.com/doublesymmetry/react-native-track-player?sponsor=1"
- },
- "peerDependencies": {
- "react": ">=16.8.6",
- "react-native": ">=0.60.0-rc.2",
- "react-native-windows": ">=0.63.0"
- },
- "peerDependenciesMeta": {
- "react-native-windows": {
- "optional": true
- }
- }
- },
"packages/mobile/node_modules/react-native-url-polyfill": {
"version": "2.0.0",
"license": "MIT",
diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle
index fed87da48fb..589fb130426 100755
--- a/packages/mobile/android/app/build.gradle
+++ b/packages/mobile/android/app/build.gradle
@@ -46,7 +46,12 @@ react {
// extraPackagerArgs = []
/* Hermes Commands */
// The hermes compiler command to run. By default it is 'hermesc'
- // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
+ // The RN Gradle plugin's hermesc lookup is anchored at `root` and only
+ // considers `root/node_modules/react-native/sdks/hermesc/...`. Since RN
+ // is hoisted to the monorepo node_modules, that lookup fails. Point the
+ // plugin at the hoisted prebuilt hermesc explicitly (%OS-BIN% is
+ // substituted by the plugin at runtime).
+ hermesCommand = "$rootDir/../../../node_modules/react-native/sdks/hermesc/%OS-BIN%/hermesc"
//
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
// hermesFlags = ["-O", "-output-source-map"]
@@ -129,7 +134,7 @@ android {
// versionCode is automatically incremented in CI
versionCode 1
// Make sure this is above the currently released Android version in the play store if your changes touch native code:
- versionName "1.1.531"
+ versionName "1.1.533"
resValue "string", "build_config_package", "co.audius.app"
resConfigs "en"
}
diff --git a/packages/mobile/ios/AudiusReactNative/Info.plist b/packages/mobile/ios/AudiusReactNative/Info.plist
index 524bbc7e0d3..186ccefd4dd 100644
--- a/packages/mobile/ios/AudiusReactNative/Info.plist
+++ b/packages/mobile/ios/AudiusReactNative/Info.plist
@@ -17,7 +17,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 1.1.195
+ 1.1.197
CFBundleSignature
????
CFBundleURLTypes
diff --git a/packages/mobile/ios/Gemfile.lock b/packages/mobile/ios/Gemfile.lock
index 36ac3909a34..a2d9dbeecd3 100644
--- a/packages/mobile/ios/Gemfile.lock
+++ b/packages/mobile/ios/Gemfile.lock
@@ -302,7 +302,7 @@ DEPENDENCIES
bigdecimal
cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
concurrent-ruby (< 1.3.4)
- fastlane (>= 2.228.0)
+ fastlane (= 2.234.0)
fastlane-plugin-versioning
logger
mutex_m
diff --git a/packages/mobile/ios/Podfile b/packages/mobile/ios/Podfile
index 3d5fc4dfe6b..f614fee63a6 100644
--- a/packages/mobile/ios/Podfile
+++ b/packages/mobile/ios/Podfile
@@ -97,6 +97,22 @@ target 'AudiusReactNative' do
end
end
+ # Xcode 26 / Apple Clang enforces stricter consteval evaluation, which
+ # breaks the fmt 11.0.2 that React Native 0.79 pins:
+ # Pods/fmt/include/fmt/format-inl.h:59: error: call to consteval
+ # function 'fmt::basic_format_string<...>' is not a constant expression
+ # FMT_USE_CONSTEVAL=0 forces the constexpr fallback. Fixed upstream in
+ # fmt 11.1+ / RN 0.80; this is a stopgap until we upgrade RN.
+ installer.pods_project.targets.each do |target|
+ next unless target.name == 'fmt'
+ target.build_configurations.each do |config|
+ defs = config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] || ['$(inherited)']
+ defs = [defs] unless defs.is_a?(Array)
+ defs << 'FMT_USE_CONSTEVAL=0' unless defs.include?('FMT_USE_CONSTEVAL=0')
+ config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = defs
+ end
+ end
+
end
end
diff --git a/packages/mobile/package.json b/packages/mobile/package.json
index e6d2f852f70..02574955bc7 100644
--- a/packages/mobile/package.json
+++ b/packages/mobile/package.json
@@ -1,6 +1,6 @@
{
"name": "@audius/mobile",
- "version": "1.5.182",
+ "version": "1.5.184",
"private": true,
"scripts": {
"android:dev": "ENVFILE=.env.dev turbo run android -- --mode=prodDebug",
@@ -149,7 +149,7 @@
"react-native-svg": "^15.11.2",
"react-native-svg-transformer": "1.5.0",
"react-native-tab-view": "4.2.0",
- "react-native-track-player": "4.0.1",
+ "react-native-track-player": "4.1.2",
"react-native-url-polyfill": "2.0.0",
"react-native-version-number": "0.3.6",
"react-native-video": "6.18.0",