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..bb673c6ca789 100644 --- a/Gutenberg/cocoapods_helpers.rb +++ b/Gutenberg/cocoapods_helpers.rb @@ -6,40 +6,14 @@ 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,45 +29,129 @@ RNCMaskedView RNCClipboard RNFastImage - React-Codegen - React-bridging + React-jsc ].freeze def gutenberg_pod(config: GUTENBERG_CONFIG) 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 } + # We check local_gutenberg first because it should take precedence, being an override set by the user. + if should_use_local_gutenberg + 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 - 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]) + gutenberg_dependencies(options: options) else - options[:git] = "https://github.com/#{GITHUB_ORG}/#{REPO_NAME}.git" - options[:submodules] = true - end + id = options[:tag] || options[:commit] - pod 'Gutenberg', options - pod 'RNTAztecView', options + # 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 - gutenberg_dependencies(options: options) + pod 'Gutenberg', podspec: "https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-#{id}.podspec" + end 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] + + 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 - DEPENDENCIES.each do |pod_name| + # Use a custom RNReanimated version while we coordinate a fix upstream + computed_dependencies.delete('RNReanimated') + pod 'RNReanimated', git: 'https://github.com/wordpress-mobile/react-native-reanimated', branch: 'mokagio/fix-custom-node_modules-bypass-multiple-versions-check-2.17.0' + + computed_dependencies.each do |pod_name| pod pod_name, podspec: "#{podspec_prefix}/#{pod_name}.#{podspec_extension}" end end + +def gutenberg_pre_install + 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) + + # This is required to workaround an issue with RNReanimated after upgrading to version 2.17.0 + rn_node_modules = File.join(local_gutenberg_path, '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}" +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 Gunberg post install hook (RN path: #{react_native_path})" + + # It seems like React Native prepends $PWD to the path internally in the post install hook. + # When using an absolute path, we get this error, notice the duplicated "/Users/gio/Developer/a8c/wpios": + # + # [!] An error occurred while processing the post-install hook of the Podfile. + # + # No such file or directory @ rb_sysopen - /gutenberg/node_modules/react-native/package.json + # + # 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 diff --git a/Podfile b/Podfile index 07f4e637a9bf..f2e5d35e9c0c 100644 --- a/Podfile +++ b/Podfile @@ -317,6 +317,9 @@ end # A future version of CocoaPods may make this easier to do. See https://github.com/CocoaPods/CocoaPods/issues/7428 shared_targets = ['WordPressFlux'] pre_install do |installer| + # Note that this call is unrelated to the static vs dynamic framework shenanigan below + gutenberg_pre_install + static = [] dynamic = [] installer.pod_targets.each do |pod| @@ -340,6 +343,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 ef5aca11b904..c30bb71e0981 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.2.0) - - 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.99.0): - - React (= 0.69.4) - - React-CoreModules (= 0.69.4) - - React-RCTImage (= 0.69.4) - - RNTAztecView + - Gutenberg (1.99.0) - 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,7 @@ 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.99.0): - - 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.8.0): - Sentry/Core (= 8.8.0) - SentryPrivate (= 8.8.0) @@ -522,7 +122,6 @@ PODS: - WordPressUI (1.12.5) - 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 +144,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.0-alpha1/third-party-podspecs/boost.podspec.json`) - - BVLinearGradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/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.0-alpha1/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json`) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.2.0) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.1.0) - - Gutenberg (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, tag `v1.100.0-alpha1`) + - Gutenberg (from `https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-v1.100.0-alpha1.podspec`) - JTAppleCalendar (~> 8.0.2) - Kanvas (~> 1.4.4) - MediaEditor (>= 1.2.2, ~> 1.2) @@ -565,48 +159,7 @@ 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.0-alpha1/third-party-podspecs/RCT-Folly.podspec.json`) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React.podspec.json`) - - React-bridging (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-bridging.podspec.json`) - - React-callinvoker (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-callinvoker.podspec.json`) - - React-Codegen (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-Codegen.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-jsinspector.podspec.json`) - - React-logger (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-logger.podspec.json`) - - react-native-blur (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/react-native-blur.podspec.json`) - - react-native-get-random-values (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/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.0-alpha1/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.0-alpha1/third-party-podspecs/react-native-safe-area-context.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/react-native-video.podspec.json`) - - react-native-webview (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/react-native-webview.podspec.json`) - - React-perflogger (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-perflogger.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTVibration.podspec.json`) - - React-runtimeexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-runtimeexecutor.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/ReactCommon.podspec.json`) - - RNCClipboard (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNCClipboard.podspec.json`) - - RNCMaskedView (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNCMaskedView.podspec.json`) - - RNFastImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNFastImage.podspec.json`) - - RNGestureHandler (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNGestureHandler.podspec.json`) - - RNReanimated (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNReanimated.podspec.json`) - - RNScreens (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNScreens.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, tag `v1.100.0-alpha1`) - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) - SwiftLint (~> 0.50) @@ -616,7 +169,6 @@ DEPENDENCIES: - WordPressShared (~> 2.2) - WordPressUI (~> 1.12.5) - WPMediaPicker (~> 1.8.8) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.3.0) - ZIPFoundation (~> 0.9.8) @@ -632,9 +184,7 @@ SPEC REPOS: - Automattic-Tracks-iOS - CocoaLumberjack - CropViewController - - DoubleConversion - Down - - fmt - Gifu - GoogleSignIn - Gridicons @@ -642,7 +192,6 @@ SPEC REPOS: - GTMSessionFetcher - JTAppleCalendar - Kanvas - - libwebp - MediaEditor - MRProgress - NSObject-SafeExpectations @@ -650,8 +199,6 @@ SPEC REPOS: - OCMock - OHHTTPStubs - Reachability - - SDWebImage - - SDWebImageWebPCoder - Sentry - SentryPrivate - Sodium @@ -676,109 +223,11 @@ SPEC REPOS: - ZIPFoundation EXTERNAL SOURCES: - boost: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/boost.podspec.json - BVLinearGradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/BVLinearGradient.podspec.json - FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/FBLazyVector.podspec.json - FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/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.0-alpha1/third-party-podspecs/glog.podspec.json Gutenberg: - :git: https://github.com/wordpress-mobile/gutenberg-mobile.git - :submodules: true - :tag: v1.100.0-alpha1 - RCT-Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RCT-Folly.podspec.json - RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RCTRequired.podspec.json - RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RCTTypeSafety.podspec.json - React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React.podspec.json - React-bridging: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-bridging.podspec.json - React-callinvoker: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-callinvoker.podspec.json - React-Codegen: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-Codegen.podspec.json - React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-Core.podspec.json - React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-CoreModules.podspec.json - React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-cxxreact.podspec.json - React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-jsi.podspec.json - React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-jsiexecutor.podspec.json - React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-jsinspector.podspec.json - React-logger: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-logger.podspec.json - react-native-blur: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/react-native-blur.podspec.json - react-native-get-random-values: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/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.0-alpha1/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.0-alpha1/third-party-podspecs/react-native-safe-area-context.podspec.json - react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/react-native-slider.podspec.json - react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/react-native-video.podspec.json - react-native-webview: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/react-native-webview.podspec.json - React-perflogger: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-perflogger.podspec.json - React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTActionSheet.podspec.json - React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTAnimation.podspec.json - React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTBlob.podspec.json - React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTImage.podspec.json - React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTLinking.podspec.json - React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTNetwork.podspec.json - React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTSettings.podspec.json - React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTText.podspec.json - React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-RCTVibration.podspec.json - React-runtimeexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/React-runtimeexecutor.podspec.json - ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/ReactCommon.podspec.json - RNCClipboard: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNCClipboard.podspec.json - RNCMaskedView: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNCMaskedView.podspec.json - RNFastImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNFastImage.podspec.json - RNGestureHandler: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNGestureHandler.podspec.json - RNReanimated: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNReanimated.podspec.json - RNScreens: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNScreens.podspec.json - RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/RNSVG.podspec.json - RNTAztecView: - :git: https://github.com/wordpress-mobile/gutenberg-mobile.git - :submodules: true - :tag: v1.100.0-alpha1 - Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.100.0-alpha1/third-party-podspecs/Yoga.podspec.json + :podspec: https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-v1.100.0-alpha1.podspec CHECKOUT OPTIONS: FSInteractiveMap: @@ -787,11 +236,7 @@ CHECKOUT OPTIONS: Gutenberg: :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true - :tag: v1.100.0-alpha1 - RNTAztecView: - :git: https://github.com/wordpress-mobile/gutenberg-mobile.git - :submodules: true - :tag: v1.100.0-alpha1 + :tag: v1.98.1 SPEC CHECKSUMS: Alamofire: 3ec537f71edc9804815215393ae2b1a8ea33a844 @@ -800,76 +245,25 @@ 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: 7bcb6427457d85e0b4dff5a84ec5947ac19a93ea - glog: 741689bdd65551bc8fb59d633e55c34293030d3e GoogleSignIn: fd381840dbe7c1137aa6dc30849a5c3e070c034a Gridicons: 17d660b97ce4231d582101b02f8280628b141c9a GTMAppAuth: 0ff230db599948a9ad7470ca667337803b3fc4dd GTMSessionFetcher: 5595ec75acf5be50814f81e9189490412bad82ba - Gutenberg: 0b6b57b7c48f79212d23c947fd6c9decb6c196c6 + Gutenberg: c570bf8955cbe174af06bec982811f9483bbe74f 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: d96d1e9b317e7bfe153bcb9e82f9287862893579 - SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d - SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d Sentry: 927dfb29d18a14d924229a59cc2ad149f43349f2 SentryPrivate: 4350d865f898224ab9fa02b37d6ee7fbb623f47e Sodium: 23d11554ecd556196d313cf6130d406dfe7ac6da @@ -885,7 +279,6 @@ SPEC CHECKSUMS: WordPressUI: c5be816f6c7b3392224ac21de9e521e89fa108ac WPMediaPicker: 0d40b8d66b6dfdaa2d6a41e3be51249ff5898775 wpxmlrpc: 68db063041e85d186db21f674adf08d9c70627fd - Yoga: 5e12f4deb20582f86f6323e1cdff25f07afc87f6 ZendeskCommonUISDK: 5f0a83f412e07ae23701f18c412fe783b3249ef5 ZendeskCoreSDK: 19a18e5ef2edcb18f4dbc0ea0d12bd31f515712a ZendeskMessagingAPISDK: db91be0c5cb88229d22f0e560ed99ba6e1dce02e @@ -895,6 +288,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: ae5b4b813d216d3bf0a148773267fff14bd51d37 -PODFILE CHECKSUM: 5238db288b233109c5666c6dfc4557a393fb3dd0 +PODFILE CHECKSUM: 3e728a64a014f4eb4d75b54d470f9ee4b66e26d8 COCOAPODS: 1.12.1 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..f8b60d443daf 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, fallingback 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/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index d34ac546c6e4..255aab730ade 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -10586,7 +10586,7 @@ path = Classes; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + 29B97314FDCFA39411CA2CEA = { isa = PBXGroup; children = ( 3F20FDF3276BF21000DA3CAD /* Packages */, @@ -18419,6 +18419,7 @@ 37399571B0D91BBEAE911024 /* [CP] Embed Pods Frameworks */, 920B9A6DAD47189622A86A9C /* [CP] Copy Pods Resources */, E1C5456F219F10E000896227 /* Copy Gutenberg JS */, + 3FF795712A6671DB00F27B17 /* Lint against nested frameworks */, ); buildRules = ( ); @@ -18642,7 +18643,7 @@ E16AB92514D978240047A2E5 /* Sources */, E16AB92614D978240047A2E5 /* Frameworks */, E16AB92714D978240047A2E5 /* Resources */, - 42C1BDE416A90FA718A28797 /* [CP] Copy Pods Resources */, + 49AE9271B82C7D67430387FA /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -18715,6 +18716,7 @@ FABB264A2602FC2C00C8785C /* [CP] Embed Pods Frameworks */, FABB264B2602FC2C00C8785C /* [CP] Copy Pods Resources */, FABB264C2602FC2C00C8785C /* Copy Gutenberg JS */, + 3FF795732A66730200F27B17 /* Lint against nested frameworks */, ); buildRules = ( ); @@ -18947,14 +18949,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 */; @@ -20161,6 +20163,7 @@ "${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}/ZendeskCommonUISDK/CommonUISDK.framework/CommonUISDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskCoreSDK/ZendeskCoreSDK.framework/ZendeskCoreSDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskMessagingAPISDK/MessagingAPI.framework/MessagingAPI", @@ -20173,6 +20176,7 @@ 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}/CommonUISDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZendeskCoreSDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MessagingAPI.framework", @@ -20228,50 +20232,59 @@ shellPath = /bin/sh; shellScript = "$SRCROOT/../Scripts/BuildPhases/GenerateCredentials.sh\n"; }; - 42C1BDE416A90FA718A28797 /* [CP] Copy Pods Resources */ = { + 3FF795712A6671DB00F27B17 /* Lint against nested frameworks */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); 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"; + name = "Lint against nested frameworks"; + outputFileListPaths = ( + ); 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"; + shellScript = "\"$SRCROOT/../Scripts/BuildPhases/LintNestedFrameworks.sh\"\n"; + }; + 3FF795732A66730200F27B17 /* Lint against nested frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Lint against nested frameworks"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$SRCROOT/../Scripts/BuildPhases/LintNestedFrameworks.sh\"\n"; + }; + 49AE9271B82C7D67430387FA /* [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", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WordPressTest/Pods-WordPressTest-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 4C304224F0F810A17D96A402 /* [CP] Copy Pods Resources */ = { @@ -20472,25 +20485,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", @@ -20507,25 +20506,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", @@ -20710,11 +20695,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 = ( "", @@ -20818,6 +20803,7 @@ "${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}/ZendeskCommonUISDK/CommonUISDK.framework/CommonUISDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskCoreSDK/ZendeskCoreSDK.framework/ZendeskCoreSDK", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ZendeskMessagingAPISDK/MessagingAPI.framework/MessagingAPI", @@ -20830,6 +20816,7 @@ 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}/CommonUISDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZendeskCoreSDK.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MessagingAPI.framework", @@ -20855,25 +20842,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", @@ -20890,25 +20863,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", @@ -20929,13 +20888,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 = ( ); @@ -30781,7 +30740,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 = { @@ -30862,12 +30821,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 {