diff --git a/.buildkite/cache-builder.yml b/.buildkite/cache-builder.yml index 3e11fb963796..405b5c32eae3 100644 --- a/.buildkite/cache-builder.yml +++ b/.buildkite/cache-builder.yml @@ -7,7 +7,7 @@ common_params: # Common plugin settings to use with the `plugins` key. - &common_plugins - - automattic/a8c-ci-toolkit#2.17.0 + - automattic/a8c-ci-toolkit#2.18.1 - automattic/git-s3-cache#1.1.4: bucket: "a8c-repo-mirrors" repo: "automattic/wordpress-ios/" diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 2db9e6d19145..ac9e016e4030 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -2,7 +2,7 @@ common_params: # Common plugin settings to use with the `plugins` key. - &common_plugins - - automattic/a8c-ci-toolkit#2.17.0 + - automattic/a8c-ci-toolkit#2.18.1 - automattic/git-s3-cache#1.1.4: bucket: "a8c-repo-mirrors" repo: "automattic/wordpress-ios/" diff --git a/.buildkite/release-builds.yml b/.buildkite/release-builds.yml index 1003df4508be..53447e466cdc 100644 --- a/.buildkite/release-builds.yml +++ b/.buildkite/release-builds.yml @@ -4,7 +4,7 @@ common_params: # Common plugin settings to use with the `plugins` key. - &common_plugins - - automattic/a8c-ci-toolkit#2.17.0 + - automattic/a8c-ci-toolkit#2.18.1 - automattic/git-s3-cache#1.1.4: bucket: "a8c-repo-mirrors" repo: "automattic/wordpress-ios/" diff --git a/Gemfile b/Gemfile index e85cfbf1e286..5b415ca9c6b0 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source 'https://rubygems.org' -# 1.12.x and higher, starting from 1.12.1 +# 1.12.x and higher, starting from 1.12.1, because that hotfix fixes Xcode 14.3 compatibility gem 'cocoapods', '~> 1.12', '>= 1.12.1' gem 'commonmarker' gem 'danger', '~> 9.3' diff --git a/Gemfile.lock b/Gemfile.lock index 09a71f1500f6..e652ee5a1671 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,12 +3,11 @@ GEM specs: CFPropertyList (3.0.6) rexml - activesupport (6.1.7.3) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - zeitwerk (~> 2.3) addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) algoliasearch (1.27.5) @@ -366,7 +365,6 @@ GEM rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) - zeitwerk (2.6.8) PLATFORMS ruby diff --git a/Gutenberg/cocoapods_helpers.rb b/Gutenberg/cocoapods_helpers.rb index 526f13c5446b..3000ede9f2c6 100644 --- a/Gutenberg/cocoapods_helpers.rb +++ b/Gutenberg/cocoapods_helpers.rb @@ -2,44 +2,19 @@ # Helpers and configurations for integrating Gutenberg in Jetpack and WordPress via CocoaPods. +require 'json' require_relative './version' DEFAULT_GUTENBERG_LOCATION = File.join(__dir__, '..', '..', 'gutenberg-mobile') +LOCAL_GUTENBERG_KEY = 'LOCAL_GUTENBERG' + # Note that the pods in this array might seem unused if you look for # `import` statements in this codebase. However, make sure to also check # whether they are used in the gutenberg-mobile and Gutenberg projects. # # See https://github.com/wordpress-mobile/gutenberg-mobile/issues/5025 DEPENDENCIES = %w[ - FBLazyVector - React - ReactCommon - RCTRequired - RCTTypeSafety - React-Core - React-CoreModules - React-RCTActionSheet - React-RCTAnimation - React-RCTBlob - React-RCTImage - React-RCTLinking - React-RCTNetwork - React-RCTSettings - React-RCTText - React-RCTVibration - React-callinvoker - React-cxxreact - React-jsinspector - React-jsi - React-jsiexecutor - React-logger - React-perflogger - React-runtimeexecutor - boost - Yoga - RCT-Folly - glog react-native-safe-area react-native-safe-area-context react-native-video @@ -55,23 +30,32 @@ RNCMaskedView RNCClipboard RNFastImage - React-Codegen - React-bridging ].freeze def gutenberg_pod(config: GUTENBERG_CONFIG) + # We check local_gutenberg first because it should take precedence, being an override set by the user. + return gutenberg_local_pod if should_use_local_gutenberg + options = config - local_gutenberg_key = 'LOCAL_GUTENBERG' - local_gutenberg = ENV.fetch(local_gutenberg_key, nil) - if local_gutenberg - options = { path: File.exist?(local_gutenberg) ? local_gutenberg : DEFAULT_GUTENBERG_LOCATION } + id = options[:tag] || options[:commit] - raise "Could not find Gutenberg pod at #{options[:path]}. You can configure the path using the #{local_gutenberg_key} environment variable." unless File.exist?(options[:path]) - else - options[:git] = "https://github.com/#{GITHUB_ORG}/#{REPO_NAME}.git" - options[:submodules] = true - end + # Notice there's no period at the end of the message as CocoaPods will add it. + raise 'Neither tag nor commit to use for Gutenberg found' unless id + + pod 'Gutenberg', podspec: "https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-#{id}.podspec" +end + +def gutenberg_local_pod + options = { path: local_gutenberg_path } + + raise "Could not find Gutenberg pod at #{options[:path]}. You can configure the path using the #{LOCAL_GUTENBERG_KEY} environment variable." unless File.exist?(options[:path]) + + puts "[Gutenberg] Installing pods using local Gutenberg version from #{local_gutenberg_path}" + + react_native_path = require_react_native_helpers!(gutenberg_path: local_gutenberg_path) + + use_react_native! path: react_native_path pod 'Gutenberg', options pod 'RNTAztecView', options @@ -80,20 +64,101 @@ def gutenberg_pod(config: GUTENBERG_CONFIG) end def gutenberg_dependencies(options:) - if options[:path] - podspec_prefix = options[:path] - else - tag_or_commit = options[:tag] || options[:commit] - podspec_prefix = "https://raw.githubusercontent.com/#{GITHUB_ORG}/#{REPO_NAME}/#{tag_or_commit}" - end + # When referencing via a tag or commit, we download pre-built frameworks. + return if options.key?(:tag) || options.key?(:commit) + + podspec_prefix = options[:path] + gutenberg_path = options[:path] + + raise "Unexpected Gutenberg dependencies configuration '#{options}'" if podspec_prefix.nil? podspec_prefix += '/third-party-podspecs' podspec_extension = 'podspec.json' - # FBReactNativeSpec needs special treatment because of react-native-codegen code generation - pod 'FBReactNativeSpec', podspec: "#{podspec_prefix}/FBReactNativeSpec/FBReactNativeSpec.#{podspec_extension}" + computed_dependencies = DEPENDENCIES.dup + + react_native_version = react_native_version!(gutenberg_path: gutenberg_path) + # We need to apply a workaround for the RNReanimated library when using React Native 0.71+. + apply_rnreanimated_workaround!(dependencies: computed_dependencies, gutenberg_path: gutenberg_path) unless react_native_version[1] < 71 - DEPENDENCIES.each do |pod_name| + computed_dependencies.each do |pod_name| pod pod_name, podspec: "#{podspec_prefix}/#{pod_name}.#{podspec_extension}" end end + +def apply_rnreanimated_workaround!(dependencies:, gutenberg_path:) + # Use a custom RNReanimated version while we coordinate a fix upstream + dependencies.delete('RNReanimated') + + # This is required to workaround an issue with RNReanimated after upgrading to version 2.17.0 + rn_node_modules = File.join(gutenberg_path, '..', 'gutenberg', 'node_modules') + raise "Could not find node modules at given path #{rn_node_modules}" unless File.exist? rn_node_modules + + ENV['REACT_NATIVE_NODE_MODULES_DIR'] = rn_node_modules + puts "[Gutenberg] Set REACT_NATIVE_NODE_MODULES_DIR env var for RNReanimated to #{rn_node_modules}" + + pod 'RNReanimated', git: 'https://github.com/wordpress-mobile/react-native-reanimated', branch: 'wp-fork-2.17.0' +end + +def gutenberg_post_install(installer:) + return unless should_use_local_gutenberg + + raise "[Gutenberg] Could not find local Gutenberg at given path #{local_gutenberg_path}" unless File.exist?(local_gutenberg_path) + + react_native_path = require_react_native_helpers!(gutenberg_path: local_gutenberg_path) + + puts "[Gutenberg] Running Gutenberg post install hook (RN path: #{react_native_path})" + + # It seems like React Native prepends $PWD to the path internally in the post install hook. + # To workaround, we make sure the path is relative to Dir.pwd + react_native_path = Pathname.new(react_native_path).relative_path_from(Dir.pwd) + + react_native_post_install(installer, react_native_path) +end + +private + +def should_use_local_gutenberg + value = ENV.fetch(LOCAL_GUTENBERG_KEY, nil) + + return false if value.nil? + + value +end + +def local_gutenberg_path + local_gutenberg = ENV.fetch(LOCAL_GUTENBERG_KEY, nil) + + return nil if local_gutenberg.nil? + + return local_gutenberg if File.exist?(local_gutenberg) + + DEFAULT_GUTENBERG_LOCATION +end + +def require_react_native_helpers!(gutenberg_path:) + react_native_path = react_native_path!(gutenberg_path: gutenberg_path) + + require_relative File.join(react_native_path, 'scripts', 'react_native_pods') + + react_native_path +end + +def react_native_path!(gutenberg_path:) + react_native_path = File.join(gutenberg_path, 'gutenberg', 'node_modules', 'react-native') + + raise "[Gutenberg] Could not find React Native at given path #{react_native_path}" unless File.exist?(react_native_path) + + react_native_path +end + +def react_native_version!(gutenberg_path:) + react_native_path = react_native_path!(gutenberg_path: gutenberg_path) + package_json_path = File.join(react_native_path, 'package.json') + package_json_content = File.read(package_json_path) + package_json_version = JSON.parse(package_json_content)['version'] + + raise "[Gutenberg] Could not find React native version at #{react_native_path}" unless package_json_version + + package_json_version.split('.').map(&:to_i) +end diff --git a/Gutenberg/version.rb b/Gutenberg/version.rb index a0fa9698e26f..e1f427c46c8f 100644 --- a/Gutenberg/version.rb +++ b/Gutenberg/version.rb @@ -12,7 +12,7 @@ # LOCAL_GUTENBERG=../my-gutenberg-fork bundle exec pod install GUTENBERG_CONFIG = { # commit: '' - tag: 'v1.100.1' + tag: 'v1.101.0-alpha1' } GITHUB_ORG = 'wordpress-mobile' diff --git a/Podfile b/Podfile index ff3bd3f6942b..4a4008591880 100644 --- a/Podfile +++ b/Podfile @@ -124,6 +124,7 @@ abstract_target 'Apps' do pod 'FSInteractiveMap', git: 'https://github.com/wordpress-mobile/FSInteractiveMap.git', tag: '0.2.0' pod 'JTAppleCalendar', '~> 8.0.2' pod 'CropViewController', '2.5.3' + pod 'SDWebImage', '~> 5.11.1' ## Automattic libraries ## ==================== @@ -340,6 +341,8 @@ pre_install do |installer| end post_install do |installer| + gutenberg_post_install(installer: installer) + project_root = File.dirname(__FILE__) ## Convert the 3rd-party license acknowledgements markdown into html for use in the app diff --git a/Podfile.lock b/Podfile.lock index 7d04188561d3..62418f53c057 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -24,27 +24,13 @@ PODS: - Sentry (~> 8.0) - Sodium (>= 0.9.1) - UIDeviceIdentifier (~> 2.0) - - boost (1.76.0) - - BVLinearGradient (2.5.6-wp-4): - - React-Core - CocoaLumberjack/Core (3.8.0) - CocoaLumberjack/Swift (3.8.0): - CocoaLumberjack/Core - CropViewController (2.5.3) - - DoubleConversion (1.1.5) - Down (0.6.6) - - FBLazyVector (0.69.4) - - FBReactNativeSpec (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTRequired (= 0.69.4) - - RCTTypeSafety (= 0.69.4) - - React-Core (= 0.69.4) - - React-jsi (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - fmt (6.2.1) - FSInteractiveMap (0.1.0) - Gifu (3.3.1) - - glog (0.3.5) - GoogleSignIn (6.0.2): - AppAuth (~> 1.4) - GTMAppAuth (~> 1.0) @@ -54,22 +40,9 @@ PODS: - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 3.0, >= 1.5) - GTMSessionFetcher/Core (1.7.2) - - Gutenberg (1.100.1): - - React (= 0.69.4) - - React-CoreModules (= 0.69.4) - - React-RCTImage (= 0.69.4) - - RNTAztecView + - Gutenberg (1.100.1) - JTAppleCalendar (8.0.3) - Kanvas (1.4.4) - - libwebp (1.2.4): - - libwebp/demux (= 1.2.4) - - libwebp/mux (= 1.2.4) - - libwebp/webp (= 1.2.4) - - libwebp/demux (1.2.4): - - libwebp/webp - - libwebp/mux (1.2.4): - - libwebp/demux - - libwebp/webp (1.2.4) - MediaEditor (1.2.2): - CropViewController (~> 2.5.3) - MRProgress (0.8.3): @@ -116,380 +89,10 @@ PODS: - OHHTTPStubs/OHPathHelpers (9.1.0) - OHHTTPStubs/Swift (9.1.0): - OHHTTPStubs/Default - - RCT-Folly (2021.06.28.00-v2): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCT-Folly/Default (= 2021.06.28.00-v2) - - RCT-Folly/Default (2021.06.28.00-v2): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCTRequired (0.69.4) - - RCTTypeSafety (0.69.4): - - FBLazyVector (= 0.69.4) - - RCTRequired (= 0.69.4) - - React-Core (= 0.69.4) - Reachability (3.2) - - React (0.69.4): - - React-Core (= 0.69.4) - - React-Core/DevSupport (= 0.69.4) - - React-Core/RCTWebSocket (= 0.69.4) - - React-RCTActionSheet (= 0.69.4) - - React-RCTAnimation (= 0.69.4) - - React-RCTBlob (= 0.69.4) - - React-RCTImage (= 0.69.4) - - React-RCTLinking (= 0.69.4) - - React-RCTNetwork (= 0.69.4) - - React-RCTSettings (= 0.69.4) - - React-RCTText (= 0.69.4) - - React-RCTVibration (= 0.69.4) - - React-bridging (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - React-jsi (= 0.69.4) - - React-callinvoker (0.69.4) - - React-Codegen (0.69.4): - - FBReactNativeSpec (= 0.69.4) - - RCT-Folly (= 2021.06.28.00-v2) - - RCTRequired (= 0.69.4) - - RCTTypeSafety (= 0.69.4) - - React-Core (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-Core (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.69.4) - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/CoreModulesHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/Default (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/DevSupport (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.69.4) - - React-Core/RCTWebSocket (= 0.69.4) - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-jsinspector (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTActionSheetHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTAnimationHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTBlobHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTImageHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTLinkingHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTNetworkHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTSettingsHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTTextHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTVibrationHeaders (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-Core/RCTWebSocket (0.69.4): - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-Core/Default (= 0.69.4) - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsiexecutor (= 0.69.4) - - React-perflogger (= 0.69.4) - - Yoga - - React-CoreModules (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.69.4) - - React-Codegen (= 0.69.4) - - React-Core/CoreModulesHeaders (= 0.69.4) - - React-jsi (= 0.69.4) - - React-RCTImage (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-cxxreact (0.69.4): - - boost (= 1.76.0) - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-callinvoker (= 0.69.4) - - React-jsi (= 0.69.4) - - React-jsinspector (= 0.69.4) - - React-logger (= 0.69.4) - - React-perflogger (= 0.69.4) - - React-runtimeexecutor (= 0.69.4) - - React-jsi (0.69.4): - - boost (= 1.76.0) - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-jsi/Default (= 0.69.4) - - React-jsi/Default (0.69.4): - - boost (= 1.76.0) - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-jsiexecutor (0.69.4): - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-perflogger (= 0.69.4) - - React-jsinspector (0.69.4) - - React-logger (0.69.4): - - glog - - react-native-blur (3.6.1): - - React-Core - - react-native-get-random-values (1.4.0): - - React-Core - - react-native-safe-area (0.5.1): - - React-Core - - react-native-safe-area-context (3.2.0): - - React-Core - - react-native-slider (3.0.2-wp-4): - - React-Core - - react-native-video (5.2.0-wp-6): - - React-Core - - react-native-video/Video (= 5.2.0-wp-6) - - react-native-video/Video (5.2.0-wp-6): - - React-Core - - react-native-webview (11.26.1): - - React-Core - - React-perflogger (0.69.4) - - React-RCTActionSheet (0.69.4): - - React-Core/RCTActionSheetHeaders (= 0.69.4) - - React-RCTAnimation (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.69.4) - - React-Codegen (= 0.69.4) - - React-Core/RCTAnimationHeaders (= 0.69.4) - - React-jsi (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-RCTBlob (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - React-Codegen (= 0.69.4) - - React-Core/RCTBlobHeaders (= 0.69.4) - - React-Core/RCTWebSocket (= 0.69.4) - - React-jsi (= 0.69.4) - - React-RCTNetwork (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-RCTImage (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.69.4) - - React-Codegen (= 0.69.4) - - React-Core/RCTImageHeaders (= 0.69.4) - - React-jsi (= 0.69.4) - - React-RCTNetwork (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-RCTLinking (0.69.4): - - React-Codegen (= 0.69.4) - - React-Core/RCTLinkingHeaders (= 0.69.4) - - React-jsi (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-RCTNetwork (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.69.4) - - React-Codegen (= 0.69.4) - - React-Core/RCTNetworkHeaders (= 0.69.4) - - React-jsi (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-RCTSettings (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - RCTTypeSafety (= 0.69.4) - - React-Codegen (= 0.69.4) - - React-Core/RCTSettingsHeaders (= 0.69.4) - - React-jsi (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-RCTText (0.69.4): - - React-Core/RCTTextHeaders (= 0.69.4) - - React-RCTVibration (0.69.4): - - RCT-Folly (= 2021.06.28.00-v2) - - React-Codegen (= 0.69.4) - - React-Core/RCTVibrationHeaders (= 0.69.4) - - React-jsi (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - React-runtimeexecutor (0.69.4): - - React-jsi (= 0.69.4) - - ReactCommon (0.69.4): - - React-logger (= 0.69.4) - - ReactCommon/react_debug_core (= 0.69.4) - - ReactCommon/turbomodule (= 0.69.4) - - ReactCommon/react_debug_core (0.69.4): - - React-logger (= 0.69.4) - - ReactCommon/turbomodule (0.69.4): - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-bridging (= 0.69.4) - - React-callinvoker (= 0.69.4) - - React-Core (= 0.69.4) - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-logger (= 0.69.4) - - React-perflogger (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - ReactCommon/turbomodule/samples (= 0.69.4) - - ReactCommon/turbomodule/core (0.69.4): - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-bridging (= 0.69.4) - - React-callinvoker (= 0.69.4) - - React-Core (= 0.69.4) - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-logger (= 0.69.4) - - React-perflogger (= 0.69.4) - - ReactCommon/turbomodule/samples (0.69.4): - - DoubleConversion - - glog - - RCT-Folly (= 2021.06.28.00-v2) - - React-bridging (= 0.69.4) - - React-callinvoker (= 0.69.4) - - React-Core (= 0.69.4) - - React-cxxreact (= 0.69.4) - - React-jsi (= 0.69.4) - - React-logger (= 0.69.4) - - React-perflogger (= 0.69.4) - - ReactCommon/turbomodule/core (= 0.69.4) - - RNCClipboard (1.9.0): - - React-Core - - RNCMaskedView (0.2.6): - - React-Core - - RNFastImage (8.5.11): - - React-Core - - SDWebImage (~> 5.11.1) - - SDWebImageWebPCoder (~> 0.8.4) - - RNGestureHandler (2.3.2-wp-3): - - React-Core - - RNReanimated (2.9.1-wp-4): - - DoubleConversion - - FBLazyVector - - FBReactNativeSpec - - glog - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-callinvoker - - React-Core - - React-Core/DevSupport - - React-Core/RCTWebSocket - - React-CoreModules - - React-cxxreact - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-RCTActionSheet - - React-RCTAnimation - - React-RCTBlob - - React-RCTImage - - React-RCTLinking - - React-RCTNetwork - - React-RCTSettings - - React-RCTText - - ReactCommon/turbomodule/core - - Yoga - - RNScreens (2.9.0): - - React-Core - - RNSVG (9.13.6): - - React-Core - - RNTAztecView (1.100.1): - - React-Core - - WordPress-Aztec-iOS (~> 1.19.8) - SDWebImage (5.11.1): - SDWebImage/Core (= 5.11.1) - SDWebImage/Core (5.11.1) - - SDWebImageWebPCoder (0.8.5): - - libwebp (~> 1.0) - - SDWebImage/Core (~> 5.10) - Sentry (8.9.2): - Sentry/Core (= 8.9.2) - SentryPrivate (= 8.9.2) @@ -522,7 +125,6 @@ PODS: - WordPressUI (1.14.0) - WPMediaPicker (1.8.8) - wpxmlrpc (0.10.0) - - Yoga (1.14.0) - ZendeskCommonUISDK (6.1.2) - ZendeskCoreSDK (2.5.1) - ZendeskMessagingAPISDK (3.8.3): @@ -545,18 +147,13 @@ DEPENDENCIES: - AppCenter (~> 4.1) - AppCenter/Distribute (~> 4.1) - Automattic-Tracks-iOS (~> 2.2) - - boost (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/boost.podspec.json`) - - BVLinearGradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/BVLinearGradient.podspec.json`) - CocoaLumberjack/Swift (~> 3.0) - CropViewController (= 2.5.3) - Down (~> 0.6.6) - - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json`) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.3.1) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.1.0) - - Gutenberg (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, tag `v1.100.1`) + - Gutenberg (from `https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-v1.101.0-alpha1.podspec`) - JTAppleCalendar (~> 8.0.2) - Kanvas (~> 1.4.4) - MediaEditor (>= 1.2.2, ~> 1.2) @@ -565,48 +162,8 @@ DEPENDENCIES: - "NSURL+IDN (~> 0.4)" - OCMock (~> 3.4.3) - OHHTTPStubs/Swift (~> 9.1.0) - - RCT-Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RCT-Folly.podspec.json`) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React.podspec.json`) - - React-bridging (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-bridging.podspec.json`) - - React-callinvoker (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-callinvoker.podspec.json`) - - React-Codegen (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-Codegen.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-jsinspector.podspec.json`) - - React-logger (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-logger.podspec.json`) - - react-native-blur (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-blur.podspec.json`) - - react-native-get-random-values (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-get-random-values.podspec.json`) - - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-safe-area.podspec.json`) - - react-native-safe-area-context (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-safe-area-context.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-video.podspec.json`) - - react-native-webview (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-webview.podspec.json`) - - React-perflogger (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-perflogger.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTVibration.podspec.json`) - - React-runtimeexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-runtimeexecutor.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/ReactCommon.podspec.json`) - - RNCClipboard (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNCClipboard.podspec.json`) - - RNCMaskedView (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNCMaskedView.podspec.json`) - - RNFastImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNFastImage.podspec.json`) - - RNGestureHandler (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNGestureHandler.podspec.json`) - - RNReanimated (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNReanimated.podspec.json`) - - RNScreens (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNScreens.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, tag `v1.100.1`) + - SDWebImage (~> 5.11.1) - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) - SwiftLint (~> 0.50) @@ -616,7 +173,6 @@ DEPENDENCIES: - WordPressShared (~> 2.2) - WordPressUI (~> 1.14) - WPMediaPicker (~> 1.8.8) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.3.0) - ZIPFoundation (~> 0.9.8) @@ -632,9 +188,7 @@ SPEC REPOS: - Automattic-Tracks-iOS - CocoaLumberjack - CropViewController - - DoubleConversion - Down - - fmt - Gifu - GoogleSignIn - Gridicons @@ -642,7 +196,6 @@ SPEC REPOS: - GTMSessionFetcher - JTAppleCalendar - Kanvas - - libwebp - MediaEditor - MRProgress - NSObject-SafeExpectations @@ -651,7 +204,6 @@ SPEC REPOS: - OHHTTPStubs - Reachability - SDWebImage - - SDWebImageWebPCoder - Sentry - SentryPrivate - Sodium @@ -676,122 +228,16 @@ SPEC REPOS: - ZIPFoundation EXTERNAL SOURCES: - boost: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/boost.podspec.json - BVLinearGradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/BVLinearGradient.podspec.json - FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/FBLazyVector.podspec.json - FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 - glog: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/glog.podspec.json Gutenberg: - :git: https://github.com/wordpress-mobile/gutenberg-mobile.git - :submodules: true - :tag: v1.100.1 - RCT-Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RCT-Folly.podspec.json - RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RCTRequired.podspec.json - RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RCTTypeSafety.podspec.json - React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React.podspec.json - React-bridging: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-bridging.podspec.json - React-callinvoker: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-callinvoker.podspec.json - React-Codegen: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-Codegen.podspec.json - React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-Core.podspec.json - React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-CoreModules.podspec.json - React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-cxxreact.podspec.json - React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-jsi.podspec.json - React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-jsiexecutor.podspec.json - React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-jsinspector.podspec.json - React-logger: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-logger.podspec.json - react-native-blur: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-blur.podspec.json - react-native-get-random-values: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-get-random-values.podspec.json - react-native-safe-area: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-safe-area.podspec.json - react-native-safe-area-context: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-safe-area-context.podspec.json - react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-slider.podspec.json - react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-video.podspec.json - react-native-webview: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/react-native-webview.podspec.json - React-perflogger: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-perflogger.podspec.json - React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTActionSheet.podspec.json - React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTAnimation.podspec.json - React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTBlob.podspec.json - React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTImage.podspec.json - React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTLinking.podspec.json - React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTNetwork.podspec.json - React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTSettings.podspec.json - React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTText.podspec.json - React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-RCTVibration.podspec.json - React-runtimeexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/React-runtimeexecutor.podspec.json - ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/ReactCommon.podspec.json - RNCClipboard: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNCClipboard.podspec.json - RNCMaskedView: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNCMaskedView.podspec.json - RNFastImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNFastImage.podspec.json - RNGestureHandler: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNGestureHandler.podspec.json - RNReanimated: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNReanimated.podspec.json - RNScreens: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNScreens.podspec.json - RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/RNSVG.podspec.json - RNTAztecView: - :git: https://github.com/wordpress-mobile/gutenberg-mobile.git - :submodules: true - :tag: v1.100.1 - Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.1/third-party-podspecs/Yoga.podspec.json + :podspec: https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-v1.101.0-alpha1.podspec CHECKOUT OPTIONS: FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 - Gutenberg: - :git: https://github.com/wordpress-mobile/gutenberg-mobile.git - :submodules: true - :tag: v1.100.1 - RNTAztecView: - :git: https://github.com/wordpress-mobile/gutenberg-mobile.git - :submodules: true - :tag: v1.100.1 SPEC CHECKSUMS: Alamofire: 3ec537f71edc9804815215393ae2b1a8ea33a844 @@ -800,76 +246,26 @@ SPEC CHECKSUMS: AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570 AppCenter: b0b6f1190215b5f983c42934db718f3b46fff3c0 Automattic-Tracks-iOS: a1b020ab02f0e5a39c5d4e6870a498273f286158 - boost: 32a63928ef0a5bf8b60f6b930c8864113fa28779 - BVLinearGradient: 9168d5f3bdb636b9bd861bf9fbe747f77e835065 CocoaLumberjack: 78abfb691154e2a9df8ded4350d504ee19d90732 CropViewController: a5c143548a0fabcd6cc25f2d26e40460cfb8c78c - DoubleConversion: e22e0762848812a87afd67ffda3998d9ef29170c Down: 71bf4af3c04fa093e65dffa25c4b64fa61287373 - FBLazyVector: 16fdf30fcbc7177c6a4bdf35ef47225577eb9636 - FBReactNativeSpec: 03365206a695e76184146098efecb19a07f98ffc - fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 FSInteractiveMap: a396f610f48b76cb540baa87139d056429abda86 Gifu: 416d4e38c4c2fed012f019e0a1d3ffcb58e5b842 - glog: 741689bdd65551bc8fb59d633e55c34293030d3e GoogleSignIn: fd381840dbe7c1137aa6dc30849a5c3e070c034a Gridicons: 17d660b97ce4231d582101b02f8280628b141c9a GTMAppAuth: 0ff230db599948a9ad7470ca667337803b3fc4dd GTMSessionFetcher: 5595ec75acf5be50814f81e9189490412bad82ba - Gutenberg: 6a33eedcafdbdcbdf86a5a48263fcf99fd9ceabb + Gutenberg: 07c2bf2c4d7543fa3cf3388c1353eae43f14707d JTAppleCalendar: 932cadea40b1051beab10f67843451d48ba16c99 Kanvas: f932eaed3d3f47aae8aafb6c2d27c968bdd49030 - libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef MediaEditor: d08314cfcbfac74361071a306b4bc3a39b3356ae MRProgress: 16de7cc9f347e8846797a770db102a323fe7ef09 NSObject-SafeExpectations: ab8fe623d36b25aa1f150affa324e40a2f3c0374 "NSURL+IDN": afc873e639c18138a1589697c3add197fe8679ca OCMock: 43565190abc78977ad44a61c0d20d7f0784d35ab OHHTTPStubs: 90eac6d8f2c18317baeca36698523dc67c513831 - RCT-Folly: b60af04f04d86a9f9c3317ba253365c4bd30ac5f - RCTRequired: f29d295ee209e2ac38b0aede22af2079ba814983 - RCTTypeSafety: 385273055103e9b60ac9ec070900621d3a31ff28 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 - React: ee95447578c5b9789ba7aad0593d162b72a45e6f - React-bridging: 011e313a56cbb8e98f97749b83f4b43fafdcf3db - React-callinvoker: 132da8333bd1a22a4d637a800bcd5e9bb051404f - React-Codegen: 1bb3fbcd85a52638967113eab1cc0acb3e719c6f - React-Core: bd57dad64f256ac856c5a5341c3433593bc9e98b - React-CoreModules: 98d0fd895946722aeda6214ff155f0ddeef02fa3 - React-cxxreact: 53614bcfdacdf57c6bf5ebbeb942dd020f6c9f37 - React-jsi: 828954dea2cd2fba7433d1c2e824d26f4a1c09fd - React-jsiexecutor: 8dfd84cc30ef554c37084f040db8171f998bec6c - React-jsinspector: f86975c8251bd7882f9a9d68df150db287a822bb - React-logger: 16a67709f5aa1d752fd09f9e6ccbf802ba0c24e9 - react-native-blur: 14c75aa19da8734c1656d5b6ca5adb859b2c26aa - react-native-get-random-values: 2869478c635a6e33080b917ce33f2803cb69262c - react-native-safe-area: e3de9e959c7baaae8db9bcb015d99ed1da25c9d5 - react-native-safe-area-context: 1e501ec30c260422def56e95e11edb103caa5bf2 - react-native-slider: fe24b59d1cdf9ce3adc7dc53f87cfdde8da9498a - react-native-video: acfe36130a7476cf82eb543c7ee2b9e96794ff9e - react-native-webview: 07834cb4097a1c1785ac8ac13126fa03b24ae81c - React-perflogger: 685c7bd5da242acbe09ae37488dd81c7d41afbb4 - React-RCTActionSheet: 6c194ed0520d57075d03f3daf58ad025b1fb98a2 - React-RCTAnimation: 2c9468ff7d0116801a994f445108f4be4f41f9df - React-RCTBlob: 18a19196ddf511eaab0be1ff30feb0c38b9ad5c9 - React-RCTImage: 72af5e51c5ce2e725ebddea590901fb9c4fd46aa - React-RCTLinking: 6224cf6652cb9a6304c7d5c3e5ab92a72a0c9bf7 - React-RCTNetwork: e82a24ca24d461dd8f9c087eb4332bd77004c906 - React-RCTSettings: 81df0a79a648cb1678220e926d92e6ebc5ea6cc5 - React-RCTText: b55360e76043f19128eee6ac04e0cbd53e6baf79 - React-RCTVibration: 87d2dbefada4a1c345dcdc4c522494ac95c8bc9a - React-runtimeexecutor: f4e1071b6cebeef4a30896343960606dc09ca079 - ReactCommon: bb76a4ca9fb5c2b8b1428dcfe0bc32eba5e4c02d - RNCClipboard: e2298216e12d730c3c2eb9484095e1f2e1679cce - RNCMaskedView: b467479e450f13e5dcee04423fefd2534f08c3eb - RNFastImage: 9407b5abc43452149a2f628107c64a7d11aa2948 - RNGestureHandler: 21b4ecf88948a85c163977823a7429e81c7e06a6 - RNReanimated: b5730b32243a35f955202d807ecb43755133ac62 - RNScreens: bd1f43d7dfcd435bc11d4ee5c60086717c45a113 - RNSVG: 259ef12cbec2591a45fc7c5f09d7aa09e6692533 - RNTAztecView: 5b3859ec43d41024875dfb3894418decfb296e15 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d - SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d Sentry: 4fe92c018ba6ed61ce1fc652dd1ccac34505a4c6 SentryPrivate: b58fc25b3a0ac7e3d4ec229be63d583e3314a47a Sodium: 23d11554ecd556196d313cf6130d406dfe7ac6da @@ -885,7 +281,6 @@ SPEC CHECKSUMS: WordPressUI: 09b5477f8678446f27e651cccb6b6401bd19d9a3 WPMediaPicker: 0d40b8d66b6dfdaa2d6a41e3be51249ff5898775 wpxmlrpc: 68db063041e85d186db21f674adf08d9c70627fd - Yoga: 5e12f4deb20582f86f6323e1cdff25f07afc87f6 ZendeskCommonUISDK: 5f0a83f412e07ae23701f18c412fe783b3249ef5 ZendeskCoreSDK: 19a18e5ef2edcb18f4dbc0ea0d12bd31f515712a ZendeskMessagingAPISDK: db91be0c5cb88229d22f0e560ed99ba6e1dce02e @@ -895,6 +290,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: ae5b4b813d216d3bf0a148773267fff14bd51d37 -PODFILE CHECKSUM: e815177754512909cfd69c325e5898954f2e6525 +PODFILE CHECKSUM: c5553f1db6f3be60ada4fb96f72339892573776c COCOAPODS: 1.12.1 diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 561b897b5ce0..074833b1e1b4 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,6 +1,6 @@ 23.0 ----- - +* [**] [internal] Upgrade React Native to 0.71.11 [#20956] 22.9 ----- diff --git a/Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist b/Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist index 29b72028ea14..7ff6b14aa57b 100644 --- a/Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist +++ b/Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist @@ -1 +1,4 @@ +# Gutenberg when extracted as an XCFramework via CocoaPods +$PODS_XCFRAMEWORKS_BUILD_DIR/Gutenberg/Gutenberg.framework +# Gutenberg when compiled from source via CocoaPods $PODS_ROOT/Gutenberg/bundle/ios diff --git a/Scripts/BuildPhases/CopyGutenbergJS.sh b/Scripts/BuildPhases/CopyGutenbergJS.sh index c652885d6ed4..ceeea3484bfb 100755 --- a/Scripts/BuildPhases/CopyGutenbergJS.sh +++ b/Scripts/BuildPhases/CopyGutenbergJS.sh @@ -1,7 +1,36 @@ -#!/bin/bash -eux +#!/bin/bash -eu # Update the matching .outputs.xcfilelist when changing this -DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH +DEST="$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH" + +# CocoaPods fetches Gutenberg in two possible ways: XCFramework and source. +# +# We check first for the XCFramework setup, falling back to source only if that is not there. +# +# Because the XCFramework location is in `PODS_XCFRAMEWORKS_BUILD_DIR`, it will only appear if CocoaPods use XCFrameworks. +# This makes the setup robust against having both a copy of the XCFramework and of the Gutenberg source code in the Pods folder. + +# Update the matching .inputs.xcfilelist when changing these +XCFRAMEWORK_BUNDLE_ROOT="$PODS_XCFRAMEWORKS_BUILD_DIR/Gutenberg/Gutenberg.framework" +PODS_BUNDLE_ROOT="$PODS_ROOT/Gutenberg/bundle/ios" + +BUNDLE_FILE="$DEST/main.jsbundle" +BUNDLE_ASSETS="$DEST/assets/" + +if [[ -d $XCFRAMEWORK_BUNDLE_ROOT ]]; then + cp "$XCFRAMEWORK_BUNDLE_ROOT/App.js" "$BUNDLE_FILE" + # It appears we don't need to copy the assets when working with the XCFramework +elif [[ -d $PODS_BUNDLE_ROOT ]]; then + cp "$PODS_BUNDLE_ROOT/App.js" "$BUNDLE_FILE" + cp -r "$PODS_BUNDLE_ROOT/assets" "$BUNDLE_ASSETS" +else + if [[ "$CONFIGURATION" = *Debug* ]]; then + echo "warning: Could not find Gutenberg bundle in either XCFramework or Pods. But running in Debug configuration so will assume you are working with a local version of Gutenberg." + else + echo "error: Could not find Gutenberg bundle in either XCFramework or Pods." + exit 1 + fi +fi if [[ "$CONFIGURATION" = *Debug* && ! "$PLATFORM_NAME" == *simulator ]]; then IP=$(ipconfig getifaddr en0) @@ -11,12 +40,3 @@ if [[ "$CONFIGURATION" = *Debug* && ! "$PLATFORM_NAME" == *simulator ]]; then echo "$IP" > "$DEST/ip.txt" fi - -# Update the matching .inputs.xcfilelist when changing this -PODS_BUNDLE_ROOT="$PODS_ROOT/Gutenberg/bundle/ios" - -BUNDLE_FILE="$DEST/main.jsbundle" -cp "$PODS_BUNDLE_ROOT/App.js" "$BUNDLE_FILE" - -BUNDLE_ASSETS="$DEST/assets/" -cp -r "$PODS_BUNDLE_ROOT/assets/" "$BUNDLE_ASSETS" diff --git a/Scripts/BuildPhases/LintNestedFrameworks.sh b/Scripts/BuildPhases/LintNestedFrameworks.sh new file mode 100755 index 000000000000..e7a42541664b --- /dev/null +++ b/Scripts/BuildPhases/LintNestedFrameworks.sh @@ -0,0 +1,27 @@ +#!/bin/sh -eu + +set pipefail + +# Nested frameworks (i.e. having a Frameworks/ folder inside *.app/Frameworks/.framework) is invalid and will make the build be rejected during TestFlight validation. +# +# See also https://github.com/woocommerce/woocommerce-ios/pull/4226 + +# This script is intended to be used as a Build Phase on the main app target, as the very last build phase (and especially after the "Embed Frameworks" phase) + +NESTED_FMKS_DIRS=$(find "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -name Frameworks -depth 2) +if [ -z "$NESTED_FMKS_DIRS" ]; then + echo "✅ No nested framework found, you're good to go!" +else + echo "❌ Found nested \`Frameworks\` folder inside frameworks of final bundle." + for fmk_dir in $NESTED_FMKS_DIRS; do + # Extract the name of the parent framework containing the nested ones + parent_fmk=$(basename $(dirname $fmk_dir) .framework) + # Extract the list of frameworks nested inside that parent framework. In the next command: + # * `-depth 1` is to avoid logging cases of "C nested in B itself nested in A" (2+ levels of nesting), since C nested in B will already be logged when looping on fmk_dir=B, so no need to log it during fmk_dir=A too. + # * The `sed` command removes the leading `./` in the paths returned by `find`, then quote the results in backticks for nicer formatting in final message. + # * The `tr` command joins all the lines (= found frameworks) with a `,`. Note that this will result in an extra comma at the end of the list too, but we'll get rid of that in the final message using ${nested_fmks%,} bash substitution. + nested_fmks=$(cd "${fmk_dir}" && find . -name '*.framework' -depth 1 | sed "s:^./\(.*\)$:\`\1\`:" | tr '\n' ',') + echo "error: Found nested frameworks in ${fmk_dir} -- Such a configuration is invalid and will be rejected by TestFlight. Please fix by choosing 'Do Not Embed' for the nested framework(s) ${nested_fmks%,} within the \`${parent_fmk}\` Xcode project which links to them. See paNNhX-ee-p2." + done + exit 1 +fi diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergImageLoader.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergImageLoader.swift index bff482084bd3..bc9c651bf12a 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergImageLoader.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergImageLoader.swift @@ -1,5 +1,6 @@ import Foundation import Gutenberg +import React class GutenbergImageLoader: NSObject, RCTImageURLLoader { diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index 8aaa45c887b1..8fde104fc3df 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -4,6 +4,7 @@ import Gutenberg import Aztec import WordPressFlux import Kanvas +import React class GutenbergViewController: UIViewController, PostEditor, FeaturedImageDelegate, PublishingEditor { let errorDomain: String = "GutenbergViewController.errorDomain" @@ -654,6 +655,8 @@ extension GutenbergViewController: GutenbergBridgeDelegate { mediaType = mediaType | WPMediaType.other.rawValue case .any: mediaType = mediaType | WPMediaType.all.rawValue + @unknown default: + fatalError() } } @@ -989,6 +992,8 @@ extension GutenbergViewController: GutenbergBridgeDelegate { DDLogWarn(message) case .error, .fatal: DDLogError(message) + @unknown default: + fatalError() } } @@ -1074,6 +1079,8 @@ extension GutenbergViewController: GutenbergBridgeDelegate { switch buttonType { case .missingBlockAlertActionButton: handleMissingBlockAlertButtonPressed() + @unknown default: + fatalError() } } diff --git a/WordPress/Classes/ViewRelated/Gutenberg/Utils/GutenbergFilesAppMediaSource.swift b/WordPress/Classes/ViewRelated/Gutenberg/Utils/GutenbergFilesAppMediaSource.swift index 8b0e2e9320da..71b6e948ca7a 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/Utils/GutenbergFilesAppMediaSource.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/Utils/GutenbergFilesAppMediaSource.swift @@ -96,6 +96,8 @@ private extension Gutenberg.MediaType { return UTType.audio case .other, .any: // needs to be specified by the blog's allowed types. return nil + @unknown default: + fatalError() } } } diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index 56980c0eea90..358454f6db76 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -117,9 +117,7 @@ public class BlockEditorScreen: ScreenObject { public func enterTextInTitle(text: String) -> BlockEditorScreen { let titleView = postTitleView.firstMatch // Uses a localized string XCTAssert(titleView.waitForExistence(timeout: 3), "Title View does not exist!") - - titleView.tap() - titleView.typeText(text) + type(text: text, in: titleView) return self } @@ -132,7 +130,7 @@ public class BlockEditorScreen: ScreenObject { addBlock("Paragraph block") let paragraphView = firstParagraphBlock.textViews.element(boundBy: 0) - paragraphView.typeText(text) + type(text: text, in: paragraphView) return self } @@ -412,4 +410,44 @@ public class BlockEditorScreen: ScreenObject { editorCloseButton.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0)).tap() return try BlockEditorScreen() } + + // This could be moved as an XCUIApplication method via an extension if needed elsewhere. + private func type(text: String, in element: XCUIElement) { + // A simple implementation here would be: + // + // element.tap() + // element.typeText(text) + // + // But as of a recent (but not pinpointed at the time of writing) Gutenberg update, that is not enough. + // The test would fail with: Neither element nor any descendant has keyboard focus. + // (E.g.: https://buildkite.com/automattic/wordpress-ios/builds/15598) + // + // The following is a convoluted but seemingly robust approach that bypasses the keyboard by using the pasteboard instead. + UIPasteboard.general.string = text + + // Safety check + XCTAssertTrue(element.waitForExistence(timeout: 1)) + + element.doubleTap() + + let pasteButton = app.menuItems["Paste"] + + if pasteButton.waitForExistence(timeout: 1) == false { + // Drill in hierarchy looking for it + var found = false + element.descendants(matching: .any).enumerated().forEach { e in + guard found == false else { return } + + e.element.firstMatch.doubleTap() + + if pasteButton.waitForExistence(timeout: 1) { + found = true + } + } + } + + XCTAssertTrue(pasteButton.exists, "Could not find menu item paste button.") + + pasteButton.tap() + } } diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index effe1beb965c..73de05930257 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -10618,7 +10618,7 @@ path = Classes; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + 29B97314FDCFA39411CA2CEA = { isa = PBXGroup; children = ( 3F20FDF3276BF21000DA3CAD /* Packages */, @@ -18700,7 +18700,7 @@ E16AB92514D978240047A2E5 /* Sources */, E16AB92614D978240047A2E5 /* Frameworks */, E16AB92714D978240047A2E5 /* Resources */, - 42C1BDE416A90FA718A28797 /* [CP] Copy Pods Resources */, + 4CEE641DB5EC328B91BF3706 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -19008,14 +19008,14 @@ bg, sk, ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + mainGroup = 29B97314FDCFA39411CA2CEA; packageReferences = ( 3FF1442E266F3C2400138163 /* XCRemoteSwiftPackageReference "ScreenObject" */, 3FC2C33B26C4CF0A00C6D98F /* XCRemoteSwiftPackageReference "XCUITestHelpers" */, 17A8858B2757B97F0071FCA3 /* XCRemoteSwiftPackageReference "AutomatticAbout-swift" */, 3F2B62DA284F4E0B0008CD59 /* XCRemoteSwiftPackageReference "Charts" */, 3F3B23C02858A1B300CACE60 /* XCRemoteSwiftPackageReference "test-collector-swift" */, - 3F411B6D28987E3F002513AE /* XCRemoteSwiftPackageReference "lottie-ios" */, + 3F411B6D28987E3F002513AE /* XCRemoteSwiftPackageReference "lottie-ios.git" */, 3F338B6F289BD3040014ADC5 /* XCRemoteSwiftPackageReference "Nimble" */, ); productRefGroup = 19C28FACFE9D520D11CA2CBB /* Products */; @@ -20223,6 +20223,8 @@ "${PODS_ROOT}/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress-frameworks.sh", "${BUILT_PRODUCTS_DIR}/Sentry/Sentry.framework", "${BUILT_PRODUCTS_DIR}/SentryPrivate/SentryPrivate.framework", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/Gutenberg.framework/Gutenberg", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/hermes.framework/hermes", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskCommonUISDK/CommonUISDK.framework/CommonUISDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskCoreSDK/ZendeskCoreSDK.framework/ZendeskCoreSDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskMessagingAPISDK/MessagingAPI.framework/MessagingAPI", @@ -20235,6 +20237,8 @@ outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Sentry.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SentryPrivate.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CommonUISDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZendeskCoreSDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MessagingAPI.framework", @@ -20310,52 +20314,6 @@ shellScript = "$SRCROOT/../Scripts/BuildPhases/ConfigureSimulatorForUITesting.sh\n"; showEnvVarsInLog = 0; }; - 42C1BDE416A90FA718A28797 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-WordPressTest/Pods-WordPressTest-resources.sh", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/content-functions.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/editor-behavior-overrides.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/gutenberg-observer.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/inject-css.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/insert-block.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/local-storage-overrides.json", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/prevent-autosaves.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/wp-bar-override.css", - "${PODS_ROOT}/Gutenberg/src/block-support/supported-blocks.json", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/external-style-overrides.css", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/extra-localstorage-entries.js", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/remove-nux.js", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/WordPress-Aztec-iOS/WordPress-Aztec-iOS.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/content-functions.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/editor-behavior-overrides.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/editor-style-overrides.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gutenberg-observer.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/inject-css.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/insert-block.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/local-storage-overrides.json", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/prevent-autosaves.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wp-bar-override.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/supported-blocks.json", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/external-style-overrides.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/extra-localstorage-entries.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/remove-nux.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPress-Aztec-iOS.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WordPressTest/Pods-WordPressTest-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 4C304224F0F810A17D96A402 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -20384,6 +20342,26 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-JetpackShareExtension/Pods-JetpackShareExtension-resources.sh\"\n"; showEnvVarsInLog = 0; }; + 4CEE641DB5EC328B91BF3706 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-WordPressTest/Pods-WordPressTest-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/Gutenberg.framework/Gutenberg", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/hermes.framework/hermes", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WordPressTest/Pods-WordPressTest-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 4F4D5C2BB6478A3E90ADC3C5 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -20554,25 +20532,11 @@ "${PODS_ROOT}/Down/Resources/DownView.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/GoogleSignIn/GoogleSignIn.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Gridicons/Gridicons.bundle", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/content-functions.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/editor-behavior-overrides.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/gutenberg-observer.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/inject-css.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/insert-block.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/local-storage-overrides.json", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/prevent-autosaves.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/wp-bar-override.css", - "${PODS_ROOT}/Gutenberg/src/block-support/supported-blocks.json", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/external-style-overrides.css", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/extra-localstorage-entries.js", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/remove-nux.js", "${PODS_CONFIGURATION_BUILD_DIR}/Kanvas/Kanvas.bundle", "${BUILT_PRODUCTS_DIR}/MediaEditor/MediaEditor.framework/MediaEditorDrawing.storyboardc", "${BUILT_PRODUCTS_DIR}/MediaEditor/MediaEditor.framework/MediaEditorFilters.storyboardc", "${BUILT_PRODUCTS_DIR}/MediaEditor/MediaEditor.framework/MediaEditorHub.storyboardc", "${PODS_CONFIGURATION_BUILD_DIR}/MediaEditor/MediaEditor.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", "${PODS_ROOT}/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/WPMediaPicker/WPMediaPicker.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/WordPress-Aztec-iOS/WordPress-Aztec-iOS.bundle", @@ -20589,25 +20553,11 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DownView.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Gridicons.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/content-functions.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/editor-behavior-overrides.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/editor-style-overrides.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gutenberg-observer.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/inject-css.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/insert-block.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/local-storage-overrides.json", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/prevent-autosaves.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wp-bar-override.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/supported-blocks.json", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/external-style-overrides.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/extra-localstorage-entries.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/remove-nux.js", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Kanvas.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MediaEditorDrawing.storyboardc", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MediaEditorFilters.storyboardc", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MediaEditorHub.storyboardc", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MediaEditor.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SVProgressHUD.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WPMediaPicker.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPress-Aztec-iOS.bundle", @@ -20774,11 +20724,11 @@ files = ( ); inputPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", ); outputPaths = ( "", @@ -20864,6 +20814,8 @@ "${PODS_ROOT}/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack-frameworks.sh", "${BUILT_PRODUCTS_DIR}/Sentry/Sentry.framework", "${BUILT_PRODUCTS_DIR}/SentryPrivate/SentryPrivate.framework", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/Gutenberg.framework/Gutenberg", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/hermes.framework/hermes", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskCommonUISDK/CommonUISDK.framework/CommonUISDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskCoreSDK/ZendeskCoreSDK.framework/ZendeskCoreSDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskMessagingAPISDK/MessagingAPI.framework/MessagingAPI", @@ -20876,6 +20828,8 @@ outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Sentry.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SentryPrivate.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CommonUISDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZendeskCoreSDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MessagingAPI.framework", @@ -20901,25 +20855,11 @@ "${PODS_ROOT}/Down/Resources/DownView.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/GoogleSignIn/GoogleSignIn.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Gridicons/Gridicons.bundle", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/content-functions.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/editor-behavior-overrides.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/gutenberg-observer.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/inject-css.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/insert-block.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/local-storage-overrides.json", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/prevent-autosaves.js", - "${PODS_ROOT}/Gutenberg/gutenberg/packages/react-native-bridge/common/gutenberg-web-single-block/wp-bar-override.css", - "${PODS_ROOT}/Gutenberg/src/block-support/supported-blocks.json", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/external-style-overrides.css", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/extra-localstorage-entries.js", - "${PODS_ROOT}/Gutenberg/resources/unsupported-block-editor/remove-nux.js", "${PODS_CONFIGURATION_BUILD_DIR}/Kanvas/Kanvas.bundle", "${BUILT_PRODUCTS_DIR}/MediaEditor/MediaEditor.framework/MediaEditorDrawing.storyboardc", "${BUILT_PRODUCTS_DIR}/MediaEditor/MediaEditor.framework/MediaEditorFilters.storyboardc", "${BUILT_PRODUCTS_DIR}/MediaEditor/MediaEditor.framework/MediaEditorHub.storyboardc", "${PODS_CONFIGURATION_BUILD_DIR}/MediaEditor/MediaEditor.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", "${PODS_ROOT}/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/WPMediaPicker/WPMediaPicker.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/WordPress-Aztec-iOS/WordPress-Aztec-iOS.bundle", @@ -20936,25 +20876,11 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DownView.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Gridicons.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/content-functions.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/editor-behavior-overrides.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/editor-style-overrides.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gutenberg-observer.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/inject-css.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/insert-block.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/local-storage-overrides.json", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/prevent-autosaves.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wp-bar-override.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/supported-blocks.json", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/external-style-overrides.css", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/extra-localstorage-entries.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/remove-nux.js", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Kanvas.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MediaEditorDrawing.storyboardc", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MediaEditorFilters.storyboardc", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MediaEditorHub.storyboardc", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MediaEditor.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SVProgressHUD.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WPMediaPicker.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPress-Aztec-iOS.bundle", @@ -20975,13 +20901,13 @@ files = ( ); inputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", ); inputPaths = ( ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", ); outputPaths = ( ); @@ -30885,7 +30811,7 @@ minimumVersion = 0.3.0; }; }; - 3F411B6D28987E3F002513AE /* XCRemoteSwiftPackageReference "lottie-ios" */ = { + 3F411B6D28987E3F002513AE /* XCRemoteSwiftPackageReference "lottie-ios.git" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/airbnb/lottie-ios.git"; requirement = { @@ -30966,12 +30892,12 @@ }; 3F411B6E28987E3F002513AE /* Lottie */ = { isa = XCSwiftPackageProductDependency; - package = 3F411B6D28987E3F002513AE /* XCRemoteSwiftPackageReference "lottie-ios" */; + package = 3F411B6D28987E3F002513AE /* XCRemoteSwiftPackageReference "lottie-ios.git" */; productName = Lottie; }; 3F44DD57289C379C006334CD /* Lottie */ = { isa = XCSwiftPackageProductDependency; - package = 3F411B6D28987E3F002513AE /* XCRemoteSwiftPackageReference "lottie-ios" */; + package = 3F411B6D28987E3F002513AE /* XCRemoteSwiftPackageReference "lottie-ios.git" */; productName = Lottie; }; 3FC2C33C26C4CF0A00C6D98F /* XCUITestHelpers */ = { diff --git a/WordPress/WordPressTest/GutenbergFilesAppMediaSourceTests.swift b/WordPress/WordPressTest/GutenbergFilesAppMediaSourceTests.swift index 133a61629d68..39a883ce034d 100644 --- a/WordPress/WordPressTest/GutenbergFilesAppMediaSourceTests.swift +++ b/WordPress/WordPressTest/GutenbergFilesAppMediaSourceTests.swift @@ -1,5 +1,5 @@ import XCTest -@testable import Gutenberg +import Gutenberg @testable import WordPress final class GutenbergFilesAppMediaSourceTests: XCTestCase {