diff --git a/.buildkite/commands/build-for-testing.sh b/.buildkite/commands/build-for-testing.sh index 94cee0d5d395..7b70ac9cc209 100755 --- a/.buildkite/commands/build-for-testing.sh +++ b/.buildkite/commands/build-for-testing.sh @@ -11,11 +11,7 @@ echo "--- :beer: Installing Homebrew Dependencies" brew tap FelixHerrmann/tap brew install swift-package-list -echo "--- :rubygems: Setting up Gems" -install_gems - -echo "--- :cocoapods: Setting up Pods" -install_cocoapods +"$(dirname "${BASH_SOURCE[0]}")/shared-set-up.sh" echo "--- :writing_hand: Copy Files" mkdir -pv ~/.configure/wordpress-ios/secrets @@ -24,9 +20,6 @@ cp -v fastlane/env/project.env-example ~/.configure/wordpress-ios/secrets/projec echo "--- :closed_lock_with_key: Installing Secrets" bundle exec fastlane run configure_apply -echo "--- :swift: Setting up Swift Packages" -install_swiftpm_dependencies - echo "--- :hammer_and_wrench: Building" bundle exec fastlane build_${APP}_for_testing diff --git a/.buildkite/commands/log-outdated-pods.sh b/.buildkite/commands/log-outdated-pods.sh deleted file mode 100755 index 5bef2f1972ee..000000000000 --- a/.buildkite/commands/log-outdated-pods.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -eu - -RELEASE_NUMBER=$1 - -if [[ -z "${RELEASE_NUMBER}" ]]; then - echo "Usage $0 " - exit 1 -fi - -echo '--- :robot_face: Use bot for Git operations' -source use-bot-for-git - -.buildkite/commands/checkout-release-branch.sh "$RELEASE_NUMBER" - -echo '--- :ruby: Setup Ruby tools' -install_gems - -echo '--- :cocoapods: Install Pods (required to check for outdated next)' -install_cocoapods - -# Expand this group to surface the information. -# -# It's simpler than capturing the CocoaPods output, filtering, and annotating the build with it. -echo '+++ :cocoapods: Outdated Pods' -bundle exec pod outdated diff --git a/.buildkite/commands/prototype-build-jetpack.sh b/.buildkite/commands/prototype-build-jetpack.sh index 9e5977c62c1a..c920e20ba95c 100644 --- a/.buildkite/commands/prototype-build-jetpack.sh +++ b/.buildkite/commands/prototype-build-jetpack.sh @@ -8,17 +8,10 @@ brew upgrade sentry-cli brew tap FelixHerrmann/tap brew install swift-package-list -echo "--- :rubygems: Setting up Gems" -install_gems - -echo "--- :cocoapods: Setting up Pods" -install_cocoapods +"$(dirname "${BASH_SOURCE[0]}")/shared-set-up.sh" echo "--- :closed_lock_with_key: Installing Secrets" bundle exec fastlane run configure_apply -echo "--- :swift: Setting up Swift Packages" -install_swiftpm_dependencies - echo "--- :hammer_and_wrench: Building" bundle exec fastlane build_and_upload_jetpack_prototype_build diff --git a/.buildkite/commands/prototype-build-wordpress.sh b/.buildkite/commands/prototype-build-wordpress.sh index 94e68c8fda75..5dac21969026 100644 --- a/.buildkite/commands/prototype-build-wordpress.sh +++ b/.buildkite/commands/prototype-build-wordpress.sh @@ -7,18 +7,10 @@ brew upgrade sentry-cli brew tap FelixHerrmann/tap brew install swift-package-list - -echo "--- :rubygems: Setting up Gems" -install_gems - -echo "--- :cocoapods: Setting up Pods" -install_cocoapods +"$(dirname "${BASH_SOURCE[0]}")/shared-set-up.sh" echo "--- :closed_lock_with_key: Installing Secrets" bundle exec fastlane run configure_apply -echo "--- :swift: Setting up Swift Packages" -install_swiftpm_dependencies - echo "--- :hammer_and_wrench: Building" bundle exec fastlane build_and_upload_wordpress_prototype_build diff --git a/.buildkite/commands/release-build-jetpack.sh b/.buildkite/commands/release-build-jetpack.sh index bf0157cb1fd5..b6dd3f4de70b 100755 --- a/.buildkite/commands/release-build-jetpack.sh +++ b/.buildkite/commands/release-build-jetpack.sh @@ -10,14 +10,7 @@ brew install swift-package-list brew install imagemagick brew install ghostscript -echo "--- :rubygems: Setting up Gems" -install_gems - -echo "--- :cocoapods: Setting up Pods" -install_cocoapods - -echo "--- :swift: Setting up Swift Packages" -install_swiftpm_dependencies +"$(dirname "${BASH_SOURCE[0]}")/shared-set-up.sh" echo "--- :closed_lock_with_key: Installing Secrets" bundle exec fastlane run configure_apply diff --git a/.buildkite/commands/release-build-wordpress.sh b/.buildkite/commands/release-build-wordpress.sh index d7e02239f0ae..42694426b9b9 100755 --- a/.buildkite/commands/release-build-wordpress.sh +++ b/.buildkite/commands/release-build-wordpress.sh @@ -13,9 +13,6 @@ brew install ghostscript echo "--- :rubygems: Setting up Gems" install_gems -echo "--- :cocoapods: Setting up Pods" -install_cocoapods - echo "--- :swift: Setting up Swift Packages" install_swiftpm_dependencies diff --git a/.buildkite/commands/run-pod-tests.sh b/.buildkite/commands/run-pod-tests.sh deleted file mode 100755 index 5d8a49c08cf5..000000000000 --- a/.buildkite/commands/run-pod-tests.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -eu - -echo "--- :rubygems: Setting up Gems" -install_gems - -echo "--- :cocoapods: Setting up Pods" -install_cocoapods - -echo "--- :writing_hand: Copy Files" -mkdir -pv ~/.configure/wordpress-ios/secrets -cp -v fastlane/env/project.env-example ~/.configure/wordpress-ios/secrets/project.env - -echo "--- :closed_lock_with_key: Installing Secrets" -bundle exec fastlane run configure_apply - -echo "--- :swift: Setting up Swift Packages" -install_swiftpm_dependencies - -scheme=$1 -echo "--- 🔬 Testing $scheme" -set +e -bundle exec fastlane test_pod "name:$scheme" -TESTS_EXIT_STATUS=$? -set -e - -if [[ $TESTS_EXIT_STATUS -ne 0 ]]; then - # Keep the (otherwise collapsed) current "Testing" section open in Buildkite logs on error. See https://buildkite.com/docs/pipelines/managing-log-output#collapsing-output - echo "^^^ +++" - echo "Unit Tests failed!" -fi - -echo "--- 📦 Zipping test results" -cd build/results/ && zip -rq "$scheme.xcresult.zip" "$scheme.xcresult" && cd - - -echo "--- 🚦 Report Tests Status" -if [[ $TESTS_EXIT_STATUS -eq 0 ]]; then - echo "Unit Tests seems to have passed (exit code 0). All good 👍" -else - echo "The Unit Tests, ran during the '🔬 Testing' step above, have failed." - echo "For more details about the failed tests, check the Buildkite annotation, the logs under the '🔬 Testing' section and the \`.xcresult\` and test reports in Buildkite artifacts." -fi - -if [[ $BUILDKITE_BRANCH == trunk ]] || [[ $BUILDKITE_BRANCH == release/* ]]; then - annotate_test_failures "build/results/$scheme.xml" --slack "build-and-ship" -else - annotate_test_failures "build/results/$scheme.xml" -fi - -exit $TESTS_EXIT_STATUS diff --git a/.buildkite/commands/run-ui-tests.sh b/.buildkite/commands/run-ui-tests.sh index 707706a66df9..ed7d35fbb879 100755 --- a/.buildkite/commands/run-ui-tests.sh +++ b/.buildkite/commands/run-ui-tests.sh @@ -18,12 +18,10 @@ echo "--- 📦 Downloading Build Artifacts" download_artifact build-products-jetpack.tar tar -xf build-products-jetpack.tar +# Only the gems are needed here, given we run the tests on a pre-built binary echo "--- :rubygems: Setting up Gems" install_gems -echo "--- :swift: Setting up Swift Packages" -install_swiftpm_dependencies - echo "--- 🔬 Testing" xcrun simctl list >> /dev/null rake mocks & diff --git a/.buildkite/commands/run-unit-tests.sh b/.buildkite/commands/run-unit-tests.sh index 828f7ea1d9b4..09fd91e0db8e 100755 --- a/.buildkite/commands/run-unit-tests.sh +++ b/.buildkite/commands/run-unit-tests.sh @@ -8,12 +8,10 @@ echo "--- 📦 Downloading Build Artifacts" download_artifact build-products-wordpress.tar tar -xf build-products-wordpress.tar +# Only the gems are needed here, given we run the tests on a pre-built binary echo "--- :rubygems: Setting up Gems" install_gems -echo "--- :swift: Setting up Swift Packages" -install_swiftpm_dependencies - echo "--- 🔬 Testing" set +e bundle exec fastlane test_without_building name:WordPressUnitTests diff --git a/.buildkite/commands/shared-set-up.sh b/.buildkite/commands/shared-set-up.sh new file mode 100755 index 000000000000..15a74d84b996 --- /dev/null +++ b/.buildkite/commands/shared-set-up.sh @@ -0,0 +1,10 @@ +#!/bin/bash -eu + +echo "--- :rubygems: Setting up Gems" +install_gems + +echo "--- :swift: Setting up Swift Packages" +install_swiftpm_dependencies + +echo "--- :xcode: Fetch XCFrameworks" +rake dependencies diff --git a/.buildkite/release-pipelines/complete-code-freeze.yml b/.buildkite/release-pipelines/complete-code-freeze.yml index aad2868d3f46..8f848bd53d79 100644 --- a/.buildkite/release-pipelines/complete-code-freeze.yml +++ b/.buildkite/release-pipelines/complete-code-freeze.yml @@ -17,12 +17,3 @@ steps: manual: # If those jobs fail, one should always prefer re-triggering a new build from ReleaseV2 rather than retrying the individual job from Buildkite allowed: false - - - label: Log Outdated Pods - depends_on: complete_code_freeze - plugins: [$CI_TOOLKIT_PLUGIN] - command: .buildkite/commands/log-outdated-pods.sh "$RELEASE_VERSION" - retry: - manual: - # If those jobs fail, one should always prefer re-triggering a new build from ReleaseV2 rather than retrying the individual job from Buildkite - allowed: false diff --git a/.buildkite/shared-pipeline-vars b/.buildkite/shared-pipeline-vars index 827ac4aa30a8..d7ced8cc4981 100755 --- a/.buildkite/shared-pipeline-vars +++ b/.buildkite/shared-pipeline-vars @@ -5,7 +5,7 @@ # The ~> modifier is not currently used, but we check for it just in case XCODE_VERSION=$(sed -E 's/^~> ?//' .xcode-version) -CI_TOOLKIT_PLUGIN_VERSION="3.9.1" +CI_TOOLKIT_PLUGIN_VERSION="3.8.0" export IMAGE_ID="xcode-$XCODE_VERSION-macos-14.7.1-v1" export CI_TOOLKIT_PLUGIN="automattic/a8c-ci-toolkit#$CI_TOOLKIT_PLUGIN_VERSION" diff --git a/.gitignore b/.gitignore index 20127ebe6e21..dbd2f0f153ab 100644 --- a/.gitignore +++ b/.gitignore @@ -36,7 +36,6 @@ $RECYCLE.BIN/ # Project /Entitlements.plist -Pods/ WordPress.xcworkspace/*.mode1v3 WordPress.xcworkspace/*.mode2v3 WordPress.xcworkspace/*.pbxuser @@ -112,6 +111,14 @@ WordPress/InfoPlist.h WordPress/InfoPlist-alpha.h WordPress/InfoPlist-internal.h - # SwiftLint Remote Config Cache .swiftlint/RemoteConfigCache + +# The project used CocoaPods for dependency management prior to early 2025. +# +# To simplify switching branches on dev machines that have older copies, let's +# ignore the possible leftover Pods folder from that setup. +# +# Up to the discretion of the dev team when in the future to remove this rule +# and assume no local copy would have generated the Pods. +Pods/ diff --git a/.rubocop.yml b/.rubocop.yml index 2d169d214fe5..ac394adddb51 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,7 +1,6 @@ AllCops: Exclude: - DerivedData/**/* - - Pods/**/* - vendor/**/* - WordPressAuthenticator/**/* - WordPressKit/**/* @@ -26,12 +25,6 @@ Layout/LineLength: Layout/EmptyLines: Exclude: *xfiles -Style/MutableConstant: - Exclude: - # CocoaPods mutates some input values. - # It's simpler to relax this rule than to address each individually by passing mutable copies. - - Gutenberg/cocoapods_helpers.rb - Style/AsciiComments: Exclude: *xfiles diff --git a/Dangerfile b/Dangerfile index 5deb44319af1..b80512209314 100644 --- a/Dangerfile +++ b/Dangerfile @@ -7,8 +7,6 @@ rubocop.lint(files: [], force_exclusion: true, inline_comment: true, fail_on_inl manifest_pr_checker.check_all_manifest_lock_updated -podfile_checker.check_podfile_does_not_have_branch_references - ios_release_checker.check_core_data_model_changed ios_release_checker.check_release_notes_and_app_store_strings diff --git a/Gemfile b/Gemfile index 9d56b06691ad..f3631aca57b6 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,6 @@ source 'https://rubygems.org' -gem 'cocoapods', '~> 1.16' gem 'danger-dangermattic', '~> 1.2' gem 'dotenv' # 2.223.1 includes a fix for an ASC-interfacing issue diff --git a/Gemfile.lock b/Gemfile.lock index eaaca5c4d954..1c3c36852efe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -19,9 +19,6 @@ GEM tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - algoliasearch (1.27.5) - httpclient (~> 2.8, >= 2.8.3) - json (>= 1.5.1) artifactory (3.0.17) ast (2.4.2) atomos (0.1.3) @@ -53,43 +50,6 @@ GEM cork nap open4 (~> 1.3) - cocoapods (1.16.2) - addressable (~> 2.8) - claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.16.2) - cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 2.1, < 3.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.6.0, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored2 (~> 3.1) - escape (~> 0.0.4) - fourflusher (>= 2.3.0, < 3.0) - gh_inspector (~> 1.0) - molinillo (~> 0.8.0) - nap (~> 1.0) - ruby-macho (>= 2.3.0, < 3.0) - xcodeproj (>= 1.27.0, < 2.0) - cocoapods-core (1.16.2) - activesupport (>= 5.0, < 8) - addressable (~> 2.8) - algoliasearch (~> 1.0) - concurrent-ruby (~> 1.1) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - netrc (~> 0.11) - public_suffix (~> 4.0) - typhoeus (~> 1.0) - cocoapods-deintegrate (1.0.5) - cocoapods-downloader (2.1) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.1) - cocoapods-trunk (1.6.0) - nap (>= 0.8, < 2.0) - netrc (~> 0.11) - cocoapods-try (1.2.0) colored (1.2) colored2 (3.1.2) commander (4.6.0) @@ -131,9 +91,6 @@ GEM dotenv (2.8.1) drb (2.2.1) emoji_regex (3.2.3) - escape (0.0.4) - ethon (0.16.0) - ffi (>= 1.15.0) excon (0.112.0) faraday (1.10.4) faraday-em_http (~> 1.0) @@ -231,9 +188,6 @@ GEM xcodeproj (~> 1.22) fastlane-sirp (1.0.0) sysrandom (~> 1.0) - ffi (1.17.0) - fourflusher (2.3.1) - fuzzy_match (2.0.4) gh_inspector (1.1.3) git (1.19.1) addressable (~> 2.8) @@ -295,13 +249,11 @@ GEM mini_mime (1.1.5) mini_portile2 (2.8.8) minitest (5.25.4) - molinillo (0.8.0) multi_json (1.15.0) multipart-post (2.4.1) nanaimo (0.4.0) nap (1.1.0) naturally (2.2.1) - netrc (0.11.0) nkf (0.2.0) nokogiri (1.17.2) mini_portile2 (~> 2.8.2) @@ -356,7 +308,6 @@ GEM parser (>= 3.3.1.0) rubocop-rake (0.6.0) rubocop (~> 1.0) - ruby-macho (2.5.1) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) rubyzip (2.3.2) @@ -382,8 +333,6 @@ GEM tty-screen (0.8.2) tty-spinner (0.9.3) tty-cursor (~> 0.7) - typhoeus (1.4.1) - ethon (>= 0.9.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) @@ -405,7 +354,6 @@ PLATFORMS ruby DEPENDENCIES - cocoapods (~> 1.16) danger-dangermattic (~> 1.2) dotenv fastlane (~> 2.226) diff --git a/Gutenberg/cocoapods_helpers.rb b/Gutenberg/cocoapods_helpers.rb deleted file mode 100644 index 4aca165b5a7b..000000000000 --- a/Gutenberg/cocoapods_helpers.rb +++ /dev/null @@ -1,234 +0,0 @@ -# frozen_string_literal: true - -# Helpers and configurations for integrating Gutenberg in Jetpack and WordPress via CocoaPods. - -require 'json' -require 'yaml' - -DEFAULT_GUTENBERG_LOCATION = File.join(__dir__, '..', '..', 'gutenberg-mobile') - -GUTENBERG_CONFIG_PATH = File.join(__dir__, '..', 'Gutenberg', 'config.yml') - -# We skip the simulator architecture as we only need to extract the bundle and source map for installable builds. -GUTENBERG_FRAMEWORK_FOLDER = File.join(__dir__, '..', 'Pods', 'Gutenberg', 'Frameworks', 'Gutenberg.xcframework', 'ios-arm64', 'Gutenberg.framework') -GUTENBERG_BUNDLE_SOURCE_MAP_TARGET = File.join(__dir__, '..', 'Pods', 'Gutenberg', 'react-native-bundle-source-map') - -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[ - react-native-safe-area - react-native-safe-area-context - react-native-video - react-native-webview - RNSVG - react-native-slider - BVLinearGradient - react-native-get-random-values - react-native-blur - RNScreens - RNReanimated - RNGestureHandler - RNCMaskedView - RNCClipboard - RNFastImage -].freeze - -def gutenberg_pod - # 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 - - raise "Could not find config YAML at path #{GUTENBERG_CONFIG_PATH}" unless File.exist?(GUTENBERG_CONFIG_PATH) - - config = YAML.safe_load_file(GUTENBERG_CONFIG_PATH, symbolize_names: true) - - raise 'Gutenberg config does not contain expected key :ref' if config[:ref].nil? - - id = config[:ref][:tag] || config[:ref][:commit] - - # 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_gb = gutenberg_pod_options(name: 'Gutenberg', path: local_gutenberg_path) - options_aztec = gutenberg_pod_options(name: 'RNTAztecView', path: "#{local_gutenberg_path}/gutenberg/packages/react-native-aztec") - - react_native_path = require_react_native_helpers!(gutenberg_path: local_gutenberg_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).to_s - - use_react_native! path: react_native_path - - pod 'Gutenberg', options_gb - pod 'RNTAztecView', options_aztec - - gutenberg_dependencies(options: options_gb) -end - -def gutenberg_pod_options(name:, path:) - raise "Could not find #{name} pod at #{path}. You can configure the path using the #{LOCAL_GUTENBERG_KEY} environment variable." unless File.exist?(path) - - puts "[Gutenberg] Installing pods using local #{name} version from #{path}" - { path: path } -end - -def gutenberg_dependencies(options:) - # 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' - - 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 - - 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-3.6.2' -end - -def gutenberg_post_install(installer:) - extract_bundle_source_map_files unless should_use_local_gutenberg - - 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 - -def gutenberg_post_integrate - return unless should_use_local_gutenberg - - # If the this workaround runs in the post_install step, the changes it makes get overridden somehow. - workaround_broken_search_paths -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 - -# A workaround for the issue described at -# /~https://github.com/wordpress-mobile/WordPress-iOS/pull/21504#issuecomment-1789466523 -# -# For some yet-to-discover reason, something in the process installing the pods -# using local sources messes up the LIBRARY_SEARCH_PATHS. -def workaround_broken_search_paths - project = Xcodeproj::Project.open('WordPress/WordPress.xcodeproj') - - library_search_paths_key = 'LIBRARY_SEARCH_PATHS' - broken_search_paths = '$(SDKROOT)/usr/lib/swift$(inherited)' - - project.targets.each do |target| - target.build_configurations.each do |config| - original_search_paths = config.build_settings[library_search_paths_key] - - if original_search_paths == broken_search_paths - config.build_settings[library_search_paths_key] = ['$(SDKROOT)/usr/lib/swift', '$(inherited)'] - puts "[Gutenberg] Post-processed #{library_search_paths_key} for #{target.name} target to fix incorrect '#{broken_search_paths}' value." - end - end - end - project.save -end - -# Copy Gutenberg bundle and source map files so they can be upload it to Sentry during the build process. -def extract_bundle_source_map_files - puts '[Gutenberg] Extracting bundle and source map files' - - FileUtils.mkdir_p(GUTENBERG_BUNDLE_SOURCE_MAP_TARGET) - bundle_from_path = File.join(GUTENBERG_FRAMEWORK_FOLDER, 'App.js') - bundle_destination_path = File.join(GUTENBERG_BUNDLE_SOURCE_MAP_TARGET, 'main.jsbundle') - FileUtils.cp(bundle_from_path, bundle_destination_path) - - # Source map file is moved instead of copied to avoid including it in the binary. - source_map_from_path = File.join(GUTENBERG_FRAMEWORK_FOLDER, 'App.composed.js.map') - source_map_destination_path = File.join(GUTENBERG_BUNDLE_SOURCE_MAP_TARGET, 'main.jsbundle.map') - if File.exist?(source_map_from_path) - FileUtils.mv(source_map_from_path, source_map_destination_path) - elsif !File.exist?(source_map_destination_path) - raise "[Gutenberg] Source map \"#{source_map_from_path}\" could not be found. Please verify that the Gutenberg version includes the file or reinstall the pod." - end -end diff --git a/Gutenberg/config.yml b/Gutenberg/config.yml deleted file mode 100644 index 204d29aff591..000000000000 --- a/Gutenberg/config.yml +++ /dev/null @@ -1,14 +0,0 @@ - # 'ref' should have either a commit or tag key. - # If both are set, tag will take precedence. - # - # We have automation that reads and updates this file. - # Leaving commented keys is discouraged, because the automation would ignore them and the resulting updates would be noisy - # If you want to use a local version, please use the LOCAL_GUTENBERG environment variable when calling CocoaPods. - # - # Example: - # - # LOCAL_GUTENBERG=../my-gutenberg-fork bundle exec pod install -ref: - tag: v1.121.0 -github_org: wordpress-mobile -repo_name: gutenberg-mobile diff --git a/Modules/Package.swift b/Modules/Package.swift index 9b14128359ac..74d1b99a152d 100644 --- a/Modules/Package.swift +++ b/Modules/Package.swift @@ -51,6 +51,7 @@ let package = Package( .package(url: "/~https://github.com/Automattic/wordpress-rs", revision: "alpha-20250127"), .package(url: "/~https://github.com/wordpress-mobile/GutenbergKit", from: "0.0.5"), .package(url: "/~https://github.com/Automattic/color-studio", branch: "trunk"), + .package(url: "/~https://github.com/wordpress-mobile/AztecEditor-iOS", from: "1.20.0"), ], targets: XcodeSupport.targets + [ .target(name: "AsyncImageKit", dependencies: [ @@ -146,6 +147,8 @@ enum XcodeSupport { .product(name: "SVProgressHUD", package: "SVProgressHUD"), .product(name: "ZIPFoundation", package: "ZIPFoundation"), .product(name: "ColorStudio", package: "color-studio"), + .product(name: "Aztec", package: "AztecEditor-iOS"), + .product(name: "WordPressEditor", package: "AztecEditor-iOS"), ] let testDependencies: [Target.Dependency] = [ @@ -190,6 +193,8 @@ enum XcodeSupport { .product(name: "ZIPFoundation", package: "ZIPFoundation"), .product(name: "WordPressAPI", package: "wordpress-rs"), .product(name: "ColorStudio", package: "color-studio"), + .product(name: "Aztec", package: "AztecEditor-iOS"), + .product(name: "WordPressEditor", package: "AztecEditor-iOS"), ]), .xcodeTarget("XcodeTarget_WordPressTests", dependencies: testDependencies + [ "WordPressShared", diff --git a/Modules/Sources/WordPressShared/Utility/NSBundle+WordPressShared.swift b/Modules/Sources/WordPressShared/Utility/NSBundle+WordPressShared.swift index 6b8e03a44624..5ab409f81fb9 100644 --- a/Modules/Sources/WordPressShared/Utility/NSBundle+WordPressShared.swift +++ b/Modules/Sources/WordPressShared/Utility/NSBundle+WordPressShared.swift @@ -4,10 +4,6 @@ private class BundleFinder: NSObject {} extension Bundle { - /// Returns the WordPressShared Bundle - /// If installed via CocoaPods, this will be WordPressShared.bundle, - /// otherwise it will be the framework bundle. - /// @objc public class var wordPressSharedBundle: Bundle { #if DEBUG // Workaround for https://forums.swift.org/t/swift-5-3-swiftpm-resources-in-tests-uses-wrong-bundle-path/37051 diff --git a/Podfile b/Podfile deleted file mode 100644 index dad355a77816..000000000000 --- a/Podfile +++ /dev/null @@ -1,126 +0,0 @@ -# frozen_string_literal: true - -require_relative 'Gutenberg/cocoapods_helpers' -require 'xcodeproj' - -# For security reasons, please always keep the wordpress-mobile source first and the CDN second. -# For more info, see /~https://github.com/wordpress-mobile/cocoapods-specs#source-order-and-security-considerations -install! 'cocoapods', warn_for_multiple_pod_sources: false -source '/~https://github.com/wordpress-mobile/cocoapods-specs.git' -source 'https://cdn.cocoapods.org/' - -raise 'Please run CocoaPods via `bundle exec`' unless %w[BUNDLE_BIN_PATH BUNDLE_GEMFILE].any? { |k| ENV.key?(k) } - -VERSION_XCCONFIG_PATH = File.join(File.expand_path(__dir__), 'config', 'Common.xcconfig') -APP_IOS_DEPLOYMENT_TARGET = Gem::Version.new(Xcodeproj::Config.new(VERSION_XCCONFIG_PATH).to_hash['IPHONEOS_DEPLOYMENT_TARGET']) - -platform :ios, APP_IOS_DEPLOYMENT_TARGET.version -inhibit_all_warnings! -use_frameworks! -workspace 'WordPress.xcworkspace' - -def aztec - ## When using a tagged version, feel free to comment out the WordPress-Aztec-iOS line below. - ## When using a commit number (during development) you should provide the same commit number for both pods. - ## - # pod 'WordPress-Aztec-iOS', git: '/~https://github.com/wordpress-mobile/AztecEditor-iOS.git', commit: '' - # pod 'WordPress-Editor-iOS', git: '/~https://github.com/wordpress-mobile/AztecEditor-iOS.git', commit: '' - # pod 'WordPress-Editor-iOS', git: '/~https://github.com/wordpress-mobile/AztecEditor-iOS.git', tag: '' - pod 'WordPress-Editor-iOS', '~> 1.19.11' -end - -abstract_target 'Apps' do - project 'WordPress/WordPress.xcodeproj' - - ## Gutenberg (React Native) - ## ===================== - ## - gutenberg_pod - - ## Automattic libraries - ## ==================== - ## - aztec - - ## WordPress App iOS - ## ================= - ## - target 'WordPress' do - target 'WordPressTest' do - inherit! :search_paths - - gutenberg_pod - end - end - - ## Jetpack App iOS - ## =============== - ## - target 'Jetpack' -end - -## Share Extension -## =============== -## -target 'WordPressShareExtension' do - project 'WordPress/WordPress.xcodeproj' - - aztec -end - -target 'JetpackShareExtension' do - project 'WordPress/WordPress.xcodeproj' - - aztec -end - -## DraftAction Extension -## ===================== -## -target 'WordPressDraftActionExtension' do - project 'WordPress/WordPress.xcodeproj' - - aztec -end - -target 'JetpackDraftActionExtension' do - project 'WordPress/WordPress.xcodeproj' - - aztec -end - -## Tools -## =================== -## - -def swiftlint_version - require 'yaml' - - YAML.load_file('.swiftlint.yml')['swiftlint_version'] -end - -abstract_target 'Tools' do - pod 'SwiftLint', swiftlint_version -end - -post_install do |installer| - gutenberg_post_install(installer: installer) - - # Fix a code signing issue in Xcode 14 beta. - # This solution is suggested here: /~https://github.com/CocoaPods/CocoaPods/issues/11402#issuecomment-1189861270 - # ==================================== - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['CODE_SIGN_IDENTITY'] = '' - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' - end - end - - yellow_marker = "\033[33m" - reset_marker = "\033[0m" - puts "#{yellow_marker}The abstract target warning below is expected. Feel free to ignore it.#{reset_marker}" -end - -post_integrate do - gutenberg_post_integrate -end diff --git a/Podfile.lock b/Podfile.lock deleted file mode 100644 index faad3e2dd70e..000000000000 --- a/Podfile.lock +++ /dev/null @@ -1,32 +0,0 @@ -PODS: - - Gutenberg (1.121.0) - - SwiftLint (0.54.0) - - WordPress-Aztec-iOS (1.19.11) - - WordPress-Editor-iOS (1.19.11): - - WordPress-Aztec-iOS (= 1.19.11) - -DEPENDENCIES: - - Gutenberg (from `https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-v1.121.0.podspec`) - - SwiftLint (= 0.54.0) - - WordPress-Editor-iOS (~> 1.19.11) - -SPEC REPOS: - /~https://github.com/wordpress-mobile/cocoapods-specs.git: - - WordPress-Aztec-iOS - - WordPress-Editor-iOS - trunk: - - SwiftLint - -EXTERNAL SOURCES: - Gutenberg: - :podspec: https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-v1.121.0.podspec - -SPEC CHECKSUMS: - Gutenberg: 3e8f78cbb35f0572a696ac55bafac3aec5d0fc2e - SwiftLint: c1de071d9d08c8aba837545f6254315bc900e211 - WordPress-Aztec-iOS: 3732c6d865a5c9f35788377bdeda8a80ea10d0a1 - WordPress-Editor-iOS: 453345420ced3d3ef20f0051b3df46ff10281e0c - -PODFILE CHECKSUM: 99aff5ecb96391804fd8f28b29fd4e350ecd4b2e - -COCOAPODS: 1.16.2 diff --git a/README.md b/README.md index 57ff7820799b..3025008125a1 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Please refer to the sections below for more detailed information. The instructio 1. [Download](https://developer.apple.com/downloads/index.action) and install Xcode. Refer to the [.xcode-version](./.xcode-version) file for the minimum required version. 1. [Clone this repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) in the folder of your preference. +1. Run `cd WordPress; make dependencies; cd ..` #### Create WordPress.com API Credentials @@ -35,33 +36,6 @@ The steps above will help you configure the WordPress app to run and compile. B We use a few tools to help with development. Running `rake dependencies` will configure or update them for you. -#### CocoaPods - -WordPress for iOS uses [CocoaPods](http://cocoapods.org/) to manage third party libraries. -Third party libraries and resources managed by CocoaPods will be installed by the `rake dependencies` command above. - -#### SwiftLint - -We use [SwiftLint](/~https://github.com/realm/SwiftLint) to enforce a common style for Swift code. The app should build and work without it, but if you plan to write code, you are encouraged to install it. No commit should have lint warnings or errors. - -You can set up a Git [pre-commit hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) to run SwiftLint automatically when committing by running: - -`rake git:install_hooks` - -This is the recommended way to include SwiftLint in your workflow, as it catches lint issues locally before your code makes its way to Github. - -Alternately, a SwiftLint scheme is exposed within the project; Xcode will show a warning if you don't have SwiftLint installed. - -Finally, you can also run SwiftLint manually from the command line with: - -`rake lint` - -If your code has any style violations, you can try to automatically correct them by running: - -`rake lint:autocorrect` - -Otherwise you have to fix them manually. - ### Open Xcode Launch the workspace by running the following from the command line: diff --git a/Rakefile b/Rakefile index 5176a266c2f9..cefcd9ffee5e 100644 --- a/Rakefile +++ b/Rakefile @@ -6,25 +6,27 @@ require 'tmpdir' require 'rake/clean' require 'yaml' require 'digest' +require 'open-uri' +require 'rubygems/package' +require 'zlib' RUBY_REPO_VERSION = File.read('./.ruby-version').rstrip XCODE_WORKSPACE = 'WordPress.xcworkspace' XCODE_SCHEME = 'WordPress' XCODE_CONFIGURATION = 'Debug' EXPECTED_XCODE_VERSION = File.read('.xcode-version').rstrip +GUTENBERG_VERSION = 'v1.121.0' PROJECT_DIR = __dir__ abort('Project directory contains one or more spaces – unable to continue.') if PROJECT_DIR.include?(' ') -SWIFTLINT_BIN = File.join(PROJECT_DIR, 'Pods', 'SwiftLint', 'swiftlint') - task default: %w[test] desc 'Install required dependencies' -task dependencies: %w[dependencies:check assets:check] +task dependencies: %w[dependencies:check assets:check dependencies:gutenberg_xcframeworks] namespace :dependencies do - task check: %w[ruby:check bundler:check bundle:check credentials:apply pod:check lint:check] + task check: %w[ruby:check bundler:check bundle:check credentials:apply] namespace :ruby do task :check do @@ -103,43 +105,55 @@ bundle exec fastlane run configure_apply force:true end end - namespace :pod do - task :check do - unless podfile_locked? && lockfiles_match? - dependency_failed('CocoaPods') - Rake::Task['dependencies:pod:install'].invoke - end - end + desc 'Download and extract Gutenberg xcframeworks' + task :gutenberg_xcframeworks do + puts 'Setting up Gutenberg xcframeworks...' - task :install do - fold('install.cocoapods') do - pod %w[install] - rescue StandardError - puts "`pod install` failed. Will attempt to update the Gutenberg-Mobile XCFramework — a common reason for the failure — then retrying…\n\n" - Rake::Task['dependencies:pod:update_gutenberg'].invoke - pod %w[install] - end - end + frameworks_dir = 'WordPress/Frameworks' + + # Clean the slate + FileUtils.rm_rf(frameworks_dir) + FileUtils.mkdir_p(frameworks_dir) + + gutenberg_tar_gz_download_path = "#{frameworks_dir}/Gutenberg.tar.gz" - task :update_gutenberg do - pod %w[update Gutenberg] + URI.open("https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-#{GUTENBERG_VERSION}.tar.gz") do |remote_file| + File.binwrite(gutenberg_tar_gz_download_path, remote_file.read) end - task :clean do - fold('clean.cocoapods') do - FileUtils.rm_rf('Pods') + # Extract the archive + Zlib::GzipReader.open(gutenberg_tar_gz_download_path) do |gz| + Gem::Package::TarReader.new(gz) do |tar| + tar.each do |entry| + next unless entry.file? + + dest_path = File.join(frameworks_dir, entry.full_name) + FileUtils.mkdir_p(File.dirname(dest_path)) + + File.binwrite(dest_path, entry.read) + end end end - CLOBBER << 'Pods' - end - namespace :lint do - task :check do - if swiftlint_needs_install - dependency_failed('SwiftLint') - Rake::Task['dependencies:pod:install'].invoke - end + # Move xcframeworks to the correct location + Dir.glob("#{frameworks_dir}/Frameworks/*.xcframework").each do |framework| + FileUtils.mv(framework, frameworks_dir, force: false) end + + # Create dSYMs directories + FileUtils.mkdir_p [ + "#{frameworks_dir}/hermes.xcframework/ios-arm64/dSYMs", + "#{frameworks_dir}/hermes.xcframework/ios-arm64_x86_64-simulator/dSYMs" + ] + + # Cleanup + FileUtils.rm_rf [ + gutenberg_tar_gz_download_path, + "#{frameworks_dir}/Frameworks", + "#{frameworks_dir}/dummy.txt" + ] + + puts 'Gutenberg xcframeworks setup complete' end end @@ -194,15 +208,8 @@ task :clean do end desc 'Checks the source for style errors' -task lint: %w[dependencies:lint:check] do - swiftlint %w[lint --quiet] -end - -namespace :lint do - desc 'Automatically corrects style errors where possible' - task autocorrect: %w[dependencies:lint:check] do - swiftlint %w[lint --autocorrect --quiet] - end +task :lint do + puts 'No linter configured at the moment.' end namespace :git do @@ -260,10 +267,8 @@ namespace :git do end namespace :git do - task pre_commit: %(dependencies:lint:check) do - swiftlint %w[lint --quiet --strict] - rescue StandardError - exit $CHILD_STATUS.exitstatus + task :pre_commit do + puts 'No precommit hook configured to run at this time.' end task :post_merge do @@ -286,7 +291,6 @@ namespace :init do install:xcode:check dependencies install:tools:check_oss - install:lint:check credentials:setup ] @@ -295,7 +299,6 @@ namespace :init do install:xcode:check dependencies install:tools:check_developer - install:lint:check credentials:setup gpg_key:setup ] @@ -458,21 +461,6 @@ namespace :install do end end end - - namespace :lint do - task :check do - unless git_initialized? - puts 'Initializing git repository' - sh 'git init', verbose: false - end - - Rake::Task['git:install_hooks'].invoke - end - - def git_initialized? - sh 'git rev-parse --is-inside-work-tree > /dev/null 2>&1', verbose: false - end - end end # Credentials deals with the setting up the developer's WPCOM API app ID and app Secret @@ -648,35 +636,6 @@ def fold(_) yield end -def pod(args) - args = %w[bundle exec pod] + args - sh(*args) -end - -def lockfile_hash - YAML.load_file('Podfile.lock') -end - -def lockfiles_match? - File.file?('Pods/Manifest.lock') && FileUtils.compare_file('Podfile.lock', 'Pods/Manifest.lock') -end - -def podfile_locked? - podfile_checksum = Digest::SHA1.file('Podfile') - lockfile_checksum = lockfile_hash['PODFILE CHECKSUM'] - - podfile_checksum == lockfile_checksum -end - -def swiftlint(args) - args = [SWIFTLINT_BIN] + args - sh(*args) -end - -def swiftlint_needs_install - File.exist?(SWIFTLINT_BIN) == false -end - def xcodebuild(*build_cmds) cmd = 'xcodebuild' cmd += " -destination 'platform=iOS Simulator,name=iPhone 6s'" diff --git a/Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist b/Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist index 7ff6b14aa57b..3edf10a4ee61 100644 --- a/Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist +++ b/Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist @@ -1,4 +1 @@ -# 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 +$SRCROOT/Frameworks/Gutenberg diff --git a/Scripts/BuildPhases/CopyGutenbergJS.sh b/Scripts/BuildPhases/CopyGutenbergJS.sh index 050b43d42902..c7a40b581a2f 100755 --- a/Scripts/BuildPhases/CopyGutenbergJS.sh +++ b/Scripts/BuildPhases/CopyGutenbergJS.sh @@ -3,17 +3,12 @@ # Update the matching .outputs.xcfilelist when changing this 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" -LOCAL_BUNDLE="$PODS_ROOT/../../gutenberg-mobile/bundle/ios" +# +# Notice we read from the ios-arm64 build, but given what we are after are JS +# files and assets, any architecture would do because they are always the same. +XCFRAMEWORK_BUNDLE_ROOT="$SRCROOT/Frameworks/Gutenberg.xcframework/ios-arm64/Gutenberg.framework" +LOCAL_BUNDLE="$SRCROOT/../gutenberg-mobile/bundle/ios" BUNDLE_FILE="$DEST/main.jsbundle" BUNDLE_ASSETS="$DEST/assets/" @@ -21,18 +16,15 @@ 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" elif [[ -d $LOCAL_BUNDLE ]]; then echo "warning: Using local bundle." cp "$LOCAL_BUNDLE/App.js" "$BUNDLE_FILE" cp -r "$LOCAL_BUNDLE/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." + echo "warning: Could not find Gutenberg bundle in the XCFramework. 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." + echo "error: Could not find Gutenberg bundle in XCFramework." exit 1 fi fi diff --git a/WordPress.xcworkspace/contents.xcworkspacedata b/WordPress.xcworkspace/contents.xcworkspacedata index 01f66d855f98..655e53664895 100644 --- a/WordPress.xcworkspace/contents.xcworkspacedata +++ b/WordPress.xcworkspace/contents.xcworkspacedata @@ -7,7 +7,4 @@ - - diff --git a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved index 8be0cb0fa319..27fbf760a74e 100644 --- a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "c4941d7482967920771618e3e241b71dc261453493b5515f9ee6c3ea2b2088fb", + "originHash" : "33178852300005bef26a5e5156a5d80a02416132cc12ea8f9f2fe53a05ff8b43", "pins" : [ { "identity" : "alamofire", @@ -28,6 +28,15 @@ "version" : "1.1.5" } }, + { + "identity" : "azteceditor-ios", + "kind" : "remoteSourceControl", + "location" : "/~https://github.com/wordpress-mobile/AztecEditor-iOS", + "state" : { + "revision" : "f20f4102aab2dd9a14dffe5d42af069dcb08538f", + "version" : "1.20.0" + } + }, { "identity" : "charts", "kind" : "remoteSourceControl", diff --git a/WordPress/.gitignore b/WordPress/.gitignore new file mode 100644 index 000000000000..0c883c2e8ea0 --- /dev/null +++ b/WordPress/.gitignore @@ -0,0 +1,4 @@ +# Gutenberg binary framework +Frameworks/*.xcframework +Frameworks/*.tar.gz +Frameworks/react-native-bundle-source-map diff --git a/WordPress/Classes/System/WordPressAppDelegate.swift b/WordPress/Classes/System/WordPressAppDelegate.swift index aba96ac78543..c5ba278bfb9b 100644 --- a/WordPress/Classes/System/WordPressAppDelegate.swift +++ b/WordPress/Classes/System/WordPressAppDelegate.swift @@ -400,11 +400,6 @@ extension WordPressAppDelegate { } func configureSelfHostedChallengeHandler() { - /// Note: - /// WordPressKit, now imported via CocoaPods, has the `AppExtension Safe API Only` flag set to *true*. Meaning that - /// the host app is, effectively as of now, responsible for presenting any alert onscreen (whenever a HTTP Challenge is - /// received). Capicci? - /// WordPressOrgXMLRPCApi.onChallenge = { (challenge, completionHandler) in guard let alertController = HTTPAuthenticationAlertController.controller(for: challenge, handler: completionHandler) else { completionHandler(.performDefaultHandling, nil) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 66493c618a50..a17bd7fe400f 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -324,7 +324,6 @@ 1D91080729F847A2003F9A5E /* MediaServiceUpdateTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D91080629F847A2003F9A5E /* MediaServiceUpdateTests.m */; }; 1DE9F2B32BA30E820044AA53 /* GutenbergFileUploadProcessorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DE9F2B22BA30E820044AA53 /* GutenbergFileUploadProcessorTests.swift */; }; 1DF7A0D32BA0B1810003CBA3 /* GutenbergContentParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DF7A0D22BA0B1810003CBA3 /* GutenbergContentParser.swift */; }; - 223EA61E212A7C26A456C32C /* Pods_JetpackDraftActionExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 430F7B409FE22699ADB1A724 /* Pods_JetpackDraftActionExtension.framework */; }; 2422A2C02C5846DB00402A81 /* Blog+RestAPITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2422A2BF2C5846DB00402A81 /* Blog+RestAPITests.swift */; }; 24351254264DCA08009BB2B6 /* Secrets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24351253264DCA08009BB2B6 /* Secrets.swift */; }; 24351255264DCA08009BB2B6 /* Secrets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24351253264DCA08009BB2B6 /* Secrets.swift */; }; @@ -363,6 +362,26 @@ 3F56F55C2AEA2F67006BDCEA /* ReaderPostBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F56F55B2AEA2F67006BDCEA /* ReaderPostBuilder.swift */; }; 3F593FDD2A81DC6D00B29E86 /* NSError+TestInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F593FDC2A81DC6D00B29E86 /* NSError+TestInstance.swift */; }; 3F5C865D25C9EBEF00BABE64 /* HomeWidgetAllTimeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F5C861925C9EA2500BABE64 /* HomeWidgetAllTimeData.swift */; }; + 3F608F7F2D2D1A9E008ACD86 /* Gutenberg.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3902D2C4BA3008ACD86 /* Gutenberg.xcframework */; }; + 3F608F802D2D1A9E008ACD86 /* Gutenberg.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3902D2C4BA3008ACD86 /* Gutenberg.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F608F812D2D1A9E008ACD86 /* hermes.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3922D2C4BA3008ACD86 /* hermes.xcframework */; }; + 3F608F822D2D1A9E008ACD86 /* hermes.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3922D2C4BA3008ACD86 /* hermes.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F608F832D2D1A9E008ACD86 /* React.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D38F2D2C4BA3008ACD86 /* React.xcframework */; }; + 3F608F842D2D1A9E008ACD86 /* React.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D38F2D2C4BA3008ACD86 /* React.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F608F852D2D1A9E008ACD86 /* RNTAztecView.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3912D2C4BA3008ACD86 /* RNTAztecView.xcframework */; }; + 3F608F862D2D1A9E008ACD86 /* RNTAztecView.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3912D2C4BA3008ACD86 /* RNTAztecView.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F608F872D2D1A9E008ACD86 /* yoga.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3932D2C4BA4008ACD86 /* yoga.xcframework */; }; + 3F608F882D2D1A9E008ACD86 /* yoga.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3932D2C4BA4008ACD86 /* yoga.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F60D3942D2C4BA4008ACD86 /* React.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D38F2D2C4BA3008ACD86 /* React.xcframework */; }; + 3F60D3952D2C4BA4008ACD86 /* React.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D38F2D2C4BA3008ACD86 /* React.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F60D3962D2C4BA4008ACD86 /* Gutenberg.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3902D2C4BA3008ACD86 /* Gutenberg.xcframework */; }; + 3F60D3972D2C4BA4008ACD86 /* Gutenberg.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3902D2C4BA3008ACD86 /* Gutenberg.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F60D3982D2C4BA4008ACD86 /* RNTAztecView.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3912D2C4BA3008ACD86 /* RNTAztecView.xcframework */; }; + 3F60D3992D2C4BA4008ACD86 /* RNTAztecView.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3912D2C4BA3008ACD86 /* RNTAztecView.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F60D39A2D2C4BA4008ACD86 /* hermes.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3922D2C4BA3008ACD86 /* hermes.xcframework */; }; + 3F60D39B2D2C4BA4008ACD86 /* hermes.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3922D2C4BA3008ACD86 /* hermes.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3F60D39C2D2C4BA4008ACD86 /* yoga.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3932D2C4BA4008ACD86 /* yoga.xcframework */; }; + 3F60D39D2D2C4BA4008ACD86 /* yoga.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F60D3932D2C4BA4008ACD86 /* yoga.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 3F6DA04125646F96002AB88F /* HomeWidgetData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F6DA04025646F96002AB88F /* HomeWidgetData.swift */; }; 3F751D462491A93D0008A2B1 /* ZendeskUtilsTests+Plans.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F751D452491A93D0008A2B1 /* ZendeskUtilsTests+Plans.swift */; }; 3F759FBA2A2DA93B0039A845 /* WPAccount+Fixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F759FB92A2DA93B0039A845 /* WPAccount+Fixture.swift */; }; @@ -671,7 +690,6 @@ 4AD955C82C2171F000D0EEFA /* MemoryManagementTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AD955982C2171F000D0EEFA /* MemoryManagementTests.swift */; }; 4AEF2DD929A84B2C00345734 /* ReaderSiteServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AEF2DD829A84B2C00345734 /* ReaderSiteServiceTests.swift */; }; 4AFB8FBF2824999500A2F4B2 /* ContextManager+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AFB8FBE2824999400A2F4B2 /* ContextManager+Helpers.swift */; }; - 4BB2296498BE66D515E3D610 /* Pods_JetpackShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 23052F0F1F9B2503E33D0A26 /* Pods_JetpackShareExtension.framework */; }; 570BFD902282418A007859A8 /* PostBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 570BFD8F2282418A007859A8 /* PostBuilder.swift */; }; 572FB401223A806000933C76 /* NoticeStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 572FB400223A806000933C76 /* NoticeStoreTests.swift */; }; 575802132357C41200E4C63C /* MediaCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 575802122357C41200E4C63C /* MediaCoordinatorTests.swift */; }; @@ -1024,11 +1042,8 @@ 98E58A2F2360D23400E5534B /* TodayWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E58A2E2360D23400E5534B /* TodayWidgetStats.swift */; }; 9A9D34FD23607CCC00BC95A3 /* AsyncOperationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A9D34FC23607CCC00BC95A3 /* AsyncOperationTests.swift */; }; 9A9D34FF2360A4E200BC95A3 /* StatsPeriodAsyncOperationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A9D34FE2360A4E200BC95A3 /* StatsPeriodAsyncOperationTests.swift */; }; - 9C86CF3E1EAC13181A593D00 /* Pods_Apps_Jetpack.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57E15BC2269B6B7419464B6F /* Pods_Apps_Jetpack.framework */; }; A01C542E0E24E88400D411F2 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A01C542D0E24E88400D411F2 /* SystemConfiguration.framework */; }; A01C55480E25E0D000D411F2 /* defaultPostTemplate.html in Resources */ = {isa = PBXBuildFile; fileRef = A01C55470E25E0D000D411F2 /* defaultPostTemplate.html */; }; - A1C54EBE8C34FFD5015F8FC9 /* Pods_Apps_WordPress.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E826CD5B4B116AF78FF391C /* Pods_Apps_WordPress.framework */; }; - A2C95CCF203760D9372C5857 /* Pods_WordPressDraftActionExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92B40A77F0765C1E93B11727 /* Pods_WordPressDraftActionExtension.framework */; }; AB2211F425ED6E7A00BF72FC /* CommentServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB2211F325ED6E7A00BF72FC /* CommentServiceTests.swift */; }; AC68C9CA28E5DF14009030A9 /* NotificationsViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC68C9C928E5DF14009030A9 /* NotificationsViewControllerTests.swift */; }; ACACE3AE28D729FA000992F9 /* NoResultsViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACACE3AD28D729FA000992F9 /* NoResultsViewControllerTests.swift */; }; @@ -1136,7 +1151,6 @@ CCBC9EB4251258FB008E1D5F /* WPUITestCredentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC8A5EAA22159FA6001B7874 /* WPUITestCredentials.swift */; }; CE39E17220CB117B00CABA05 /* RemoteBlog+Capabilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE39E17120CB117B00CABA05 /* RemoteBlog+Capabilities.swift */; }; CE39E17320CB117B00CABA05 /* RemoteBlog+Capabilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE39E17120CB117B00CABA05 /* RemoteBlog+Capabilities.swift */; }; - D0E2AA7C4D4CB1679173958E /* Pods_WordPressShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 213A62FF811EBDB969FA7669 /* Pods_WordPressShareExtension.framework */; }; D81C2F5420F85DB1002AE1F1 /* ApproveCommentActionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81C2F5320F85DB1002AE1F1 /* ApproveCommentActionTests.swift */; }; D81C2F5820F86CEA002AE1F1 /* NetworkStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81C2F5720F86CEA002AE1F1 /* NetworkStatus.swift */; }; D81C2F5A20F86E94002AE1F1 /* LikeCommentActionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81C2F5920F86E94002AE1F1 /* LikeCommentActionTests.swift */; }; @@ -1240,7 +1254,6 @@ E66969C81B9E0A6800EC9C00 /* ReaderTopicServiceTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E66969C71B9E0A6800EC9C00 /* ReaderTopicServiceTest.swift */; }; E6A215901D1065F200DE5270 /* AbstractPostTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6A2158F1D1065F200DE5270 /* AbstractPostTest.swift */; }; E6B9B8AF1B94FA1C0001B92F /* ReaderStreamViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6B9B8AE1B94FA1C0001B92F /* ReaderStreamViewControllerTests.swift */; }; - E8DEE110E4BC3FA1974AB1BB /* Pods_WordPressTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B921F5DD9A1F257C792EC225 /* Pods_WordPressTest.framework */; }; EA14532A29AD874C001F3143 /* ReaderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB10E3F27487F5D000DA4C1 /* ReaderTests.swift */; }; EA14532B29AD874C001F3143 /* EditorAztecTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BED4D82F1FF11DEF00A11345 /* EditorAztecTests.swift */; }; EA14532C29AD874C001F3143 /* EditorGutenbergTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2BB0CF228ACF710034F9AB /* EditorGutenbergTests.swift */; }; @@ -1842,7 +1855,12 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + 3F60D3972D2C4BA4008ACD86 /* Gutenberg.xcframework in Embed Frameworks */, + 3F60D3992D2C4BA4008ACD86 /* RNTAztecView.xcframework in Embed Frameworks */, 4AD953C82C21451700D0EEFA /* WordPressAuthenticator.framework in Embed Frameworks */, + 3F60D3952D2C4BA4008ACD86 /* React.xcframework in Embed Frameworks */, + 3F60D39B2D2C4BA4008ACD86 /* hermes.xcframework in Embed Frameworks */, + 3F60D39D2D2C4BA4008ACD86 /* yoga.xcframework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -1854,6 +1872,11 @@ dstSubfolderSpec = 10; files = ( 4AD9555B2C21716A00D0EEFA /* WordPressAuthenticator.framework in Embed Frameworks */, + 3F608F822D2D1A9E008ACD86 /* hermes.xcframework in Embed Frameworks */, + 3F608F802D2D1A9E008ACD86 /* Gutenberg.xcframework in Embed Frameworks */, + 3F608F842D2D1A9E008ACD86 /* React.xcframework in Embed Frameworks */, + 3F608F862D2D1A9E008ACD86 /* RNTAztecView.xcframework in Embed Frameworks */, + 3F608F882D2D1A9E008ACD86 /* yoga.xcframework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -1897,7 +1920,6 @@ 0107E1832900043200DE87DB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 0107E1842900059300DE87DB /* LocalizationConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationConfiguration.swift; sourceTree = ""; }; 0107E1862900065400DE87DB /* LocalizationConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizationConfiguration.swift; sourceTree = ""; }; - 011A2815DB0DE7E3973CBC0E /* Pods-Apps-Jetpack.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.release.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release.xcconfig"; sourceTree = ""; }; 011F52C52A15413800B04114 /* FreeToPaidPlansDashboardCardHelperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FreeToPaidPlansDashboardCardHelperTests.swift; sourceTree = ""; }; 01281E9B2A051EEA00464F8F /* MySiteTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MySiteTests.swift; sourceTree = ""; }; 0141929F2983F5E800CAEDB0 /* SupportConfigurationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportConfigurationTests.swift; sourceTree = ""; }; @@ -1943,7 +1965,6 @@ 082EA3D62B4C202600E7F361 /* NotificationsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationsViewModelTests.swift; sourceTree = ""; }; 084D94AE1EDF842600C385A6 /* test-video-device-gps.m4v */ = {isa = PBXFileReference; lastKnownFileType = file; path = "test-video-device-gps.m4v"; sourceTree = ""; }; 084FC3B629913B1B00A17BCF /* JetpackPluginOverlayViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JetpackPluginOverlayViewModelTests.swift; sourceTree = ""; }; - 084FF460C7742309671B3A86 /* Pods-WordPressTest.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTest.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTest/Pods-WordPressTest.debug.xcconfig"; sourceTree = ""; }; 0879FC151E9301DD00E1EFC8 /* MediaTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaTests.swift; sourceTree = ""; }; 088134FE2A56C5240027C086 /* CompliancePopoverViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompliancePopoverViewModelTests.swift; sourceTree = ""; }; 0885A3661E837AFE00619B4D /* URLIncrementalFilenameTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLIncrementalFilenameTests.swift; sourceTree = ""; }; @@ -2007,7 +2028,6 @@ 09C8BB8227DFF9C900974175 /* is */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = is; path = is.lproj/InfoPlist.strings; sourceTree = ""; }; 09C8BB8327DFF9CB00974175 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/InfoPlist.strings; sourceTree = ""; }; 09C8BB8427DFF9CC00974175 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/InfoPlist.strings; sourceTree = ""; }; - 09F367D2BE684EDE2E4A40E3 /* Pods-WordPressDraftActionExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressDraftActionExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressDraftActionExtension/Pods-WordPressDraftActionExtension.debug.xcconfig"; sourceTree = ""; }; 0A69300A28B5AA5E00E98DE1 /* FullScreenCommentReplyViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullScreenCommentReplyViewModelTests.swift; sourceTree = ""; }; 0A9687BB28B40771009DCD2F /* FullScreenCommentReplyViewModelMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullScreenCommentReplyViewModelMock.swift; sourceTree = ""; }; 0C0DF8932C2DF12A00011B7D /* LoginFacadeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginFacadeTests.m; sourceTree = ""; }; @@ -2037,9 +2057,6 @@ 0CD542C82CEFAE5F00666F44 /* wporg-blog-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wporg-blog-icon.png"; sourceTree = ""; }; 0CD6299A2B9AAA9A00325EA4 /* Foundation+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Foundation+Extensions.swift"; sourceTree = ""; }; 0CF7D6C22ABB753A006D1E89 /* MediaImageServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaImageServiceTests.swift; sourceTree = ""; }; - 131D0EE49695795ECEDAA446 /* Pods-WordPressTest.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTest.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTest/Pods-WordPressTest.release-alpha.xcconfig"; sourceTree = ""; }; - 150B6590614A28DF9AD25491 /* Pods-Apps-Jetpack.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release-alpha.xcconfig"; sourceTree = ""; }; - 152F25D5C232985E30F56CAC /* Pods-Apps-Jetpack.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.debug.xcconfig"; sourceTree = ""; }; 17222D45261DDDF10047B163 /* celadon-classic-icon-app-76x76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "celadon-classic-icon-app-76x76.png"; sourceTree = ""; }; 17222D46261DDDF10047B163 /* celadon-classic-icon-app-76x76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "celadon-classic-icon-app-76x76@2x.png"; sourceTree = ""; }; 17222D47261DDDF10047B163 /* celadon-classic-icon-app-83.5x83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "celadon-classic-icon-app-83.5x83.5@2x.png"; sourceTree = ""; }; @@ -2131,16 +2148,12 @@ 17C1D6F426711ED0006C8970 /* Emoji.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = Emoji.txt; sourceTree = ""; }; 17C3F8BE25E4438100EFFE12 /* notifications-button-text-content.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "notifications-button-text-content.json"; sourceTree = ""; }; 17FC0031264D728E00FCBD37 /* SharingServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharingServiceTests.swift; sourceTree = ""; }; - 1BC96E982E9B1A6DD86AF491 /* Pods-WordPressShareExtension.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressShareExtension.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressShareExtension/Pods-WordPressShareExtension.release-alpha.xcconfig"; sourceTree = ""; }; 1D19C56529C9DB0A00FB0087 /* GutenbergVideoPressUploadProcessorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GutenbergVideoPressUploadProcessorTests.swift; sourceTree = ""; }; 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 1D6058910D05DD3D006BFB54 /* WordPress.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WordPress.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1D91080629F847A2003F9A5E /* MediaServiceUpdateTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MediaServiceUpdateTests.m; sourceTree = ""; }; 1DE9F2B22BA30E820044AA53 /* GutenbergFileUploadProcessorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergFileUploadProcessorTests.swift; sourceTree = ""; }; 1DF7A0D22BA0B1810003CBA3 /* GutenbergContentParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergContentParser.swift; sourceTree = ""; }; - 1E826CD5B4B116AF78FF391C /* Pods_Apps_WordPress.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Apps_WordPress.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 213A62FF811EBDB969FA7669 /* Pods_WordPressShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 23052F0F1F9B2503E33D0A26 /* Pods_JetpackShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2422A2BF2C5846DB00402A81 /* Blog+RestAPITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Blog+RestAPITests.swift"; sourceTree = ""; }; 24350E7C264DB76E009BB2B6 /* Jetpack.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Jetpack.debug.xcconfig; sourceTree = ""; }; 24351059264DC1E2009BB2B6 /* Jetpack.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Jetpack.release.xcconfig; sourceTree = ""; }; @@ -2196,14 +2209,12 @@ 24CDE3402C5863A1005E5E43 /* TestKeychain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestKeychain.swift; sourceTree = ""; }; 24E55D4D2CC9A5C8008D071D /* ImagePlayground.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImagePlayground.framework; path = System/Library/Frameworks/ImagePlayground.framework; sourceTree = SDKROOT; }; 28A0AAE50D9B0CCF005BE974 /* WordPress_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordPress_Prefix.pch; sourceTree = ""; }; - 293E283D7339E7B6D13F6E09 /* Pods-JetpackShareExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackShareExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackShareExtension/Pods-JetpackShareExtension.release-internal.xcconfig"; sourceTree = ""; }; 296890770FE971DC00770264 /* Security.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 2FAE97040E33B21600CA8540 /* defaultPostTemplate_old.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = defaultPostTemplate_old.html; path = Resources/HTML/defaultPostTemplate_old.html; sourceTree = ""; }; 2FAE97070E33B21600CA8540 /* xhtml1-transitional.dtd */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = "xhtml1-transitional.dtd"; path = "Resources/HTML/xhtml1-transitional.dtd"; sourceTree = ""; }; 2FAE97080E33B21600CA8540 /* xhtmlValidatorTemplate.xhtml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = xhtmlValidatorTemplate.xhtml; path = Resources/HTML/xhtmlValidatorTemplate.xhtml; sourceTree = ""; }; 321955C024BE4EBF00E3F316 /* ReaderSelectInterestsCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderSelectInterestsCoordinatorTests.swift; sourceTree = ""; }; 3236F7A024B61B950088E8F3 /* ReaderInterestsDataSourceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderInterestsDataSourceTests.swift; sourceTree = ""; }; - 32387A1D541851E82ED957CE /* Pods-WordPressShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressShareExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressShareExtension/Pods-WordPressShareExtension.release.xcconfig"; sourceTree = ""; }; 325D3B3C23A8376400766DF6 /* FullScreenCommentReplyViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FullScreenCommentReplyViewControllerTests.swift; sourceTree = ""; }; 32C6CDDA23A1FF0D002556FF /* SiteCreationRotatingMessageViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteCreationRotatingMessageViewTests.swift; sourceTree = ""; }; 374CB16115B93C0800DD0EBC /* AudioToolbox.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; @@ -2232,6 +2243,11 @@ 3F593FDC2A81DC6D00B29E86 /* NSError+TestInstance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSError+TestInstance.swift"; sourceTree = ""; }; 3F5C861925C9EA2500BABE64 /* HomeWidgetAllTimeData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeWidgetAllTimeData.swift; sourceTree = ""; }; 3F5C86BF25CA197500BABE64 /* HomeWidgetAllTime.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeWidgetAllTime.swift; sourceTree = ""; }; + 3F60D38F2D2C4BA3008ACD86 /* React.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = React.xcframework; path = Frameworks/React.xcframework; sourceTree = ""; }; + 3F60D3902D2C4BA3008ACD86 /* Gutenberg.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Gutenberg.xcframework; path = Frameworks/Gutenberg.xcframework; sourceTree = ""; }; + 3F60D3912D2C4BA3008ACD86 /* RNTAztecView.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = RNTAztecView.xcframework; path = Frameworks/RNTAztecView.xcframework; sourceTree = ""; }; + 3F60D3922D2C4BA3008ACD86 /* hermes.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = hermes.xcframework; path = Frameworks/hermes.xcframework; sourceTree = ""; }; + 3F60D3932D2C4BA4008ACD86 /* yoga.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = yoga.xcframework; path = Frameworks/yoga.xcframework; sourceTree = ""; }; 3F63B93B258179D100F581BE /* StatsWidgetEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsWidgetEntry.swift; sourceTree = ""; }; 3F6DA04025646F96002AB88F /* HomeWidgetData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeWidgetData.swift; sourceTree = ""; }; 3F751D452491A93D0008A2B1 /* ZendeskUtilsTests+Plans.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ZendeskUtilsTests+Plans.swift"; sourceTree = ""; }; @@ -2281,7 +2297,6 @@ 406A0EEF224D39C50016AD6A /* Flags.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Flags.xcassets; sourceTree = ""; }; 40ACCF13224E167900190713 /* FlagsTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlagsTest.swift; sourceTree = ""; }; 40E4698E2017E0700030DB5F /* PluginDirectoryEntryStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PluginDirectoryEntryStateTests.swift; sourceTree = ""; }; - 430F7B409FE22699ADB1A724 /* Pods_JetpackDraftActionExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackDraftActionExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 433840C622C2BA5B00CB13F8 /* AppImages.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = AppImages.xcassets; path = Resources/AppImages.xcassets; sourceTree = ""; }; 436D55EF2115CB6800CEAA33 /* RegisterDomainDetailsSectionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterDomainDetailsSectionTests.swift; sourceTree = ""; }; 436D55F4211632B700CEAA33 /* RegisterDomainDetailsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterDomainDetailsViewModelTests.swift; sourceTree = ""; }; @@ -2418,7 +2433,6 @@ 4AD9542D2C2145CB00D0EEFA /* WPNUXMainButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPNUXMainButton.m; sourceTree = ""; }; 4AD954342C2145CB00D0EEFA /* WPWalkthroughTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WPWalkthroughTextField.h; sourceTree = ""; }; 4AD954352C2145CB00D0EEFA /* WPWalkthroughTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPWalkthroughTextField.m; sourceTree = ""; }; - 4AD954372C2145CB00D0EEFA /* WPAuthenticator-Swift.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "WPAuthenticator-Swift.h"; sourceTree = ""; }; 4AD954432C2145CB00D0EEFA /* LoginFacade.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginFacade.h; sourceTree = ""; }; 4AD954442C2145CB00D0EEFA /* LoginFacade.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginFacade.m; sourceTree = ""; }; 4AD954452C2145CB00D0EEFA /* LoginFacade.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginFacade.swift; sourceTree = ""; }; @@ -2546,13 +2560,11 @@ 4AD955982C2171F000D0EEFA /* MemoryManagementTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MemoryManagementTests.swift; sourceTree = ""; }; 4AEF2DD829A84B2C00345734 /* ReaderSiteServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderSiteServiceTests.swift; sourceTree = ""; }; 4AFB8FBE2824999400A2F4B2 /* ContextManager+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ContextManager+Helpers.swift"; sourceTree = ""; }; - 51A5F017948878F7E26979A0 /* Pods-Apps-WordPress.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-WordPress.release.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress.release.xcconfig"; sourceTree = ""; }; 570BFD8F2282418A007859A8 /* PostBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostBuilder.swift; sourceTree = ""; }; 572FB400223A806000933C76 /* NoticeStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeStoreTests.swift; sourceTree = ""; }; 575802122357C41200E4C63C /* MediaCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MediaCoordinatorTests.swift; path = Services/MediaCoordinatorTests.swift; sourceTree = ""; }; 57889AB723589DF100DAE56D /* PageBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = PageBuilder.swift; path = TestUtilities/PageBuilder.swift; sourceTree = ""; }; 57B71D4D230DB5F200789A68 /* BlogBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogBuilder.swift; sourceTree = ""; }; - 57E15BC2269B6B7419464B6F /* Pods_Apps_Jetpack.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Apps_Jetpack.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5948AD101AB73D19006E8882 /* WPAppAnalyticsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = WPAppAnalyticsTests.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 5960967E1CF7959300848496 /* PostTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostTests.swift; sourceTree = ""; }; 5981FE041AB8A89A0009E080 /* WPUserAgentTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPUserAgentTests.m; sourceTree = ""; }; @@ -2563,8 +2575,6 @@ 5D69DBC3165428CA00A2D1F7 /* n.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = n.caf; path = Resources/Sounds/n.caf; sourceTree = ""; }; 5DB767401588F64D00EBE36C /* postPreview.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = postPreview.html; path = Resources/HTML/postPreview.html; sourceTree = ""; }; 5DE8A0401912D95B00B2FF59 /* ReaderPostServiceTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReaderPostServiceTest.m; sourceTree = ""; }; - 5E48AA7F709A5B0F2318A7E3 /* Pods-JetpackDraftActionExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackDraftActionExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackDraftActionExtension/Pods-JetpackDraftActionExtension.release-internal.xcconfig"; sourceTree = ""; }; - 67832AB9D81652460A80BE66 /* Pods-Apps-Jetpack.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release-internal.xcconfig"; sourceTree = ""; }; 6E5BA46826A59D620043A6F2 /* SupportScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportScreenTests.swift; sourceTree = ""; }; 6EDC0E8E105881A800F68A1D /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = ""; }; 730354B921C867E500CD18C2 /* SiteCreatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteCreatorTests.swift; sourceTree = ""; }; @@ -2657,7 +2667,6 @@ 74F89406202A1965008610FA /* ExtensionNotificationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionNotificationManager.swift; sourceTree = ""; }; 74FA2EE3200E8A6C001DDC13 /* AppExtensionsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppExtensionsService.swift; sourceTree = ""; }; 74FA4BE41FBFA0660031EAAD /* Extensions.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Extensions.xcdatamodel; sourceTree = ""; }; - 75305C06D345590B757E3890 /* Pods-Apps-WordPress.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-WordPress.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress.debug.xcconfig"; sourceTree = ""; }; 77A141162B68546100BF75DD /* BooleanUserDefaultsDebugViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BooleanUserDefaultsDebugViewModelTests.swift; sourceTree = ""; }; 7E21C760202BBC8D00837CF5 /* iAd.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iAd.framework; path = System/Library/Frameworks/iAd.framework; sourceTree = SDKROOT; }; 7E442FC620F677CB00DEACA5 /* ActivityLogRangesTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityLogRangesTest.swift; sourceTree = ""; }; @@ -2679,7 +2688,6 @@ 7E987F57210811CC00CAFB88 /* NotificationContentRouterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationContentRouterTests.swift; sourceTree = ""; }; 7E987F592108122A00CAFB88 /* NotificationUtility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationUtility.swift; sourceTree = ""; }; 7EAA66EE22CB36FD00869038 /* TestAnalyticsTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestAnalyticsTracker.swift; sourceTree = ""; }; - 7EC2116478565023EDB57703 /* Pods-JetpackShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackShareExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackShareExtension/Pods-JetpackShareExtension.release.xcconfig"; sourceTree = ""; }; 7EC9FE0A22C627DB00C5A888 /* PostEditorAnalyticsSessionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostEditorAnalyticsSessionTests.swift; sourceTree = ""; }; 7EF2EE9F210A67B60007A76B /* notifications-unapproved-comment.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "notifications-unapproved-comment.json"; sourceTree = ""; }; 800035C229230A0B007D2D26 /* ExtensionConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionConfiguration.swift; sourceTree = ""; }; @@ -2777,12 +2785,8 @@ 8BEE845927B1DC9D0001A93C /* dashboard-200-with-drafts-and-scheduled.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "dashboard-200-with-drafts-and-scheduled.json"; sourceTree = ""; }; 8BFE36FE230F1C850061EBA8 /* AbstractPost+fixLocalMediaURLsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AbstractPost+fixLocalMediaURLsTests.swift"; sourceTree = ""; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DCE7542239FBC709B90EA85 /* Pods_WordPressUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8DE205D2AC15F16289E7D21A /* Pods-WordPressDraftActionExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressDraftActionExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressDraftActionExtension/Pods-WordPressDraftActionExtension.release.xcconfig"; sourceTree = ""; }; - 9149D34BF5182F360C84EDB9 /* Pods-JetpackDraftActionExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackDraftActionExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackDraftActionExtension/Pods-JetpackDraftActionExtension.debug.xcconfig"; sourceTree = ""; }; 91BE834D2C48FF0F00BB5B3B /* UIImageView+Additions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImageView+Additions.swift"; sourceTree = ""; }; 91CFB9542CE21196005CD369 /* URLHelpersTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLHelpersTests.swift; sourceTree = ""; }; - 92B40A77F0765C1E93B11727 /* Pods_WordPressDraftActionExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressDraftActionExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 930C6374182BD86400976C21 /* WordPress-Internal-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "WordPress-Internal-Info.plist"; sourceTree = ""; }; 930FD0A519882742000CC81D /* BlogServiceTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BlogServiceTest.m; sourceTree = ""; }; 931215E0267DE1C0008C3B69 /* StatsTotalRowDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsTotalRowDataTests.swift; sourceTree = ""; }; @@ -2892,9 +2896,6 @@ B5EFB1D01B33630C007608A3 /* notifications-settings.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "notifications-settings.json"; sourceTree = ""; }; B5FA22821C99F6180016CA7C /* Tracks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Tracks.swift; path = WordPressShareExtension/Tracks.swift; sourceTree = SOURCE_ROOT; wrapsLines = 0; }; B5FA868A1D10A41600AB5F7E /* UIImage+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "UIImage+Extensions.swift"; path = "WordPressShareExtension/UIImage+Extensions.swift"; sourceTree = SOURCE_ROOT; }; - B7556D1D8CFA5CEAEAC481B9 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B921F5DD9A1F257C792EC225 /* Pods_WordPressTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressTest.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BBA98A42A5503D734AC9C936 /* Pods-Apps-WordPress.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-WordPress.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress.release-internal.xcconfig"; sourceTree = ""; }; BE2B4E9E1FD664F5007AE3E4 /* BaseScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseScreen.swift; sourceTree = ""; }; BE6787F41FFF2886005D9F01 /* ShareModularViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareModularViewController.swift; sourceTree = ""; }; BEA0E4841BD83565000AEE81 /* WP3DTouchShortcutCreatorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WP3DTouchShortcutCreatorTests.swift; path = System/3DTouch/WP3DTouchShortcutCreatorTests.swift; sourceTree = ""; }; @@ -2914,7 +2915,6 @@ C3C70C552835C5BB00DD2546 /* SiteDesignSectionLoaderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteDesignSectionLoaderTests.swift; sourceTree = ""; }; C3E42AAF27F4D30E00546706 /* MenuItemsViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuItemsViewControllerTests.swift; sourceTree = ""; }; C3E77F88293A4EA10034AE5A /* MigrationLoadWordPressViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationLoadWordPressViewModel.swift; sourceTree = ""; }; - C5E82422F47D9BF7E682262B /* Pods-JetpackDraftActionExtension.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackDraftActionExtension.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackDraftActionExtension/Pods-JetpackDraftActionExtension.release-alpha.xcconfig"; sourceTree = ""; }; C7124E4C2638528F00929318 /* JetpackPrologueViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = JetpackPrologueViewController.xib; sourceTree = ""; }; C7124E4D2638528F00929318 /* JetpackPrologueViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JetpackPrologueViewController.swift; sourceTree = ""; }; C72A52CE2649B157009CA633 /* JetpackWindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JetpackWindowManager.swift; sourceTree = ""; }; @@ -2922,7 +2922,6 @@ C738CB0C28623F07001BE107 /* QRLoginURLParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRLoginURLParserTests.swift; sourceTree = ""; }; C738CB0E28626466001BE107 /* QRLoginScanningCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRLoginScanningCoordinatorTests.swift; sourceTree = ""; }; C738CB1028626606001BE107 /* QRLoginVerifyCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRLoginVerifyCoordinatorTests.swift; sourceTree = ""; }; - C7AEA9D1F1AC3F501B6DE0C8 /* Pods-JetpackShareExtension.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackShareExtension.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackShareExtension/Pods-JetpackShareExtension.release-alpha.xcconfig"; sourceTree = ""; }; C7D30C642638B07A00A1695B /* JetpackPrologueStyleGuide.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JetpackPrologueStyleGuide.swift; sourceTree = ""; }; C7E5F24D2799BD52009BC263 /* cool-blue-icon-app-76x76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cool-blue-icon-app-76x76.png"; sourceTree = ""; }; C7E5F24E2799BD52009BC263 /* cool-blue-icon-app-60x60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cool-blue-icon-app-60x60@3x.png"; sourceTree = ""; }; @@ -2937,13 +2936,11 @@ C81CCD69243AEE1100A83E27 /* TenorAPIResponseTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TenorAPIResponseTests.swift; sourceTree = ""; }; C81CCD6B243AEFBF00A83E27 /* TenorReponseData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TenorReponseData.swift; sourceTree = ""; }; C81CCD85243C00E000A83E27 /* TenorPageableTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TenorPageableTests.swift; sourceTree = ""; }; - C82B4C5ECF11C9FEE39CD9A0 /* Pods-WordPressShareExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressShareExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressShareExtension/Pods-WordPressShareExtension.release-internal.xcconfig"; sourceTree = ""; }; C8567491243F3751001A995E /* tenor-search-response.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "tenor-search-response.json"; sourceTree = ""; }; C8567493243F388F001A995E /* tenor-invalid-search-reponse.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "tenor-invalid-search-reponse.json"; sourceTree = ""; }; C8567495243F3D37001A995E /* TenorResultsPageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TenorResultsPageTests.swift; sourceTree = ""; }; C8567497243F41CA001A995E /* MockTenorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockTenorService.swift; sourceTree = ""; }; C8567499243F4292001A995E /* TenorMockDataHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TenorMockDataHelper.swift; sourceTree = ""; }; - C9264D275F6288F66C33D2CE /* Pods-WordPressTest.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTest.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTest/Pods-WordPressTest.release-internal.xcconfig"; sourceTree = ""; }; C9B4778329C85949008CBF49 /* LockScreenStatsWidgetEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockScreenStatsWidgetEntry.swift; sourceTree = ""; }; C9B477A729CC13C6008CBF49 /* LockScreenSiteListProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockScreenSiteListProvider.swift; sourceTree = ""; }; C9B477AB29CC15D9008CBF49 /* WidgetDataReader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WidgetDataReader.swift; sourceTree = ""; }; @@ -2957,7 +2954,6 @@ C9FE383029C2053300D39841 /* LockScreenSingleStatView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockScreenSingleStatView.swift; sourceTree = ""; }; C9FE383C29C2A3D100D39841 /* LockScreenTodayViewsStatWidgetConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockScreenTodayViewsStatWidgetConfig.swift; sourceTree = ""; }; C9FE383F29C2A3D200D39841 /* LockScreenStatsWidgetConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockScreenStatsWidgetConfig.swift; sourceTree = ""; }; - CB1DAFB7DE085F2FF0314622 /* Pods-WordPressShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressShareExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressShareExtension/Pods-WordPressShareExtension.debug.xcconfig"; sourceTree = ""; }; CB1FD8D926E605CF00EDAF06 /* Extensions 4.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Extensions 4.xcdatamodel"; sourceTree = ""; }; CB48172926E0D93D008C2D9B /* SharePostTypePickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharePostTypePickerViewController.swift; sourceTree = ""; }; CBF6201226E8FB520061A1F8 /* RemotePost+ShareData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RemotePost+ShareData.swift"; sourceTree = ""; }; @@ -2970,9 +2966,7 @@ CC8A5EAA22159FA6001B7874 /* WPUITestCredentials.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WPUITestCredentials.swift; sourceTree = ""; }; CCCF53BC237B13760035E9CA /* WordPressUnitTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = WordPressUnitTests.xctestplan; sourceTree = ""; }; CCCF53BD237B13EA0035E9CA /* WordPressUITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = WordPressUITests.xctestplan; sourceTree = ""; }; - CDA9AED50FDA27959A5CD1B2 /* Pods-WordPressDraftActionExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressDraftActionExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressDraftActionExtension/Pods-WordPressDraftActionExtension.release-internal.xcconfig"; sourceTree = ""; }; CE39E17120CB117B00CABA05 /* RemoteBlog+Capabilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RemoteBlog+Capabilities.swift"; sourceTree = ""; }; - CE5249687F020581B14F4172 /* Pods-JetpackDraftActionExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackDraftActionExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackDraftActionExtension/Pods-JetpackDraftActionExtension.release.xcconfig"; sourceTree = ""; }; D81C2F5320F85DB1002AE1F1 /* ApproveCommentActionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApproveCommentActionTests.swift; sourceTree = ""; }; D81C2F5720F86CEA002AE1F1 /* NetworkStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkStatus.swift; sourceTree = ""; }; D81C2F5920F86E94002AE1F1 /* LikeCommentActionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LikeCommentActionTests.swift; sourceTree = ""; }; @@ -3102,7 +3096,6 @@ EA14534629AEF479001F3143 /* JetpackUITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = JetpackUITests.xctestplan; sourceTree = ""; }; EAB10E3F27487F5D000DA4C1 /* ReaderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderTests.swift; sourceTree = ""; }; EAD2BF4127594DAB00A847BB /* StatsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatsTests.swift; sourceTree = ""; }; - EF379F0A70B6AC45330EE287 /* Pods-WordPressTest.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTest.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTest/Pods-WordPressTest.release.xcconfig"; sourceTree = ""; }; F11023A0231863CE00C4E84A /* MediaServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaServiceTests.swift; sourceTree = ""; }; F11023A223186BCA00C4E84A /* MediaBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaBuilder.swift; sourceTree = ""; }; F111B88B2658102700057942 /* Combine.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Combine.framework; path = System/Library/Frameworks/Combine.framework; sourceTree = SDKROOT; }; @@ -3123,7 +3116,6 @@ F1F083F5241FFE930056D3B1 /* AtomicAuthenticationServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AtomicAuthenticationServiceTests.swift; sourceTree = ""; }; F1F163C025658B4D003DC13B /* IntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentHandler.swift; sourceTree = ""; }; F1F163C825658B4D003DC13B /* IntentsUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IntentsUI.framework; path = System/Library/Frameworks/IntentsUI.framework; sourceTree = SDKROOT; }; - F373612EEEEF10E500093FF3 /* Pods-Apps-WordPress.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-WordPress.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress.release-alpha.xcconfig"; sourceTree = ""; }; F406F3EC2B55960700AFC04A /* CompliancePopoverCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompliancePopoverCoordinatorTests.swift; sourceTree = ""; }; F41BDD72290BBDCA00B7F2B0 /* MigrationActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationActionsView.swift; sourceTree = ""; }; F41BDD782910AFCA00B7F2B0 /* MigrationFlowCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationFlowCoordinator.swift; sourceTree = ""; }; @@ -3285,8 +3277,6 @@ F5A34D0C25DF2F7700C9654B /* Noticons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Noticons.ttf; sourceTree = ""; }; F5C00EAD242179780047846F /* WeekdaysHeaderViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeekdaysHeaderViewTests.swift; sourceTree = ""; }; F5D0A65123CCD3B600B20D27 /* PreviewWebKitViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewWebKitViewControllerTests.swift; sourceTree = ""; }; - F75F3A68DCE524B4BAFCE76E /* Pods-WordPressDraftActionExtension.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressDraftActionExtension.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressDraftActionExtension/Pods-WordPressDraftActionExtension.release-alpha.xcconfig"; sourceTree = ""; }; - F85B762A18D018C22DF2A40D /* Pods-JetpackShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackShareExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackShareExtension/Pods-JetpackShareExtension.debug.xcconfig"; sourceTree = ""; }; F93735F722D53C3B00A3C312 /* LoggingURLRedactorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggingURLRedactorTests.swift; sourceTree = ""; }; F9463A7221C05EE90081F11E /* ScreenshotCredentials.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScreenshotCredentials.swift; sourceTree = ""; }; FA25FA332609AAAA0005E08F /* AppConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConfiguration.swift; sourceTree = ""; }; @@ -3749,6 +3739,7 @@ buildActionMask = 2147483647; files = ( F111B88D2658103C00057942 /* Combine.framework in Frameworks */, + 3F60D39A2D2C4BA4008ACD86 /* hermes.xcframework in Frameworks */, 7E21C761202BBC8E00837CF5 /* iAd.framework in Frameworks */, 8298F3921EEF3BA7008EB7F0 /* StoreKit.framework in Frameworks */, 93F2E5441E9E5A570050D489 /* CoreSpotlight.framework in Frameworks */, @@ -3756,6 +3747,7 @@ 0C6AC6122C364A2800BF7600 /* XcodeTarget_App in Frameworks */, 93F2E53E1E9E5A010050D489 /* CoreText.framework in Frameworks */, E185474E1DED8D8800D875D7 /* UserNotifications.framework in Frameworks */, + 3F60D39C2D2C4BA4008ACD86 /* yoga.xcframework in Frameworks */, FF75933B1BE2423800814D3B /* Photos.framework in Frameworks */, 93E5285619A77BAC003A1A9C /* NotificationCenter.framework in Frameworks */, 93A3F7DE1843F6F00082FEEA /* CoreTelephony.framework in Frameworks */, @@ -3766,8 +3758,11 @@ 24E55D4F2CC9A5CD008D071D /* ImagePlayground.framework in Frameworks */, E10B3654158F2D4500419A93 /* UIKit.framework in Frameworks */, E10B3652158F2D3F00419A93 /* QuartzCore.framework in Frameworks */, + 3F60D3942D2C4BA4008ACD86 /* React.xcframework in Frameworks */, + 3F60D3982D2C4BA4008ACD86 /* RNTAztecView.xcframework in Frameworks */, E1A386CB14DB063800954CF8 /* MediaPlayer.framework in Frameworks */, E1A386CA14DB05F700954CF8 /* CoreMedia.framework in Frameworks */, + 3F60D3962D2C4BA4008ACD86 /* Gutenberg.xcframework in Frameworks */, E1A386C814DB05C300954CF8 /* AVFoundation.framework in Frameworks */, 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, 296890780FE971DC00770264 /* Security.framework in Frameworks */, @@ -3780,7 +3775,6 @@ B5AA54D51A8E7510003BDD12 /* WebKit.framework in Frameworks */, 93F2E5401E9E5A180050D489 /* libsqlite3.tbd in Frameworks */, FF4DEAD8244B56E300ACA032 /* CoreServices.framework in Frameworks */, - A1C54EBE8C34FFD5015F8FC9 /* Pods_Apps_WordPress.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3822,7 +3816,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A2C95CCF203760D9372C5857 /* Pods_WordPressDraftActionExtension.framework in Frameworks */, 0C6AC6162C364A3B00BF7600 /* XcodeTarget_DraftActionExtension in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3831,7 +3824,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4BB2296498BE66D515E3D610 /* Pods_JetpackShareExtension.framework in Frameworks */, 0C6AC61E2C364A6F00BF7600 /* XcodeTarget_ShareExtension in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3840,7 +3832,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 223EA61E212A7C26A456C32C /* Pods_JetpackDraftActionExtension.framework in Frameworks */, 0C6AC6202C364A7500BF7600 /* XcodeTarget_DraftActionExtension in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3864,7 +3855,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D0E2AA7C4D4CB1679173958E /* Pods_WordPressShareExtension.framework in Frameworks */, 0C6AC6142C364A3100BF7600 /* XcodeTarget_ShareExtension in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3874,7 +3864,6 @@ buildActionMask = 2147483647; files = ( 0C235BD22C3862D400D0E163 /* XcodeTarget_WordPressTests in Frameworks */, - E8DEE110E4BC3FA1974AB1BB /* Pods_WordPressTest.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3891,11 +3880,13 @@ buildActionMask = 2147483647; files = ( FABB26202602FC2C00C8785C /* iAd.framework in Frameworks */, + 3F608F812D2D1A9E008ACD86 /* hermes.xcframework in Frameworks */, FABB26212602FC2C00C8785C /* StoreKit.framework in Frameworks */, FABB26222602FC2C00C8785C /* CoreSpotlight.framework in Frameworks */, FABB26232602FC2C00C8785C /* QuickLook.framework in Frameworks */, FABB26242602FC2C00C8785C /* CoreText.framework in Frameworks */, FABB26252602FC2C00C8785C /* UserNotifications.framework in Frameworks */, + 3F608F832D2D1A9E008ACD86 /* React.xcframework in Frameworks */, FABB26262602FC2C00C8785C /* Photos.framework in Frameworks */, FABB26272602FC2C00C8785C /* NotificationCenter.framework in Frameworks */, FABB26282602FC2C00C8785C /* CoreTelephony.framework in Frameworks */, @@ -3905,10 +3896,13 @@ FABB262C2602FC2C00C8785C /* UIKit.framework in Frameworks */, FABB262D2602FC2C00C8785C /* QuartzCore.framework in Frameworks */, FABB262E2602FC2C00C8785C /* MediaPlayer.framework in Frameworks */, + 3F608F7F2D2D1A9E008ACD86 /* Gutenberg.xcframework in Frameworks */, FABB262F2602FC2C00C8785C /* CoreMedia.framework in Frameworks */, + 3F608F852D2D1A9E008ACD86 /* RNTAztecView.xcframework in Frameworks */, FABB26302602FC2C00C8785C /* AVFoundation.framework in Frameworks */, FABB26312602FC2C00C8785C /* Foundation.framework in Frameworks */, 4AD9555A2C21716A00D0EEFA /* WordPressAuthenticator.framework in Frameworks */, + 3F608F872D2D1A9E008ACD86 /* yoga.xcframework in Frameworks */, FABB26322602FC2C00C8785C /* Security.framework in Frameworks */, FABB26332602FC2C00C8785C /* MapKit.framework in Frameworks */, FABB26342602FC2C00C8785C /* CoreLocation.framework in Frameworks */, @@ -3921,7 +3915,6 @@ FABB263B2602FC2C00C8785C /* libsqlite3.tbd in Frameworks */, 24E55D4E2CC9A5C8008D071D /* ImagePlayground.framework in Frameworks */, FABB263F2602FC2C00C8785C /* CoreServices.framework in Frameworks */, - 9C86CF3E1EAC13181A593D00 /* Pods_Apps_Jetpack.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4428,7 +4421,6 @@ 93FA0F0218E451A80007903B /* README.md */, E16273E21B2AD89A00088AF7 /* MIGRATIONS.md */, FF37F90822385C9F00AFA3DB /* RELEASE-NOTES.txt */, - B565D41C3DB27630CD503F9A /* Pods */, ); name = CustomTemplate; sourceTree = ""; @@ -4475,6 +4467,11 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( + 3F60D3902D2C4BA3008ACD86 /* Gutenberg.xcframework */, + 3F60D3922D2C4BA3008ACD86 /* hermes.xcframework */, + 3F60D38F2D2C4BA3008ACD86 /* React.xcframework */, + 3F60D3912D2C4BA3008ACD86 /* RNTAztecView.xcframework */, + 3F60D3932D2C4BA4008ACD86 /* yoga.xcframework */, 24E55D4D2CC9A5C8008D071D /* ImagePlayground.framework */, 0C43FF802C3601770084B698 /* UIKit.framework */, 3FA640652670CEFE0064401E /* XCTest.framework */, @@ -4518,19 +4515,10 @@ 93F2E5521E9E5CF00050D489 /* VideoToolbox.framework */, B5AA54D41A8E7510003BDD12 /* WebKit.framework */, 93F2E53F1E9E5A180050D489 /* libsqlite3.tbd */, - B7556D1D8CFA5CEAEAC481B9 /* Pods.framework */, - B921F5DD9A1F257C792EC225 /* Pods_WordPressTest.framework */, 733F36052126197800988727 /* UserNotificationsUI.framework */, - 8DCE7542239FBC709B90EA85 /* Pods_WordPressUITests.framework */, 3F526C4D2538CF2A0069706C /* WidgetKit.framework */, 3F526C4F2538CF2A0069706C /* SwiftUI.framework */, F1F163C825658B4D003DC13B /* IntentsUI.framework */, - 57E15BC2269B6B7419464B6F /* Pods_Apps_Jetpack.framework */, - 1E826CD5B4B116AF78FF391C /* Pods_Apps_WordPress.framework */, - 23052F0F1F9B2503E33D0A26 /* Pods_JetpackShareExtension.framework */, - 213A62FF811EBDB969FA7669 /* Pods_WordPressShareExtension.framework */, - 430F7B409FE22699ADB1A724 /* Pods_JetpackDraftActionExtension.framework */, - 92B40A77F0765C1E93B11727 /* Pods_WordPressDraftActionExtension.framework */, ); name = Frameworks; sourceTree = ""; @@ -5028,14 +5016,6 @@ path = NUX; sourceTree = ""; }; - 4AD954382C2145CB00D0EEFA /* Private */ = { - isa = PBXGroup; - children = ( - 4AD954372C2145CB00D0EEFA /* WPAuthenticator-Swift.h */, - ); - path = Private; - sourceTree = ""; - }; 4AD954422C2145CB00D0EEFA /* Resources */ = { isa = PBXGroup; children = ( @@ -5255,7 +5235,6 @@ 4AD954152C2145CB00D0EEFA /* Model */, 4AD9541D2C2145CB00D0EEFA /* Navigation */, 4AD954362C2145CB00D0EEFA /* NUX */, - 4AD954382C2145CB00D0EEFA /* Private */, 4AD954422C2145CB00D0EEFA /* Resources */, 4AD954502C2145CB00D0EEFA /* Services */, 4AD954642C2145CB00D0EEFA /* Signin */, @@ -6217,41 +6196,6 @@ name = Tools; sourceTree = ""; }; - B565D41C3DB27630CD503F9A /* Pods */ = { - isa = PBXGroup; - children = ( - 75305C06D345590B757E3890 /* Pods-Apps-WordPress.debug.xcconfig */, - 51A5F017948878F7E26979A0 /* Pods-Apps-WordPress.release.xcconfig */, - BBA98A42A5503D734AC9C936 /* Pods-Apps-WordPress.release-internal.xcconfig */, - F373612EEEEF10E500093FF3 /* Pods-Apps-WordPress.release-alpha.xcconfig */, - 084FF460C7742309671B3A86 /* Pods-WordPressTest.debug.xcconfig */, - EF379F0A70B6AC45330EE287 /* Pods-WordPressTest.release.xcconfig */, - C9264D275F6288F66C33D2CE /* Pods-WordPressTest.release-internal.xcconfig */, - 131D0EE49695795ECEDAA446 /* Pods-WordPressTest.release-alpha.xcconfig */, - 152F25D5C232985E30F56CAC /* Pods-Apps-Jetpack.debug.xcconfig */, - 011A2815DB0DE7E3973CBC0E /* Pods-Apps-Jetpack.release.xcconfig */, - 67832AB9D81652460A80BE66 /* Pods-Apps-Jetpack.release-internal.xcconfig */, - 150B6590614A28DF9AD25491 /* Pods-Apps-Jetpack.release-alpha.xcconfig */, - 09F367D2BE684EDE2E4A40E3 /* Pods-WordPressDraftActionExtension.debug.xcconfig */, - 8DE205D2AC15F16289E7D21A /* Pods-WordPressDraftActionExtension.release.xcconfig */, - CDA9AED50FDA27959A5CD1B2 /* Pods-WordPressDraftActionExtension.release-internal.xcconfig */, - CB1DAFB7DE085F2FF0314622 /* Pods-WordPressShareExtension.debug.xcconfig */, - 32387A1D541851E82ED957CE /* Pods-WordPressShareExtension.release.xcconfig */, - C82B4C5ECF11C9FEE39CD9A0 /* Pods-WordPressShareExtension.release-internal.xcconfig */, - 1BC96E982E9B1A6DD86AF491 /* Pods-WordPressShareExtension.release-alpha.xcconfig */, - F85B762A18D018C22DF2A40D /* Pods-JetpackShareExtension.debug.xcconfig */, - 7EC2116478565023EDB57703 /* Pods-JetpackShareExtension.release.xcconfig */, - 293E283D7339E7B6D13F6E09 /* Pods-JetpackShareExtension.release-internal.xcconfig */, - C7AEA9D1F1AC3F501B6DE0C8 /* Pods-JetpackShareExtension.release-alpha.xcconfig */, - 9149D34BF5182F360C84EDB9 /* Pods-JetpackDraftActionExtension.debug.xcconfig */, - CE5249687F020581B14F4172 /* Pods-JetpackDraftActionExtension.release.xcconfig */, - 5E48AA7F709A5B0F2318A7E3 /* Pods-JetpackDraftActionExtension.release-internal.xcconfig */, - C5E82422F47D9BF7E682262B /* Pods-JetpackDraftActionExtension.release-alpha.xcconfig */, - F75F3A68DCE524B4BAFCE76E /* Pods-WordPressDraftActionExtension.release-alpha.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; B58CE5DD1DC1284C004AA81D /* Notifications */ = { isa = PBXGroup; children = ( @@ -7765,7 +7709,6 @@ isa = PBXNativeTarget; buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "WordPress" */; buildPhases = ( - E00F6488DE2D86BDC84FBB0B /* [CP] Check Pods Manifest.lock */, 09607CE7281C9CA6002D2E5A /* [Lint] Check AppLocalizedString usage */, 825F0EBF1F7EBF7C00321528 /* App Icons: Add Version For Internal Releases */, 24E55D502CCC143F008D071D /* Build Acknowledgements Bundle */, @@ -7774,7 +7717,6 @@ 1D60588E0D05DD3D006BFB54 /* Sources */, 1D60588F0D05DD3D006BFB54 /* Frameworks */, 93E5284E19A7741A003A1A9C /* Embed Foundation Extensions */, - 37399571B0D91BBEAE911024 /* [CP] Embed Pods Frameworks */, E1C5456F219F10E000896227 /* Copy Gutenberg JS */, 4AD953C92C21451800D0EEFA /* Embed Frameworks */, ); @@ -7886,7 +7828,6 @@ isa = PBXNativeTarget; buildConfigurationList = 74576681202B558C00F42E40 /* Build configuration list for PBXNativeTarget "WordPressDraftActionExtension" */; buildPhases = ( - 74CC431A202B5C73000DAE1A /* [CP] Check Pods Manifest.lock */, 7457666E202B558C00F42E40 /* Sources */, 7457666F202B558C00F42E40 /* Frameworks */, 74576670202B558C00F42E40 /* Resources */, @@ -7908,7 +7849,6 @@ isa = PBXNativeTarget; buildConfigurationList = 8096211E28E540D700940A5D /* Build configuration list for PBXNativeTarget "JetpackShareExtension" */; buildPhases = ( - 72BB9EE3CC91D92F3735F4F3 /* [CP] Check Pods Manifest.lock */, 809620D128E540D700940A5D /* Sources */, 8096211428E540D700940A5D /* Frameworks */, 8096211628E540D700940A5D /* Resources */, @@ -7930,7 +7870,6 @@ isa = PBXNativeTarget; buildConfigurationList = 8096218028E55C9400940A5D /* Build configuration list for PBXNativeTarget "JetpackDraftActionExtension" */; buildPhases = ( - 36FB55DCF44141E140E108F8 /* [CP] Check Pods Manifest.lock */, 8096213228E55C9400940A5D /* Sources */, 8096217528E55C9400940A5D /* Frameworks */, 8096217728E55C9400940A5D /* Resources */, @@ -7991,7 +7930,6 @@ isa = PBXNativeTarget; buildConfigurationList = 932225B71C7CE50400443B02 /* Build configuration list for PBXNativeTarget "WordPressShareExtension" */; buildPhases = ( - 4F4D5C2BB6478A3E90ADC3C5 /* [CP] Check Pods Manifest.lock */, 932225A31C7CE50300443B02 /* Sources */, 932225A41C7CE50300443B02 /* Frameworks */, 932225A51C7CE50300443B02 /* Resources */, @@ -8013,11 +7951,9 @@ isa = PBXNativeTarget; buildConfigurationList = E16AB93D14D978240047A2E5 /* Build configuration list for PBXNativeTarget "WordPressTest" */; buildPhases = ( - E0E31D6E60F2BCE2D0A53E39 /* [CP] Check Pods Manifest.lock */, E16AB92514D978240047A2E5 /* Sources */, E16AB92614D978240047A2E5 /* Frameworks */, E16AB92714D978240047A2E5 /* Resources */, - EC72BCA3BF5A395143D8690B /* [CP] Embed Pods Frameworks */, 0C43FF922C3602BE0084B698 /* Embed Frameworks */, ); buildRules = ( @@ -8059,7 +7995,6 @@ isa = PBXNativeTarget; buildConfigurationList = FABB264D2602FC2C00C8785C /* Build configuration list for PBXNativeTarget "Jetpack" */; buildPhases = ( - FABB1FA72602FC2C00C8785C /* [CP] Check Pods Manifest.lock */, 09607CE8281C9D0F002D2E5A /* [Lint] Check AppLocalizedString usage */, 3F32E4AE270EAF5100A33D51 /* Generate Credentials */, FABB1FA92602FC2C00C8785C /* App Icons: Add Version For Internal Releases */, @@ -8069,7 +8004,6 @@ FABB20C22602FC2C00C8785C /* Sources */, FABB261F2602FC2C00C8785C /* Frameworks */, FABB26402602FC2C00C8785C /* Embed Foundation Extensions */, - FABB264A2602FC2C00C8785C /* [CP] Embed Pods Frameworks */, FABB264C2602FC2C00C8785C /* Copy Gutenberg JS */, 4AD9555E2C21716A00D0EEFA /* Embed Frameworks */, ); @@ -8993,45 +8927,6 @@ shellPath = /bin/bash; shellScript = "#!/bin/bash\n\nbash ../Scripts/BuildPhases/GenerateAcknowledgementsBundle.sh\n"; }; - 36FB55DCF44141E140E108F8 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-JetpackDraftActionExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 37399571B0D91BBEAE911024 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 3F32E4AE270EAF5100A33D51 /* Generate Credentials */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -9072,64 +8967,6 @@ shellScript = "$SRCROOT/../Scripts/BuildPhases/ConfigureSimulatorForUITesting.sh\n"; showEnvVarsInLog = 0; }; - 4F4D5C2BB6478A3E90ADC3C5 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressShareExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 72BB9EE3CC91D92F3735F4F3 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-JetpackShareExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 74CC431A202B5C73000DAE1A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressDraftActionExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 825F0EBF1F7EBF7C00321528 /* App Icons: Add Version For Internal Releases */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -9158,42 +8995,6 @@ shellScript = "# sh ../run-oclint.sh \nsh ../Scripts/run-oclint.sh"; showEnvVarsInLog = 0; }; - E00F6488DE2D86BDC84FBB0B /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Apps-WordPress-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - E0E31D6E60F2BCE2D0A53E39 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressTest-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; E1C5456F219F10E000896227 /* Copy Gutenberg JS */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -9213,23 +9014,6 @@ shellPath = /bin/sh; shellScript = "\"$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.sh\"\n"; }; - EC72BCA3BF5A395143D8690B /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-WordPressTest/Pods-WordPressTest-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-WordPressTest/Pods-WordPressTest-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WordPressTest/Pods-WordPressTest-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; F9C5CF0222CD5DB0007CEF56 /* Copy Alternate Internal Icons (if needed) */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -9248,24 +9032,6 @@ shellPath = /bin/sh; shellScript = "# Overwrite the icons in the bundle with the updated internal icons\nif [ \"${CONFIGURATION}\" != \"Release-Internal\" ]; then\nexit 0;\nfi\n\ncp -R ${PROJECT_DIR}/Resources/Icons-Internal/*.png \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\n"; }; - FABB1FA72602FC2C00C8785C /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Apps-Jetpack-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; FABB1FA92602FC2C00C8785C /* App Icons: Add Version For Internal Releases */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -9298,23 +9064,6 @@ shellPath = /bin/sh; shellScript = "# Overwrite the icons in the bundle with the updated internal icons\nif [ \"${CONFIGURATION}\" != \"Release-Internal\" ]; then\nexit 0;\nfi\n\ncp -R ${PROJECT_DIR}/Resources/Icons-Internal/*.png \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\"\n"; }; - FABB264A2602FC2C00C8785C /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; FABB264C2602FC2C00C8785C /* Copy Gutenberg JS */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -10759,7 +10508,6 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)"; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "JetpackStatsWidgets/Supporting Files/JetpackStatsWidgets.entitlements"; CODE_SIGN_STYLE = Manual; @@ -10810,7 +10558,6 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)"; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "JetpackStatsWidgets/Supporting Files/JetpackStatsWidgets.entitlements"; CODE_SIGN_IDENTITY = "Apple Distribution: Automattic, Inc. (PZYM8XX95Q)"; @@ -10821,7 +10568,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -10861,7 +10607,6 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)"; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "JetpackStatsWidgets/Supporting Files/JetpackStatsWidgetsRelease-Alpha.entitlements"; CODE_SIGN_IDENTITY = "iPhone Distribution: Automattic, Inc."; @@ -10872,7 +10617,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", ALPHA_BUILD, "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); @@ -10911,7 +10655,6 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)"; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "JetpackIntents/Supporting Files/JetpackIntents.entitlements"; CODE_SIGN_STYLE = Manual; @@ -10960,7 +10703,6 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)"; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "JetpackIntents/Supporting Files/JetpackIntents.entitlements"; CODE_SIGN_IDENTITY = "Apple Distribution: Automattic, Inc. (PZYM8XX95Q)"; @@ -10971,7 +10713,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -11009,7 +10750,6 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)"; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "JetpackIntents/Supporting Files/JetpackIntentsRelease-Alpha.entitlements"; CODE_SIGN_IDENTITY = "iPhone Distribution: Automattic, Inc."; @@ -11020,7 +10760,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", ALPHA_BUILD, "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); @@ -11075,7 +10814,6 @@ }; 1D6058940D05DD3E006BFB54 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 75305C06D345590B757E3890 /* Pods-Apps-WordPress.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; APPLICATION_EXTENSION_API_ONLY = NO; @@ -11092,7 +10830,6 @@ GCC_PREFIX_HEADER = WordPress_Prefix.pch; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "NSLOGGER_BUILD_USERNAME=\"${USER}\"", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); @@ -11144,7 +10881,6 @@ }; 1D6058950D05DD3E006BFB54 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 51A5F017948878F7E26979A0 /* Pods-Apps-WordPress.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; APPLICATION_EXTENSION_API_ONLY = NO; @@ -11521,7 +11257,6 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", "DEBUG=1", ); @@ -11569,7 +11304,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -11615,7 +11349,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -11660,7 +11393,6 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", "DEBUG=1", ); @@ -11708,7 +11440,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -11754,7 +11485,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -11780,7 +11510,6 @@ }; 7457667D202B558C00F42E40 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 09F367D2BE684EDE2E4A40E3 /* Pods-WordPressDraftActionExtension.debug.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "extension-icon"; @@ -11833,7 +11562,6 @@ }; 7457667E202B558C00F42E40 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8DE205D2AC15F16289E7D21A /* Pods-WordPressDraftActionExtension.release.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "extension-icon"; @@ -11885,7 +11613,6 @@ }; 74576680202B558C00F42E40 /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F75F3A68DCE524B4BAFCE76E /* Pods-WordPressDraftActionExtension.release-alpha.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "extension-icon"; @@ -11938,7 +11665,6 @@ }; 8096211F28E540D700940A5D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F85B762A18D018C22DF2A40D /* Pods-JetpackShareExtension.debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; @@ -11993,7 +11719,7 @@ "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = YES; - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D DEBUG"; + OTHER_SWIFT_FLAGS = "$(inherited) -D DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = com.automattic.jetpack.JetpackShare; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "Jetpack iOS Development Share Extension"; @@ -12008,7 +11734,6 @@ }; 8096212028E540D700940A5D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7EC2116478565023EDB57703 /* Pods-JetpackShareExtension.release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; @@ -12075,7 +11800,6 @@ }; 8096212228E540D700940A5D /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C7AEA9D1F1AC3F501B6DE0C8 /* Pods-JetpackShareExtension.release-alpha.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; @@ -12130,7 +11854,7 @@ "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = NO; - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D ALPHA_BUILD -D INTERNAL_BUILD"; + OTHER_SWIFT_FLAGS = "$(inherited) -D ALPHA_BUILD -D INTERNAL_BUILD"; PRODUCT_BUNDLE_IDENTIFIER = com.jetpack.alpha.JetpackShare; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match InHouse com.jetpack.alpha.JetpackShare"; @@ -12144,7 +11868,6 @@ }; 8096218128E55C9400940A5D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9149D34BF5182F360C84EDB9 /* Pods-JetpackDraftActionExtension.debug.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "jp-extension-icon"; @@ -12198,7 +11921,6 @@ }; 8096218228E55C9400940A5D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CE5249687F020581B14F4172 /* Pods-JetpackDraftActionExtension.release.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "jp-extension-icon"; @@ -12251,7 +11973,6 @@ }; 8096218428E55C9400940A5D /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C5E82422F47D9BF7E682262B /* Pods-JetpackDraftActionExtension.release-alpha.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "jp-extension-icon"; @@ -12325,7 +12046,6 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", "DEBUG=1", ); @@ -12374,7 +12094,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -12421,7 +12140,6 @@ GCC_C_LANGUAGE_STANDARD = gnu11; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -12603,9 +12321,9 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_STRICT_PROTOTYPES = NO; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -12642,7 +12360,6 @@ }; 8546B4441BEAD39700193C07 /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F373612EEEEF10E500093FF3 /* Pods-Apps-WordPress.release-alpha.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; APPLICATION_EXTENSION_API_ONLY = NO; @@ -12708,7 +12425,6 @@ }; 8546B4451BEAD39700193C07 /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 131D0EE49695795ECEDAA446 /* Pods-WordPressTest.release-alpha.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/WordPress.app/WordPress"; @@ -12751,7 +12467,6 @@ }; 932225B21C7CE50400443B02 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CB1DAFB7DE085F2FF0314622 /* Pods-WordPressShareExtension.debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; @@ -12805,7 +12520,7 @@ "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = YES; - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D DEBUG"; + OTHER_SWIFT_FLAGS = "$(inherited) -D DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.WordPressShare; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "WordPress Share Extension Development"; @@ -12820,7 +12535,6 @@ }; 932225B31C7CE50400443B02 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 32387A1D541851E82ED957CE /* Pods-WordPressShareExtension.release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; @@ -12886,7 +12600,6 @@ }; 932225B51C7CE50400443B02 /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1BC96E982E9B1A6DD86AF491 /* Pods-WordPressShareExtension.release-alpha.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; @@ -12940,7 +12653,7 @@ "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = NO; - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D ALPHA_BUILD -D INTERNAL_BUILD"; + OTHER_SWIFT_FLAGS = "$(inherited) -D ALPHA_BUILD -D INTERNAL_BUILD"; PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.alpha.WordPressShare; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match InHouse org.wordpress.alpha.WordPressShare"; @@ -12992,9 +12705,9 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_STRICT_PROTOTYPES = NO; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -13050,9 +12763,9 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_STRICT_PROTOTYPES = NO; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -13089,7 +12802,6 @@ }; E16AB93914D978240047A2E5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 084FF460C7742309671B3A86 /* Pods-WordPressTest.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/WordPress.app/WordPress"; @@ -13130,7 +12842,6 @@ }; E16AB93A14D978240047A2E5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF379F0A70B6AC45330EE287 /* Pods-WordPressTest.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/WordPress.app/WordPress"; @@ -13318,7 +13029,6 @@ GCC_PREFIX_HEADER = WordPress_Prefix.pch; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", - "COCOAPODS=1", "NSLOGGER_BUILD_USERNAME=\"${USER}\"", "WPCOM_SCHEME=\\@\\\"${WPCOM_SCHEME}\\\"", ); diff --git a/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticator.swift b/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticator.swift index 966dd50f8526..529378a82e74 100644 --- a/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticator.swift +++ b/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticator.swift @@ -526,24 +526,8 @@ import WordPressKit UIApplication.shared.open(forgotPasswordURL) } - /// Returns the WordPressAuthenticator Bundle - /// If installed via CocoaPods, this will be WordPressAuthenticator.bundle, - /// otherwise it will be the framework bundle. - /// public class var bundle: Bundle { - let defaultBundle = Bundle(for: WordPressAuthenticator.self) - - #if COCOAPODS - // If installed with CocoaPods, resources will be in WordPressAuthenticator.bundle - if let bundleURL = defaultBundle.resourceURL, - // TODO: Update bundle lookup - let resourceBundle = Bundle(url: bundleURL.appendingPathComponent("WordPressAuthenticatorResources.bundle")) { - return resourceBundle - } - #endif - - // Otherwise, the default bundle is used for resources - return defaultBundle + Bundle(for: WordPressAuthenticator.self) } } diff --git a/WordPressAuthenticator/Sources/Private/WPAuthenticator-Swift.h b/WordPressAuthenticator/Sources/Private/WPAuthenticator-Swift.h deleted file mode 100644 index a6e267a2aa72..000000000000 --- a/WordPressAuthenticator/Sources/Private/WPAuthenticator-Swift.h +++ /dev/null @@ -1,8 +0,0 @@ -// Import this header instead of -// This allows the pod to be built as a static or dynamic framework -// See /~https://github.com/CocoaPods/CocoaPods/issues/7594 -#if __has_include("WordPressAuthenticator-Swift.h") - #import "WordPressAuthenticator-Swift.h" -#else - #import -#endif diff --git a/WordPressAuthenticator/Sources/Services/LoginFacade.m b/WordPressAuthenticator/Sources/Services/LoginFacade.m index 014c480c665e..333865b345d6 100644 --- a/WordPressAuthenticator/Sources/Services/LoginFacade.m +++ b/WordPressAuthenticator/Sources/Services/LoginFacade.m @@ -1,6 +1,6 @@ #import "LoginFacade.h" #import "WordPressXMLRPCAPIFacade.h" -#import "WPAuthenticator-Swift.h" +#import @import NSURL_IDN; @import WordPressKit; diff --git a/WordPressAuthenticator/Sources/Services/WordPressXMLRPCAPIFacade.m b/WordPressAuthenticator/Sources/Services/WordPressXMLRPCAPIFacade.m index cd36a5457c7b..fb32c4f502a2 100644 --- a/WordPressAuthenticator/Sources/Services/WordPressXMLRPCAPIFacade.m +++ b/WordPressAuthenticator/Sources/Services/WordPressXMLRPCAPIFacade.m @@ -1,5 +1,5 @@ #import "WordPressXMLRPCAPIFacade.h" -#import "WPAuthenticator-Swift.h" +#import @import WordPressKit; diff --git a/config/Jetpack.alpha.xcconfig b/config/Jetpack.alpha.xcconfig index e0a1e6d3b000..26e3946e4953 100644 --- a/config/Jetpack.alpha.xcconfig +++ b/config/Jetpack.alpha.xcconfig @@ -1,4 +1,3 @@ -#include "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release-alpha.xcconfig" #include "Common.enterprise.xcconfig" BUILD_SCHEME=Jetpack diff --git a/config/Jetpack.debug.xcconfig b/config/Jetpack.debug.xcconfig index 72919bb1e71d..6992cb79c495 100644 --- a/config/Jetpack.debug.xcconfig +++ b/config/Jetpack.debug.xcconfig @@ -1,4 +1,3 @@ -#include "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.debug.xcconfig" #include "Common.debug.xcconfig" BUILD_SCHEME=Jetpack diff --git a/config/Jetpack.release.xcconfig b/config/Jetpack.release.xcconfig index f36c18d80122..b00dfd5b8fa7 100644 --- a/config/Jetpack.release.xcconfig +++ b/config/Jetpack.release.xcconfig @@ -1,3 +1 @@ -#include "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release.xcconfig" - BUILD_SCHEME=Jetpack diff --git a/fastlane/Fastfile b/fastlane/Fastfile index dca5fe8a87e8..b652009de547 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -77,20 +77,6 @@ def get_required_env(key) ENV.fetch(key, nil) end -def gutenberg_config! - require 'yaml' - - gutenberg_config_path = File.join(PROJECT_ROOT_FOLDER, 'Gutenberg', 'config.yml') - - UI.user_error!("Could not find config YAML at path #{gutenberg_config_path}") unless File.exist?(gutenberg_config_path) - - begin - YAML.safe_load_file(gutenberg_config_path, symbolize_names: true) - rescue StandardError => e - UI.user_error!("Could not parse config YAML. Failed with: #{e.message}") - end -end - ######################################################################## # Version Methods ######################################################################## diff --git a/fastlane/lanes/build.rb b/fastlane/lanes/build.rb index 50781d458de8..06f070e3b14b 100644 --- a/fastlane/lanes/build.rb +++ b/fastlane/lanes/build.rb @@ -124,30 +124,6 @@ trainer(path: lane_context[SharedValues::SCAN_GENERATED_XCRESULT_PATH], fail_build: true) end - # Run tests of given pod in the Pods project - # - # @option [String] name Shared scheme in the Pods.xcodeproj - # - # @called_by CI - # - desc 'Run tests of given pod in the Pods project' - lane :test_pod do |options| - run_tests( - project: 'Pods/Pods.xcodeproj', - scheme: options[:name], - device: options[:device], - deployment_target_version: options[:ios_version], - ensure_devices_found: true, - output_directory: File.join(PROJECT_ROOT_FOLDER, 'build', 'results'), - reset_simulator: true, - result_bundle: true, - output_types: '', - fail_build: false - ) - - trainer(path: lane_context[SharedValues::SCAN_GENERATED_XCRESULT_PATH], fail_build: true) - end - # Builds the WordPress app and uploads it to TestFlight, for beta-testing or final release # # @option [Boolean] skip_confirm (default: false) If true, avoids any interactive prompt @@ -514,7 +490,7 @@ def upload_build_to_app_center( end def upload_gutenberg_sourcemaps(sentry_project_slug:, release_version:, build_version:, app_identifier:) - gutenberg_bundle_source_map_folder = File.join(PROJECT_ROOT_FOLDER, 'Pods', 'Gutenberg', 'react-native-bundle-source-map') + gutenberg_bundle_source_map_folder = File.join(PROJECT_ROOT_FOLDER, 'WordPress', 'Frameworks', 'react-native-bundle-source-map') # To generate the full release version string to attach the source maps, we need to specify: # - App identifier diff --git a/fastlane/lanes/localization.rb b/fastlane/lanes/localization.rb index a87dfe1226b0..74d002bfc907 100644 --- a/fastlane/lanes/localization.rb +++ b/fastlane/lanes/localization.rb @@ -4,6 +4,9 @@ # Constants ################################################# +# See WordPress/Makefile +GUTENBERG_TAG = 'v1.121.0' + # URL of the GlotPress project containing the app's strings GLOTPRESS_APP_STRINGS_PROJECT_URL = 'https://translate.wordpress.org/projects/apps/ios/dev/' @@ -130,12 +133,9 @@ # @called_by complete_code_freeze # lane :generate_strings_file_for_glotpress do |skip_commit: false, derived_data_path: DERIVED_DATA_PATH, gutenberg_absolute_path: nil| - # Fetch fresh pods to read the latest localizations from them. - # In CI, we expect the pods to be already available and up to date. - cocoapods unless is_ci - - # For the same reason, fetch fresh packages. - # However, notice we currently need to do this in CI as well. + # Fetch fresh packages to read the latest localizations from them. + # + # Notice we currently need to do this in CI as well as locally. # That's because we haven't yet implemented a method to share the derived data folder explicitly between the CI SPM caching logic and this lane. # # See also: @@ -155,39 +155,21 @@ UI.message("Using Gutenberg from #{gutenberg_absolute_path} instead of cloning it...") generate_strings_file(gutenberg_path: gutenberg_absolute_path, derived_data_path: derived_data_path) else - # On top of fetching the latest Pods, we also need to fetch the source for the Gutenberg code. + # On top of fetching the latest dependencies, we also need to fetch the source for the Gutenberg code. # To get it, we need to manually clone the repo, since Gutenberg is distributed via XCFramework. # XCFrameworks are binary targets and cannot extract strings via genstrings from there. - config = gutenberg_config! - - ref_node = config[:ref] - UI.user_error!('Could not find Gutenberg ref to clone the repository in order to access its strings.') if ref_node.nil? - - ref = ref_node[:tag] || ref_node[:commit] - UI.user_error!('The ref to clone Gutenberg in order to access its strings has neither tag nor commit values.') if ref.nil? - - github_org = config[:github_org] - UI.user_error!('Could not find GitHub organization name to clone Gutenberg in order to access its strings.') if github_org.nil? - - repo_name = config[:repo_name] - UI.user_error!('Could not find GitHub repository name to clone Gutenberg in order to access its strings.') if repo_name.nil? # Create a temporary directory to clone Gutenberg into. Dir.mktmpdir do |tempdir| gutenberg_clone_name = 'Gutenberg-Strings-Clone' gutenberg_path = File.join(tempdir, gutenberg_clone_name) - repo_url = "/~https://github.com/#{github_org}/#{repo_name}" + repo_url = '/~https://github.com/wordpress-mobile/gutenberg-mobile' UI.message("Cloning Gutenberg from #{repo_url} into #{gutenberg_clone_name}. This might take a few minutes…") sh('git', 'clone', '--depth', '1', repo_url, gutenberg_path) Dir.chdir(gutenberg_path) do - if ref_node[:tag] - sh('git', 'fetch', 'origin', "refs/tags/#{ref}:refs/tags/#{ref}") - sh('git', 'checkout', "refs/tags/#{ref}") - else - sh('git', 'fetch', 'origin', ref) - sh('git', 'checkout', ref) - end + sh('git', 'fetch', 'origin', "refs/tags/#{GUTENBERG_TAG}:refs/tags/#{GUTENBERG_TAG}") + sh('git', 'checkout', "refs/tags/#{GUTENBERG_TAG}") end generate_strings_file(gutenberg_path: gutenberg_path, derived_data_path: derived_data_path) @@ -208,7 +190,6 @@ def generate_strings_file(gutenberg_path:, derived_data_path:) ios_generate_strings_file_from_code( paths: [ 'WordPress/', - 'Pods/WordPress*/', 'Modules/Sources/', 'WordPressAuthenticator/Sources/', gutenberg_path, diff --git a/fastlane/lanes/release.rb b/fastlane/lanes/release.rb index e1db30bf20a6..0322cc309b2d 100644 --- a/fastlane/lanes/release.rb +++ b/fastlane/lanes/release.rb @@ -21,9 +21,6 @@ # Checks if internal dependencies are on a stable version check_pods_references - # Make sure that Gutenberg is configured as expected for a successful code freeze - gutenberg_dep_check - release_branch_name = compute_release_branch_name(options: options, version: release_version_next) ensure_branch_does_not_exist!(release_branch_name) @@ -499,29 +496,6 @@ def trigger_buildkite_release_build(branch:, beta:) end end -# Checks that the Gutenberg pod is reference by a tag and not a commit -# -desc 'Verifies that Gutenberg is referenced by release version and not by commit' -lane :gutenberg_dep_check do - source = gutenberg_config![:ref] - - UI.user_error!('Gutenberg config does not contain expected key :ref') if source.nil? - - case [source[:tag], source[:commit]] - when [nil, nil] - UI.user_error!('Could not find any Gutenberg version reference.') - when [nil, commit = source[:commit]] - if UI.confirm("Gutenberg referenced by commit (#{commit}) instead than by tag. Do you want to continue anyway?") - UI.message("Gutenberg version: #{commit}") - else - UI.user_error!('Aborting...') - end - else - # If a tag is present, the commit value is ignored - UI.message("Gutenberg version: #{source[:tag]}") - end -end - lane :lint_localizations do |options| ios_lint_localizations( input_dir: 'WordPress/Resources', diff --git a/fastlane/lanes/screenshots.rb b/fastlane/lanes/screenshots.rb index 8eda07d2ee6c..1e95b9600c88 100644 --- a/fastlane/lanes/screenshots.rb +++ b/fastlane/lanes/screenshots.rb @@ -41,8 +41,6 @@ # desc 'Generate localised screenshots' lane :screenshots do |options| - cocoapods # pod install - FileUtils.rm_rf(DERIVED_DATA_PATH) unless options[:skip_clean] scheme = options[:scheme] || 'WordPressScreenshotGeneration'