diff --git a/native/Gemfile b/native/Gemfile --- a/native/Gemfile +++ b/native/Gemfile @@ -8,3 +8,4 @@ gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' gem 'xcodeproj', '< 1.26.0' gem 'concurrent-ruby', '< 1.3.4' +gem "cocoapods-swift-modular-headers" \ No newline at end of file diff --git a/native/Gemfile.lock b/native/Gemfile.lock --- a/native/Gemfile.lock +++ b/native/Gemfile.lock @@ -9,22 +9,22 @@ minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.8.1) - public_suffix (>= 2.0.2, < 6.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) atomos (0.1.3) claide (1.1.0) - cocoapods (1.11.3) + cocoapods (1.15.2) addressable (~> 2.8) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.11.3) + cocoapods-core (= 1.15.2) cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.4.0, < 2.0) + cocoapods-downloader (>= 2.1, < 3.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.4.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) escape (~> 0.0.4) @@ -32,10 +32,10 @@ gh_inspector (~> 1.0) molinillo (~> 0.8.0) nap (~> 1.0) - ruby-macho (>= 1.0, < 3.0) - xcodeproj (>= 1.21.0, < 2.0) - cocoapods-core (1.11.3) - activesupport (>= 5.0, < 7) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.23.0, < 2.0) + cocoapods-core (1.15.2) + activesupport (>= 5.0, < 8) addressable (~> 2.8) algoliasearch (~> 1.0) concurrent-ruby (~> 1.1) @@ -45,10 +45,11 @@ public_suffix (~> 4.0) typhoeus (~> 1.0) cocoapods-deintegrate (1.0.5) - cocoapods-downloader (1.6.3) + cocoapods-downloader (2.1) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.1) + cocoapods-swift-modular-headers (0.0.2) cocoapods-trunk (1.6.0) nap (>= 0.8, < 2.0) netrc (~> 0.11) @@ -56,29 +57,31 @@ colored2 (3.1.2) concurrent-ruby (1.2.2) escape (0.0.4) - ethon (0.15.0) + ethon (0.16.0) ffi (>= 1.15.0) - ffi (1.15.5) + ffi (1.17.2) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) - httpclient (2.8.3) + httpclient (2.9.0) + mutex_m i18n (1.14.1) concurrent-ruby (~> 1.0) - json (2.6.2) + json (2.7.6) minitest (5.19.0) molinillo (0.8.0) + mutex_m (0.3.0) nanaimo (0.3.0) nap (1.1.0) netrc (0.11.0) public_suffix (4.0.7) rexml (3.2.5) ruby-macho (2.5.1) - typhoeus (1.4.0) + typhoeus (1.4.1) ethon (>= 0.9.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - xcodeproj (1.22.0) + xcodeproj (1.24.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -91,10 +94,14 @@ ruby DEPENDENCIES - cocoapods (~> 1.11, >= 1.11.3) + activesupport (>= 6.1.7.5, != 7.1.0) + cocoapods (>= 1.13, != 1.15.1, != 1.15.0) + cocoapods-swift-modular-headers + concurrent-ruby (< 1.3.4) + xcodeproj (< 1.26.0) RUBY VERSION ruby 2.7.6p219 BUNDLED WITH - 2.3.23 + 2.4.22 diff --git a/native/ios/Podfile b/native/ios/Podfile --- a/native/ios/Podfile +++ b/native/ios/Podfile @@ -4,6 +4,10 @@ require 'json' $podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} +plugin 'cocoapods-swift-modular-headers' +$RNVideoUseVideoCaching = true +apply_modular_headers_for_swift_dependencies() + ENV['RCT_NEW_ARCH_ENABLED'] = '0' if $podfile_properties['newArchEnabled'] == 'false' ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = $podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] diff --git a/native/ios/Podfile.lock b/native/ios/Podfile.lock --- a/native/ios/Podfile.lock +++ b/native/ios/Podfile.lock @@ -3,6 +3,7 @@ - CommExpoPackage (0.0.1): - ExpoModulesCore - DoubleConversion (1.1.6) + - DVAssetLoaderDelegate (0.3.3) - EXApplication (6.1.4): - ExpoModulesCore - EXConstants (17.1.6): @@ -1747,11 +1748,57 @@ - Yoga - react-native-safe-area-context (5.4.0): - React-Core - - react-native-video (5.2.1): + - react-native-video (6.14.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety - React-Core - - react-native-video/Video (= 5.2.1) - - react-native-video/Video (5.2.1): + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-hermes + - React-ImageManager + - React-jsi + - react-native-video/Video (= 6.14.0) + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-video/Video (6.14.0): + - DoubleConversion + - DVAssetLoaderDelegate (~> 0.3.1) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-hermes + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - SPTPersistentCache (~> 1.1.0) + - Yoga - react-native-webview (13.13.5): - DoubleConversion - glog @@ -2324,6 +2371,7 @@ - libwebp (~> 1.0) - SDWebImage/Core (~> 5.17) - SocketRocket (0.7.1) + - SPTPersistentCache (1.1.0) - SQLCipher-Amalgamation (4.5.5-e): - OpenSSL-Universal - SQLCipher-Amalgamation/standard (= 4.5.5-e) @@ -2464,6 +2512,7 @@ SPEC REPOS: trunk: + - DVAssetLoaderDelegate - libavif - libdav1d - libwebp @@ -2477,6 +2526,7 @@ - SDWebImageSVGCoder - SDWebImageWebPCoder - SocketRocket + - SPTPersistentCache EXTERNAL SOURCES: boost: @@ -2717,6 +2767,7 @@ boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 CommExpoPackage: 3f9d8a25537fb9d80f79a63fd1e73c51f55b87e9 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb + DVAssetLoaderDelegate: 0caec20e4e08b8560b691131539e9180024d4bce EXApplication: b28de982d44768fc593de9d19ca5a7a0e49685b1 EXConstants: be238322d57d084dc055dbd5d6fe6479510504ce EXImageLoader: ab4fcf9240cf3636a83c00e3fc5229d692899428 @@ -2790,7 +2841,7 @@ react-native-orientation-locker: 851f6510d8046ea2f14aa169b1e01fcd309a94ba react-native-pager-view: e4cf30bc28e3ccf864f6cfb90590d8cea13b7393 react-native-safe-area-context: 8870dc3e45c8d241336cd8ee3fa3fc76f3a040ac - react-native-video: 10f689069cb894d75030190a9bc62d9393e1f997 + react-native-video: cef12f163e09d41caf72fd618ba7f590e694b9c4 react-native-webview: bfc7322cc9f570bc5b5b2251fb38a08da718d00a React-NativeModulesApple: 452b86b29fae99ed0a4015dca3ad9cd222f88abf React-oscompat: ef5df1c734f19b8003e149317d041b8ce1f7d29c @@ -2840,10 +2891,11 @@ SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 + SPTPersistentCache: df36ea46762d7cf026502bbb86a8b79d0080dff4 SQLCipher-Amalgamation: 121e91239c53a3aba13ca742d6dd824c627c66ee VisionCamera: b5c2b3c45e641102902a5194af11dc532805221e - Yoga: c758bfb934100bb4bf9cbaccb52557cee35e8bdf + Yoga: 9f110fc4b7aa538663cba3c14cbb1c335f43c13f -PODFILE CHECKSUM: 5e1474a246e82fdfddfca6475d6eb9acc06f5d5a +PODFILE CHECKSUM: 566a691f4cadb4a715537e5b98cea3b69df7feb1 -COCOAPODS: 1.14.3 +COCOAPODS: 1.15.2 diff --git a/native/package.json b/native/package.json --- a/native/package.json +++ b/native/package.json @@ -116,7 +116,7 @@ "react-native-screens": "~4.10.0", "react-native-svg": "15.11.2", "react-native-tab-view": "^3.3.0", - "react-native-video": "^5.2.1", + "react-native-video": "^6.14.0", "react-native-vision-camera": "^4.6.4", "react-native-webview": "13.13.5", "react-redux": "^7.1.1", diff --git a/patches/react-native-video+5.2.1.patch b/patches/react-native-video+5.2.1.patch deleted file mode 100644 --- a/patches/react-native-video+5.2.1.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/node_modules/react-native-video/react-native-video.podspec b/node_modules/react-native-video/react-native-video.podspec -index 7013f95..c9837e9 100644 ---- a/node_modules/react-native-video/react-native-video.podspec -+++ b/node_modules/react-native-video/react-native-video.podspec -@@ -10,7 +10,7 @@ Pod::Spec.new do |s| - s.license = package['license'] - s.author = package['author'] - s.homepage = 'https://github.com/react-native-community/react-native-video' -- s.source = { :git => "https://github.com/react-native-community/react-native-video.git", :tag => "#{s.version}" } -+ s.source = { :git => "https://github.com/react-native-community/react-native-video.git", :tag => "v#{s.version}" } - - s.ios.deployment_target = "8.0" - s.tvos.deployment_target = "9.0" diff --git a/postinstall.sh b/postinstall.sh --- a/postinstall.sh +++ b/postinstall.sh @@ -14,5 +14,5 @@ yarn workspace native jetify if [[ "$OSTYPE" == "darwin"* ]]; then - (cd native/ios && PATH=/usr/bin:/bin:"$PATH" MACOSX_DEPLOYMENT_TARGET='' pod install --repo-update) + (cd native/ios && PATH=/usr/bin:/bin:"$PATH" bundle install && PATH=/usr/bin:/bin:"$PATH" MACOSX_DEPLOYMENT_TARGET='' bundle exec pod install --repo-update) fi diff --git a/yarn.lock b/yarn.lock --- a/yarn.lock +++ b/yarn.lock @@ -4132,11 +4132,6 @@ resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.79.2.tgz#15eb4da0fe9e8d61d2980d08fd06b5f49e133b0f" integrity sha512-IaY87Ckd4GTPMkO1/Fe8fC1IgIx3vc3q9Tyt/6qS3Mtk9nC0x9q4kSR5t+HHq0/MuvGtu8HpdxXGy5wLaM+zUw== -"@react-native/normalize-color@*": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" - integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== - "@react-native/normalize-colors@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.79.2.tgz#9ab70ca257c7411e4ab74cf7f91332c27d39cc6f" @@ -10211,15 +10206,6 @@ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -deprecated-react-native-prop-types@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz#c10c6ee75ff2b6de94bb127f142b814e6e08d9ab" - integrity sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA== - dependencies: - "@react-native/normalize-color" "*" - invariant "*" - prop-types "*" - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -10769,11 +10755,6 @@ minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -eme-encryption-scheme-polyfill@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/eme-encryption-scheme-polyfill/-/eme-encryption-scheme-polyfill-2.0.3.tgz#2ca6e06480e06cceb5e50efd27943ac46c959878" - integrity sha512-44CNFMsqzHdKHrzWxlS7xZ8KUHn5XutBqpmCuWzNIynmAyFInHrrD3ozv/RvK9ZhgV6QY6Easx8EWAmxteNodg== - emittery@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" @@ -14690,7 +14671,7 @@ from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@*, invariant@2.2.4, invariant@^2.2.4: +invariant@2.2.4, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -16994,11 +16975,6 @@ node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keymirror@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/keymirror/-/keymirror-0.1.1.tgz#918889ea13f8d0a42e7c557250eee713adc95c35" - integrity sha1-kYiJ6hP40KQufFVyUO7nE63JXDU= - keyv@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -20646,7 +20622,7 @@ kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@*, prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.0, prop-types@^15.8.1: +prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.0, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -21325,15 +21301,10 @@ dependencies: use-latest-callback "^0.1.5" -react-native-video@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/react-native-video/-/react-native-video-5.2.1.tgz#a17e856759d7e17eee9cbd9df0d05ba22e88d457" - integrity sha512-aJlr9MeTuQ0LpZ4n+EC9RvhoKeiPbLtI2Rxy8u7zo/wzGevbRpWHSBj9xZ5YDBXnAVXzuqyNIkGhdw7bfdIBZw== - dependencies: - deprecated-react-native-prop-types "^2.2.0" - keymirror "^0.1.1" - prop-types "^15.7.2" - shaka-player "^2.5.9" +react-native-video@^6.14.0: + version "6.14.0" + resolved "https://registry.yarnpkg.com/react-native-video/-/react-native-video-6.14.0.tgz#f8fb1e9cbaad824ce5413987d7c25970badec46e" + integrity sha512-a6hUlKr5KPZ3DBvNK95P917Sre1TH4Nvh4dVKLtKud26tHOWgYBDxBB2+vwsbLyy4fDfzQB5gac9QWaRs88Sug== react-native-vision-camera@^4.6.4: version "4.6.4" @@ -22988,13 +22959,6 @@ inherits "^2.0.1" safe-buffer "^5.0.1" -shaka-player@^2.5.9: - version "2.5.23" - resolved "https://registry.yarnpkg.com/shaka-player/-/shaka-player-2.5.23.tgz#db92d1c6cf2314f0180a2cec11b0e2f2560336f5" - integrity sha512-3MC9k0OXJGw8AZ4n/ZNCZS2yDxx+3as5KgH6Tx4Q5TRboTBBCu6dYPI5vp1DxKeyU12MBN1Zcbs7AKzXv2EnCg== - dependencies: - eme-encryption-scheme-polyfill "^2.0.1" - shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"