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">
+
+
+
+
+
+
+
+
+
+