diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml new file mode 100644 index 0000000..4ce119a --- /dev/null +++ b/.buildkite/pipeline.yml @@ -0,0 +1,64 @@ +# Nodes with values to reuse in the pipeline. +common_params: + plugins: &common_plugins + - &bash_cache automattic/bash-cache#2.0.0: ~ + # Common environment values to use with the `env` key. + env: &common_env + IMAGE_ID: xcode-13 + +# This is the default pipeline – it will build and test the app +steps: + ################# + # Build and Test + ################# + - label: "🔬 Build and Test" + key: "test" + command: | + # See https://github.com/Automattic/bash-cache-buildkite-plugin/issues/16 + gem install bundler:2.3.4 + + build_and_test_pod + env: *common_env + plugins: *common_plugins + + ################# + # Validate Podspec + ################# + - label: "🔬 Validate Podspec" + key: "validate" + command: | + # See https://github.com/Automattic/bash-cache-buildkite-plugin/issues/16 + gem install bundler:2.3.4 + + validate_podspec + env: *common_env + plugins: *common_plugins + + ################# + # Lint + ################# + - label: "🧹 Lint" + key: "lint" + command: | + # See https://github.com/Automattic/bash-cache-buildkite-plugin/issues/16 + gem install bundler:2.3.4 + + lint_pod + env: *common_env + plugins: *common_plugins + + ################# + # Publish the Podspec (if we're building a tag) + ################# + - label: "⬆️ Publish Podspec" + key: "publish" + command: .buildkite/publish-pod.sh + env: *common_env + plugins: *common_plugins + depends_on: + - "test" + - "validate" + - "lint" + if: build.tag != null + agents: + queue: "mac" diff --git a/.buildkite/publish-pod.sh b/.buildkite/publish-pod.sh new file mode 100644 index 0000000..de8dea8 --- /dev/null +++ b/.buildkite/publish-pod.sh @@ -0,0 +1,20 @@ +#!/bin/bash -eu + +PODSPEC_PATH="MediaEditor.podspec" +SPECS_REPO="git@github.com:wordpress-mobile/cocoapods-specs.git" +SLACK_WEBHOOK=$PODS_SLACK_WEBHOOK + +echo "--- :rubygems: Setting up Gems" +# See https://github.com/Automattic/bash-cache-buildkite-plugin/issues/16 +gem install bundler:2.3.4 + +install_gems + +echo "--- :cocoapods: Publishing Pod to CocoaPods CDN" +publish_pod $PODSPEC_PATH + +echo "--- :cocoapods: Publishing Pod to WP Specs Repo" +publish_private_pod $PODSPEC_PATH $SPECS_REPO "$SPEC_REPO_PUBLIC_DEPLOY_KEY" + +echo "--- :slack: Notifying Slack" +slack_notify_pod_published $PODSPEC_PATH $SLACK_WEBHOOK diff --git a/.bundle/config b/.bundle/config new file mode 100644 index 0000000..2369228 --- /dev/null +++ b/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_PATH: "vendor/bundle" diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 0ebc1d4..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: 2.1 - -orbs: - # Using 1.0 of our Orbs means it will use the latest 1.0.x version from https://github.com/wordpress-mobile/circleci-orbs - ios: wordpress-mobile/ios@1.0 - -workflows: - test_and_validate: - jobs: - - ios/test: - name: Test - xcode-version: "11.2.1" - project: MediaEditor.xcodeproj - scheme: Example - device: iPhone 11 - ios-version: "13.2.2" - bundle-install: true - carthage-update: true - - ios/validate-podspec: - name: Validate Podspec - xcode-version: "11.2.1" - podspec-path: MediaEditor.podspec - bundle-install: true - - ios/publish-podspec: - name: Publish to Trunk - xcode-version: "11.2.1" - podspec-path: MediaEditor.podspec - bundle-install: true - post-to-slack: true - filters: - tags: - only: /.*/ - branches: - ignore: /.*/ diff --git a/.gitignore b/.gitignore index daf21fa..0280022 100644 --- a/.gitignore +++ b/.gitignore @@ -87,7 +87,6 @@ build-iPhoneSimulator/ /rdoc/ ## Environment normalization: -/.bundle/ /vendor/bundle /lib/bundler/man/ @@ -169,7 +168,7 @@ Dependencies/ # screenshots whenever they are needed. # For more information about the recommended setup visit: # https://docs.fastlane.tools/best-practices/source-control/#source-control - +/fastlane/README.md # Code Injection # After new code Injection tools there's a generated folder /iOSInjectionProject diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 0000000..eadc207 --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,8 @@ +# Opt in to new cops by default +AllCops: + NewCops: enable + +# Allow the Podspec filename to match the project +Naming/FileName: + Exclude: + - 'MediaEditor.podspec' diff --git a/Cartfile b/Cartfile deleted file mode 100644 index cb856ff..0000000 --- a/Cartfile +++ /dev/null @@ -1 +0,0 @@ -github "TimOliver/TOCropViewController" diff --git a/Cartfile.private b/Cartfile.private deleted file mode 100644 index 897faf4..0000000 --- a/Cartfile.private +++ /dev/null @@ -1 +0,0 @@ -github "Quick/Nimble" diff --git a/Cartfile.resolved b/Cartfile.resolved deleted file mode 100644 index f8771ac..0000000 --- a/Cartfile.resolved +++ /dev/null @@ -1,2 +0,0 @@ -github "Quick/Nimble" "v8.0.7" -github "TimOliver/TOCropViewController" "2.5.3" diff --git a/Gemfile b/Gemfile index c1535c5..298568a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,7 @@ -source 'https://rubygems.org' do - gem 'cocoapods', '~> 1.8.0' - gem 'xcpretty' -end +# frozen_string_literal: true + +source 'https://rubygems.org' + +gem 'cocoapods', '~> 1.8.0' +gem 'fastlane', '~> 2.189' +gem 'rubocop', '~> 1.18' diff --git a/Gemfile.lock b/Gemfile.lock index 23ee70e..b885a1f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,10 +7,31 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) algoliasearch (1.27.1) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) + artifactory (3.0.15) + ast (2.4.2) atomos (0.1.3) + aws-eventstream (1.2.0) + aws-partitions (1.552.0) + aws-sdk-core (3.126.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.525.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1.0) + aws-sdk-kms (1.54.0) + aws-sdk-core (~> 3, >= 3.126.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.112.0) + aws-sdk-core (~> 3, >= 3.126.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.4) + aws-sigv4 (1.4.0) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) claide (1.0.3) cocoapods (1.8.4) activesupport (>= 4.0.2, < 5) @@ -47,26 +68,208 @@ GEM nap (>= 0.8, < 2.0) netrc (~> 0.11) cocoapods-try (1.1.0) + colored (1.2) colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) concurrent-ruby (1.1.5) + declarative (0.0.20) + digest-crc (0.6.4) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.7.6) + emoji_regex (3.2.3) escape (0.0.4) + excon (0.91.0) + faraday (1.9.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.3) + multipart-post (>= 1.2, < 3) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + fastimage (2.2.6) + fastlane (2.204.2) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (~> 2.0.0) + naturally (~> 2.2) + optparse (~> 0.1.1) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 2.0.0, < 3.0.0) + security (= 0.1.3) + simctl (~> 1.6.3) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (>= 1.4.5, < 2.0.0) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.3.0) + xcpretty-travis-formatter (>= 0.0.3) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) + google-apis-androidpublisher_v3 (0.16.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-core (0.4.2) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + webrick + google-apis-iamcredentials_v1 (0.10.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-playcustomapp_v1 (0.7.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-storage_v1 (0.11.0) + google-apis-core (>= 0.4, < 2.a) + google-cloud-core (1.6.0) + google-cloud-env (~> 1.0) + google-cloud-errors (~> 1.0) + google-cloud-env (1.5.0) + faraday (>= 0.17.3, < 2.0) + google-cloud-errors (1.2.0) + google-cloud-storage (1.36.0) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.1) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.1.0) + faraday (>= 0.17.3, < 2.0) + jwt (>= 1.4, < 3.0) + memoist (~> 0.16) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.4) + domain_name (~> 0.5) httpclient (2.8.3) i18n (0.9.5) concurrent-ruby (~> 1.0) + jmespath (1.5.0) json (2.3.0) + jwt (2.3.0) + memoist (0.16.2) + mini_magick (4.11.0) + mini_mime (1.1.2) minitest (5.14.0) molinillo (0.6.6) + multi_json (1.15.0) + multipart-post (2.0.0) nanaimo (0.2.6) nap (1.1.0) + naturally (2.2.1) netrc (0.11.0) + optparse (0.1.1) + os (1.1.4) + parallel (1.21.0) + parser (3.1.0.0) + ast (~> 2.4.1) + plist (3.6.0) + public_suffix (4.0.6) + rainbow (3.1.1) + rake (13.0.6) + regexp_parser (2.2.0) + representable (3.1.1) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.2.5) rouge (2.0.7) + rubocop (1.25.1) + parallel (~> 1.10) + parser (>= 3.1.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml + rubocop-ast (>= 1.15.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 1.4.0, < 3.0) + rubocop-ast (1.15.1) + parser (>= 3.0.1.1) ruby-macho (1.4.0) + ruby-progressbar (1.11.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + security (0.1.3) + signet (0.16.0) + addressable (~> 2.8) + faraday (>= 0.17.3, < 2.0) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.8) + CFPropertyList + naturally + terminal-notifier (2.0.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.1) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) tzinfo (1.2.6) thread_safe (~> 0.1) + uber (0.1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8) + unicode-display_width (1.8.0) + webrick (1.7.0) + word_wrap (1.0.0) xcodeproj (1.14.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) @@ -75,13 +278,16 @@ GEM nanaimo (~> 0.2.6) xcpretty (0.3.0) rouge (~> 2.0.7) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) PLATFORMS ruby DEPENDENCIES - cocoapods (~> 1.8.0)! - xcpretty! + cocoapods (~> 1.8.0) + fastlane (~> 2.189) + rubocop (~> 1.18) BUNDLED WITH - 1.17.2 + 2.2.33 diff --git a/MediaEditor.podspec b/MediaEditor.podspec index 465cb0c..393d7cb 100644 --- a/MediaEditor.podspec +++ b/MediaEditor.podspec @@ -1,21 +1,23 @@ +# frozen_string_literal: true + Pod::Spec.new do |s| s.name = 'MediaEditor' s.version = '1.2.1' s.summary = 'An extensible Media Editor for iOS.' - s.description = <<-DESC - An extensible Media Editor for iOS that allows editing single or multiple images. - DESC + s.description = <<~DESC + An extensible Media Editor for iOS that allows editing single or multiple images. + DESC s.homepage = 'https://github.com/wordpress-mobile/MediaEditor-iOS' - s.license = { :type => 'GPLv2', :file => 'LICENSE' } + s.license = { type: 'GPLv2', file: 'LICENSE' } s.author = { 'The WordPress Mobile Team' => 'mobile@wordpress.org' } - + s.ios.deployment_target = '11.0' s.swift_version = '5.0' - s.source = { :git => 'https://github.com/wordpress-mobile/MediaEditor-iOS.git', :tag => s.version.to_s } - s.module_name = "MediaEditor" + s.source = { git: 'https://github.com/wordpress-mobile/MediaEditor-iOS.git', tag: s.version.to_s } + s.module_name = 'MediaEditor' s.source_files = 'Sources/**/*.{h,m,swift}' s.resources = 'Sources/**/*.{storyboard}' s.resource_bundles = { diff --git a/MediaEditor.xcodeproj/project.pbxproj b/MediaEditor.xcodeproj/project.pbxproj index 7ce7401..c35c805 100644 --- a/MediaEditor.xcodeproj/project.pbxproj +++ b/MediaEditor.xcodeproj/project.pbxproj @@ -12,6 +12,8 @@ 178126E62460B25300253107 /* MediaEditorDrawingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 178126E52460B25300253107 /* MediaEditorDrawingTests.swift */; }; 178126E82461A2ED00253107 /* demo-drawing in Resources */ = {isa = PBXBuildFile; fileRef = 178126E72461A2DA00253107 /* demo-drawing */; }; 17DBA238245B1507006CD67F /* MediaEditorDrawing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17DBA237245B1507006CD67F /* MediaEditorDrawing.swift */; }; + 2465F73A27ACDC0700F507A0 /* CropViewController in Frameworks */ = {isa = PBXBuildFile; productRef = 2465F73927ACDC0700F507A0 /* CropViewController */; }; + 2477A32A27ACDD5F00ADA7F3 /* Nimble in Frameworks */ = {isa = PBXBuildFile; productRef = 2477A32927ACDD5F00ADA7F3 /* Nimble */; }; 8B05570523E1BF5900C10787 /* DeviceLibraryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B05570423E1BF5900C10787 /* DeviceLibraryViewController.swift */; }; 8B05570723E1C1D800C10787 /* ImageViewCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B05570623E1C1D800C10787 /* ImageViewCollectionCell.swift */; }; 8B05570923E1CF2E00C10787 /* PlainUIImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B05570823E1CF2E00C10787 /* PlainUIImageViewController.swift */; }; @@ -33,10 +35,6 @@ 8B5046AD23D7C9AD00068F66 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8B5046AC23D7C9AD00068F66 /* Assets.xcassets */; }; 8B5046B023D7C9AD00068F66 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8B5046AE23D7C9AD00068F66 /* LaunchScreen.storyboard */; }; 8B5046B623D7C9E300068F66 /* MediaEditor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B50469223D7C88200068F66 /* MediaEditor.framework */; }; - 8B5046B823D7CCBD00068F66 /* TOCropViewController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B5046B723D7CCBD00068F66 /* TOCropViewController.framework */; }; - 8B5046B923D7CCBD00068F66 /* TOCropViewController.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8B5046B723D7CCBD00068F66 /* TOCropViewController.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 8B5046BB23D7CCD000068F66 /* TOCropViewController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B5046B723D7CCBD00068F66 /* TOCropViewController.framework */; }; - 8B5046BC23D7CCD000068F66 /* TOCropViewController.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8B5046B723D7CCBD00068F66 /* TOCropViewController.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 8B5046D623D7CE1600068F66 /* UIImage+AsyncImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B5046C423D7CE1600068F66 /* UIImage+AsyncImage.swift */; }; 8B5046D723D7CE1600068F66 /* PHAsset+AsyncImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B5046C523D7CE1600068F66 /* PHAsset+AsyncImage.swift */; }; 8B5046D823D7CE1600068F66 /* MediaEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B5046C623D7CE1600068F66 /* MediaEditor.swift */; }; @@ -55,7 +53,6 @@ 8B50472723D7D36C00068F66 /* MediaEditorHubTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B50472223D7D36C00068F66 /* MediaEditorHubTests.swift */; }; 8B50472823D7D36C00068F66 /* MediaEditorCropZoomRotateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B50472523D7D36C00068F66 /* MediaEditorCropZoomRotateTests.swift */; }; 8B50472923D7D36C00068F66 /* MediaEditorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B50472623D7D36C00068F66 /* MediaEditorTests.swift */; }; - 8B50472A23D7D39900068F66 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B5046FC23D7D16A00068F66 /* Nimble.framework */; platformFilter = ios; }; 8B50472D23D87C3500068F66 /* UIApplication+topWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B50472C23D87C3500068F66 /* UIApplication+topWindow.swift */; }; 8B50472F23D87DA400068F66 /* UIImage+color.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B50472E23D87DA400068F66 /* UIImage+color.swift */; }; /* End PBXBuildFile section */ @@ -78,18 +75,6 @@ dstSubfolderSpec = 10; files = ( 8B12DEC723DFB21A00243CD8 /* MediaEditor.framework in Embed Frameworks */, - 8B5046B923D7CCBD00068F66 /* TOCropViewController.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 8B5046BD23D7CCD000068F66 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 8B5046BC23D7CCD000068F66 /* TOCropViewController.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -156,7 +141,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8B5046BB23D7CCD000068F66 /* CropViewController.framework in Frameworks */, + 2465F73A27ACDC0700F507A0 /* CropViewController in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -164,7 +149,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8B5046B823D7CCBD00068F66 /* CropViewController.framework in Frameworks */, 8B5046B623D7C9E300068F66 /* MediaEditor.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -173,7 +157,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8B50472A23D7D39900068F66 /* Nimble.framework in Frameworks */, + 2477A32A27ACDD5F00ADA7F3 /* Nimble in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -452,13 +436,15 @@ 8B50468E23D7C88200068F66 /* Sources */, 8B50468F23D7C88200068F66 /* Frameworks */, 8B50469023D7C88200068F66 /* Resources */, - 8B5046BD23D7CCD000068F66 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( ); name = MediaEditor; + packageProductDependencies = ( + 2465F73927ACDC0700F507A0 /* CropViewController */, + ); productName = MediaEditor; productReference = 8B50469223D7C88200068F66 /* MediaEditor.framework */; productType = "com.apple.product-type.framework"; @@ -488,7 +474,6 @@ 8B50471423D7D32B00068F66 /* Sources */, 8B50471523D7D32B00068F66 /* Frameworks */, 8B50471623D7D32B00068F66 /* Resources */, - 8B50473123D87EE000068F66 /* ShellScript */, ); buildRules = ( ); @@ -496,6 +481,9 @@ 8B50471E23D7D32B00068F66 /* PBXTargetDependency */, ); name = Tests; + packageProductDependencies = ( + 2477A32927ACDD5F00ADA7F3 /* Nimble */, + ); productName = Tests; productReference = 8B50471823D7D32B00068F66 /* Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -533,6 +521,10 @@ Base, ); mainGroup = 8B50468823D7C88200068F66; + packageReferences = ( + 2465F73827ACDC0700F507A0 /* XCRemoteSwiftPackageReference "TOCropViewController" */, + 2477A32827ACDD5F00ADA7F3 /* XCRemoteSwiftPackageReference "Nimble" */, + ); productRefGroup = 8B50469323D7C88200068F66 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -577,28 +569,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 8B50473123D87EE000068F66 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "$(SRCROOT)/Carthage/Build/iOS/Nimble.framework", - ); - outputFileListPaths = ( - ); - outputPaths = ( - "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Nimble.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/usr/local/bin/carthage copy-frameworks\n"; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ 8B50468E23D7C88200068F66 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -815,10 +785,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( @@ -846,10 +813,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = Sources/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( @@ -872,10 +836,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = PZYM8XX95Q; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = Example/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -894,10 +855,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = PZYM8XX95Q; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = Example/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -917,10 +875,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = PZYM8XX95Q; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -943,10 +898,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = PZYM8XX95Q; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -1001,6 +953,38 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 2465F73827ACDC0700F507A0 /* XCRemoteSwiftPackageReference "TOCropViewController" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/TimOliver/TOCropViewController.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 2.0.0; + }; + }; + 2477A32827ACDD5F00ADA7F3 /* XCRemoteSwiftPackageReference "Nimble" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/Quick/Nimble.git"; + requirement = { + branch = main; + kind = branch; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 2465F73927ACDC0700F507A0 /* CropViewController */ = { + isa = XCSwiftPackageProductDependency; + package = 2465F73827ACDC0700F507A0 /* XCRemoteSwiftPackageReference "TOCropViewController" */; + productName = CropViewController; + }; + 2477A32927ACDD5F00ADA7F3 /* Nimble */ = { + isa = XCSwiftPackageProductDependency; + package = 2477A32827ACDD5F00ADA7F3 /* XCRemoteSwiftPackageReference "Nimble" */; + productName = Nimble; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 8B50468923D7C88200068F66 /* Project object */; } diff --git a/MediaEditor.xcodeproj/xcshareddata/xcschemes/MediaEditor.xcscheme b/MediaEditor.xcodeproj/xcshareddata/xcschemes/MediaEditor.xcscheme index bd8cf43..51aec26 100644 --- a/MediaEditor.xcodeproj/xcshareddata/xcschemes/MediaEditor.xcscheme +++ b/MediaEditor.xcodeproj/xcshareddata/xcschemes/MediaEditor.xcscheme @@ -28,6 +28,24 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + +