diff --git a/.swift-version b/.swift-version
index 9f55b2c..5186d07 100644
--- a/.swift-version
+++ b/.swift-version
@@ -1 +1 @@
-3.0
+4.0
diff --git a/BubbleTransition.podspec b/BubbleTransition.podspec
index 6c896ad..58af7f7 100644
--- a/BubbleTransition.podspec
+++ b/BubbleTransition.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BubbleTransition'
- s.version = '2.0.2'
+ s.version = '3.0.0'
s.license = 'MIT'
s.summary = 'A custom modal transition that presents and dismiss a controller with a bubble effect'
s.description = <<-DESC
@@ -13,6 +13,7 @@ Pod::Spec.new do |s|
s.source = { :git => 'https://github.com/andreamazz/BubbleTransition.git', :tag => s.version }
s.ios.deployment_target = '8.0'
+ s.swift_version = '4.0'
s.source_files = 'Source/*.swift'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d3b51ea..a9bf79e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,12 +2,17 @@
All notable changes to this project will be documented in this file.
`BubbleTransition` adheres to [Semantic Versioning](http://semver.org/).
+- `3.0.x` Releases - [3.0.0](#300)
- `2.0.x` Releases - [2.0.0](#200) | [2.0.1](#201) | [2.0.2](#202)
- `1.0.x` Releases - [1.0.0](#100) | [1.0.1](#101) | [1.0.2](#102) | [1.0.3](#103)
- `0.2.x` Releases - [0.2](#02)
---
+## [3.0.0](https://github.com/andreamazz/BubbleTransition/releases/tag/3.0.0)
+
+- Swift version 4
+
## [2.0.2](https://github.com/andreamazz/BubbleTransition/releases/tag/2.0.2)
- Merged #36
diff --git a/Demo/Demo.xcodeproj/project.pbxproj b/Demo/Demo.xcodeproj/project.pbxproj
index 2c3bdaa..ef130f4 100644
--- a/Demo/Demo.xcodeproj/project.pbxproj
+++ b/Demo/Demo.xcodeproj/project.pbxproj
@@ -167,7 +167,6 @@
659891441B032E3B00BF6CD9 /* Frameworks */,
659891451B032E3B00BF6CD9 /* Resources */,
079A5B5CEE74AECAE0CEE9B9 /* [CP] Embed Pods Frameworks */,
- 20A4B72369E93833BBF9485A /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -186,8 +185,6 @@
659891581B032E3B00BF6CD9 /* Sources */,
659891591B032E3B00BF6CD9 /* Frameworks */,
6598915A1B032E3B00BF6CD9 /* Resources */,
- 9BAA9D8C813EB1D31863D6A9 /* [CP] Embed Pods Frameworks */,
- D8CCB61E2F8773FA6EA780FC /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -268,58 +265,34 @@
files = (
);
inputPaths = (
+ "${SRCROOT}/Pods/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/BubbleTransition/BubbleTransition.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BubbleTransition.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
- 20A4B72369E93833BBF9485A /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Demo/Pods-Demo-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
75D0565A8F3388D487941891 /* [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-Demo-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_ROOT}/../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";
- showEnvVarsInLog = 0;
- };
- 9BAA9D8C813EB1D31863D6A9 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "[CP] Embed Pods Frameworks";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-frameworks.sh\"\n";
+ 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;
};
A722F743BEDCF10D812B911A /* [CP] Check Pods Manifest.lock */ = {
@@ -328,28 +301,16 @@
files = (
);
inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-DemoTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_ROOT}/../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";
- showEnvVarsInLog = 0;
- };
- D8CCB61E2F8773FA6EA780FC /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-resources.sh\"\n";
+ 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;
};
/* End PBXShellScriptBuildPhase section */
@@ -447,6 +408,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -486,6 +448,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_VERSION = 4.0;
VALIDATE_PRODUCT = YES;
};
name = Release;
@@ -503,7 +466,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "01dc3e20-08cf-47c5-b70a-8d645fc53db0";
PROVISIONING_PROFILE_SPECIFIER = Development;
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -520,7 +483,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "01dc3e20-08cf-47c5-b70a-8d645fc53db0";
PROVISIONING_PROFILE_SPECIFIER = Development;
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
};
name = Release;
};
diff --git a/Demo/Demo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Demo/Demo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/Demo/Demo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/Demo/Demo/AppDelegate.swift b/Demo/Demo/AppDelegate.swift
index 6c85d92..c1df98d 100644
--- a/Demo/Demo/AppDelegate.swift
+++ b/Demo/Demo/AppDelegate.swift
@@ -10,6 +10,6 @@ import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
- var window: UIWindow?
+ var window: UIWindow?
}
diff --git a/Demo/Demo/ModalViewController.swift b/Demo/Demo/ModalViewController.swift
index 543cbfc..089365f 100644
--- a/Demo/Demo/ModalViewController.swift
+++ b/Demo/Demo/ModalViewController.swift
@@ -9,22 +9,21 @@
import UIKit
class ModalViewController: UIViewController {
-
- @IBOutlet weak var closeButton: UIButton!
-
- override func viewDidLoad() {
- closeButton.transform = CGAffineTransform(rotationAngle: CGFloat(M_PI_4))
- }
-
- @IBAction func closeAction(_ sender: AnyObject) {
- self.dismiss(animated: true, completion: nil)
- }
-
- override func viewWillAppear(_ animated: Bool) {
- UIApplication.shared.setStatusBarStyle(.lightContent, animated: true)
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- UIApplication.shared.setStatusBarStyle(.default, animated: true)
- }
+ @IBOutlet weak var closeButton: UIButton!
+
+ override func viewDidLoad() {
+ closeButton.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 4)
+ }
+
+ @IBAction func closeAction(_ sender: AnyObject) {
+ self.dismiss(animated: true, completion: nil)
+ }
+
+ override func viewWillAppear(_ animated: Bool) {
+ UIApplication.shared.setStatusBarStyle(.lightContent, animated: true)
+ }
+
+ override func viewWillDisappear(_ animated: Bool) {
+ UIApplication.shared.setStatusBarStyle(.default, animated: true)
+ }
}
diff --git a/Demo/Demo/ViewController.swift b/Demo/Demo/ViewController.swift
index 0891c79..9e7af8f 100644
--- a/Demo/Demo/ViewController.swift
+++ b/Demo/Demo/ViewController.swift
@@ -10,32 +10,31 @@ import UIKit
import BubbleTransition
class ViewController: UIViewController, UIViewControllerTransitioningDelegate {
-
- @IBOutlet weak var transitionButton: UIButton!
-
- let transition = BubbleTransition()
-
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- let controller = segue.destination
- controller.transitioningDelegate = self
- controller.modalPresentationStyle = .custom
- }
-
- // MARK: UIViewControllerTransitioningDelegate
-
- func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
- transition.transitionMode = .present
- transition.startingPoint = transitionButton.center
- transition.bubbleColor = transitionButton.backgroundColor!
- return transition
- }
-
- func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
- transition.transitionMode = .dismiss
- transition.startingPoint = transitionButton.center
- transition.bubbleColor = transitionButton.backgroundColor!
- return transition
- }
-
+ @IBOutlet weak var transitionButton: UIButton!
+
+ let transition = BubbleTransition()
+
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+ let controller = segue.destination
+ controller.transitioningDelegate = self
+ controller.modalPresentationStyle = .custom
+ }
+
+ // MARK: UIViewControllerTransitioningDelegate
+
+ func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
+ transition.transitionMode = .present
+ transition.startingPoint = transitionButton.center
+ transition.bubbleColor = transitionButton.backgroundColor!
+ return transition
+ }
+
+ func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
+ transition.transitionMode = .dismiss
+ transition.startingPoint = transitionButton.center
+ transition.bubbleColor = transitionButton.backgroundColor!
+ return transition
+ }
+
}
diff --git a/Demo/Podfile.lock b/Demo/Podfile.lock
index f1baf04..52f349b 100644
--- a/Demo/Podfile.lock
+++ b/Demo/Podfile.lock
@@ -1,5 +1,5 @@
PODS:
- - BubbleTransition (2.0.0)
+ - BubbleTransition (3.0.0)
DEPENDENCIES:
- BubbleTransition (from `../`)
@@ -9,8 +9,8 @@ EXTERNAL SOURCES:
:path: "../"
SPEC CHECKSUMS:
- BubbleTransition: bdb9d71993b8d3513008e2dda6bada1ddad25d4f
+ BubbleTransition: 61f0b5dfbd13c27d734bbd80b680e7d8c29657ba
PODFILE CHECKSUM: 509266e47632f639195bfac1deb46ad87c1fc5f6
-COCOAPODS: 1.1.0.rc.2
+COCOAPODS: 1.5.0
diff --git a/Demo/Pods/Local Podspecs/BubbleTransition.podspec.json b/Demo/Pods/Local Podspecs/BubbleTransition.podspec.json
index 0c6e452..0c463fe 100644
--- a/Demo/Pods/Local Podspecs/BubbleTransition.podspec.json
+++ b/Demo/Pods/Local Podspecs/BubbleTransition.podspec.json
@@ -1,6 +1,6 @@
{
"name": "BubbleTransition",
- "version": "2.0.0",
+ "version": "3.0.0",
"license": "MIT",
"summary": "A custom modal transition that presents and dismiss a controller with a bubble effect",
"description": "Easy to use custom modal animation that presents the new controller\nwithin a bubble, expanding to cover the whole screen.",
@@ -11,11 +11,12 @@
},
"source": {
"git": "https://github.com/andreamazz/BubbleTransition.git",
- "tag": "2.0.0"
+ "tag": "3.0.0"
},
"platforms": {
"ios": "8.0"
},
+ "swift_version": "4.0",
"source_files": "Source/*.swift",
"requires_arc": true
}
diff --git a/Demo/Pods/Manifest.lock b/Demo/Pods/Manifest.lock
index f1baf04..52f349b 100644
--- a/Demo/Pods/Manifest.lock
+++ b/Demo/Pods/Manifest.lock
@@ -1,5 +1,5 @@
PODS:
- - BubbleTransition (2.0.0)
+ - BubbleTransition (3.0.0)
DEPENDENCIES:
- BubbleTransition (from `../`)
@@ -9,8 +9,8 @@ EXTERNAL SOURCES:
:path: "../"
SPEC CHECKSUMS:
- BubbleTransition: bdb9d71993b8d3513008e2dda6bada1ddad25d4f
+ BubbleTransition: 61f0b5dfbd13c27d734bbd80b680e7d8c29657ba
PODFILE CHECKSUM: 509266e47632f639195bfac1deb46ad87c1fc5f6
-COCOAPODS: 1.1.0.rc.2
+COCOAPODS: 1.5.0
diff --git a/Demo/Pods/Pods.xcodeproj/project.pbxproj b/Demo/Pods/Pods.xcodeproj/project.pbxproj
index edf0ff9..ab48336 100644
--- a/Demo/Pods/Pods.xcodeproj/project.pbxproj
+++ b/Demo/Pods/Pods.xcodeproj/project.pbxproj
@@ -7,99 +7,94 @@
objects = {
/* Begin PBXBuildFile section */
- 4C012D74EEB3B8E39B3EB083663682D1 /* Pods-DemoTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 64ED958D48E86E4A470C162D92DEB6DC /* Pods-DemoTests-dummy.m */; };
- 67BB3846BB9447C6156AB9543A08CE3B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; };
- 6849FAAD72F79DF11E5ED301BB57035F /* BubbleTransition-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B835660C7F2352AA25BC99966A760AB /* BubbleTransition-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 783D09E6FEFC6B29AA8024206E692CE7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; };
- 8F7ACE0F53320771885A9940B57F0AA0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; };
- 94AF121BB6ABEC380C085FBBE54C337C /* BubbleTransition-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B19B6D3C14D738F7D8B20253197C3C4 /* BubbleTransition-dummy.m */; };
- BA28D94EADCEBB750807601917E9A175 /* Pods-Demo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 34BE135475DE0644AE63533A89837C39 /* Pods-Demo-dummy.m */; };
- BF945CF5A00A1D30102E638A740A008D /* Pods-Demo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CB693FD6A294953F3710C84EA4D68A6F /* Pods-Demo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C840C63721979B78DB8B6FAE70C4D4C2 /* Pods-DemoTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 94D86F2263A7926EEBB1CC6DC4C91584 /* Pods-DemoTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D8C4A5C81C54CBFA120B4BCA16FDC851 /* BubbleTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419597E0DF128F5B23681287DFC764A5 /* BubbleTransition.swift */; };
+ 048B6AD6154DCD9425D0628D4BB332D2 /* BubbleTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B5FBB0B1C784B864F69EDD4038E6339 /* BubbleTransition.swift */; };
+ 04F377D952092E9DDB067D4B7E8150B0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
+ 15B92BD6A32F0D58A1079138ED72C4F1 /* BubbleTransition-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB9C42BE6A4CB6196CD84BCC8365BAC /* BubbleTransition-dummy.m */; };
+ 2E661DEBE52AC97DD34645C51498AFFF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
+ 3F159A8B3F6F29DAC1F4DD3BFC4892BA /* BubbleTransition-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FAAEF9160BBA54711BC212157174547 /* BubbleTransition-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 565CA1EFAF36547615627A742362F3A7 /* Pods-DemoTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B986DA8565410A1FBB275EBDC22173F /* Pods-DemoTests-dummy.m */; };
+ 6D69F38D114E26E5BF67978B75EB8974 /* Pods-Demo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 61FCD9F5AFAA918AE18E0F1754E59089 /* Pods-Demo-dummy.m */; };
+ 8A82F6C5D99051A0919FDECF46653426 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; };
+ CEF6A9F5743BF1DBBA79B68133949311 /* Pods-DemoTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 947511070799896770CAF73BCB20B722 /* Pods-DemoTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E8A6CC7053DEEB9AD3F833F3EDE36F3E /* Pods-Demo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ED4652D686FFA05E4CFD837F5DD948A0 /* Pods-Demo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- FEEB41C76DB538C5BD398CC501DBA2DF /* PBXContainerItemProxy */ = {
+ D58D6B5AAAF99338054DF3463C7F4976 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 7372CA79CE92E7AC032175441663EBE4;
+ remoteGlobalIDString = 38830187D9E171E7B43047ED06A08ADC;
remoteInfo = BubbleTransition;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
- 03237F31CCE13B4B53C98FBE59C13C3F /* Pods-Demo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-Demo.modulemap"; sourceTree = ""; };
- 03C3A50FCC0801E242EEE1E2BB63D964 /* BubbleTransition.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BubbleTransition.xcconfig; sourceTree = ""; };
- 0A3425D848F2AB0CE39F8726C61D39B2 /* Pods-Demo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Demo-acknowledgements.plist"; sourceTree = ""; };
- 0F14967409FA9567ECECE33DBC98A018 /* Pods-DemoTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-DemoTests-acknowledgements.markdown"; sourceTree = ""; };
- 14C3ADBE966D19E50A7B0C90042CA6B8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 1F7C4E6C9B82CF1F96AFF7B443B99AAC /* Pods_DemoTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_DemoTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 2BF65439C3E9BF7516E08F1DAF960352 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 2EFE77D726F39B085A0976A2710DCC8E /* Pods-Demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Demo.release.xcconfig"; sourceTree = ""; };
- 34BE135475DE0644AE63533A89837C39 /* Pods-Demo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Demo-dummy.m"; sourceTree = ""; };
- 3B835660C7F2352AA25BC99966A760AB /* BubbleTransition-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BubbleTransition-umbrella.h"; sourceTree = ""; };
- 3E929B4648643CAF287DC5D2C8371CE5 /* Pods-Demo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Demo-acknowledgements.markdown"; sourceTree = ""; };
- 419597E0DF128F5B23681287DFC764A5 /* BubbleTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BubbleTransition.swift; sourceTree = ""; };
- 625ADED01F774CF413E1487CE967CD41 /* Pods_Demo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Demo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 64ED958D48E86E4A470C162D92DEB6DC /* Pods-DemoTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-DemoTests-dummy.m"; sourceTree = ""; };
- 657593A21C22D6D4EC920361C5CB9542 /* Pods-DemoTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-DemoTests.modulemap"; sourceTree = ""; };
- 6DDC285E418FF22EC1B53049378F73F5 /* BubbleTransition.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BubbleTransition.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 7B19B6D3C14D738F7D8B20253197C3C4 /* BubbleTransition-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BubbleTransition-dummy.m"; sourceTree = ""; };
- 7D174BC0219B395730FF6D29969C6F9D /* Pods-DemoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DemoTests.release.xcconfig"; sourceTree = ""; };
- 8110977EEB92C5C36FD6C89D1644E240 /* Pods-Demo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Demo-frameworks.sh"; sourceTree = ""; };
- 8F7A44BB88DE53353F97FC4839193EA6 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
- 94D86F2263A7926EEBB1CC6DC4C91584 /* Pods-DemoTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-DemoTests-umbrella.h"; sourceTree = ""; };
- 9AFFD6F084B0B56D49EADD0D9AEDB762 /* Pods-DemoTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-DemoTests-frameworks.sh"; sourceTree = ""; };
- A60CFBD31559D4AB99CDE74CEA8D9F66 /* BubbleTransition-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BubbleTransition-prefix.pch"; sourceTree = ""; };
- A76C7611A06FCD26EB4E3998E5EE9297 /* Pods-DemoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DemoTests.debug.xcconfig"; sourceTree = ""; };
- C949AE3B3D57F7D9EFDA8C8921FD8D6D /* Pods-Demo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Demo-resources.sh"; sourceTree = ""; };
- CAFE87CE875E3078BCE48645C88B75F9 /* Pods-Demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Demo.debug.xcconfig"; sourceTree = ""; };
- CB693FD6A294953F3710C84EA4D68A6F /* Pods-Demo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Demo-umbrella.h"; sourceTree = ""; };
- CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
- D8C5971DD6E5538199F0098C0CA42CD4 /* Pods-DemoTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-DemoTests-acknowledgements.plist"; sourceTree = ""; };
- DF2BF3EBB434BF9C5D2C2B14AE81C7A1 /* BubbleTransition.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = BubbleTransition.modulemap; sourceTree = ""; };
- FCDD75AC8038943A8E2C2C2CD6C34834 /* Pods-DemoTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-DemoTests-resources.sh"; sourceTree = ""; };
+ 0261C010D517612D2F43027BCADF859A /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; };
+ 0718F198756CC3FCF3EC3F4AAFF51E1F /* BubbleTransition.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BubbleTransition.xcconfig; sourceTree = ""; };
+ 137F93901D86DD727245232DB84C0501 /* Pods-DemoTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-DemoTests-acknowledgements.markdown"; sourceTree = ""; };
+ 1F7C4E6C9B82CF1F96AFF7B443B99AAC /* Pods_DemoTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_DemoTests.framework; path = "Pods-DemoTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 208B51FF7C820FF335FEFC6064EDF437 /* BubbleTransition.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = BubbleTransition.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+ 2FAAEF9160BBA54711BC212157174547 /* BubbleTransition-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BubbleTransition-umbrella.h"; sourceTree = ""; };
+ 399B006E2977C12A104E16C77804FD8D /* Pods-DemoTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-DemoTests-frameworks.sh"; sourceTree = ""; };
+ 3C707943BE6DB0504280DB779E90B00A /* BubbleTransition-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BubbleTransition-prefix.pch"; sourceTree = ""; };
+ 43B0514188824A8DF9BE4525F4C0AAF7 /* Pods-Demo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Demo-frameworks.sh"; sourceTree = ""; };
+ 4906E7F6E307512D338DAAB9808A5980 /* Pods-Demo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Demo.modulemap"; sourceTree = ""; };
+ 4CB22A9BED60505A355D13240451A9E0 /* Pods-DemoTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-DemoTests-resources.sh"; sourceTree = ""; };
+ 61FCD9F5AFAA918AE18E0F1754E59089 /* Pods-Demo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Demo-dummy.m"; sourceTree = ""; };
+ 625ADED01F774CF413E1487CE967CD41 /* Pods_Demo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Demo.framework; path = "Pods-Demo.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
+ 6B986DA8565410A1FBB275EBDC22173F /* Pods-DemoTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-DemoTests-dummy.m"; sourceTree = ""; };
+ 6DDC285E418FF22EC1B53049378F73F5 /* BubbleTransition.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = BubbleTransition.framework; path = BubbleTransition.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 79F2D354804A11481B2091334E9BE69D /* BubbleTransition.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BubbleTransition.modulemap; sourceTree = ""; };
+ 8770613CD8D6FFEBC01B5906D0AE2C99 /* Pods-Demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Demo.release.xcconfig"; sourceTree = ""; };
+ 899F7D96738B594A432CEED858F6FF94 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 8B5FBB0B1C784B864F69EDD4038E6339 /* BubbleTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BubbleTransition.swift; path = Source/BubbleTransition.swift; sourceTree = ""; };
+ 8FB9C42BE6A4CB6196CD84BCC8365BAC /* BubbleTransition-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BubbleTransition-dummy.m"; sourceTree = ""; };
+ 9035AB3B1B87BE64DA7F6D62D4004A32 /* Pods-Demo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Demo-acknowledgements.markdown"; sourceTree = ""; };
+ 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+ 947511070799896770CAF73BCB20B722 /* Pods-DemoTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-DemoTests-umbrella.h"; sourceTree = ""; };
+ 9C86746B7782939999EF488A707ED793 /* Pods-DemoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DemoTests.debug.xcconfig"; sourceTree = ""; };
+ A6CB3D9F45EE9BAEB738CFCA213A7D9A /* Pods-Demo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Demo-resources.sh"; sourceTree = ""; };
+ A90D775A3043D21572B4AF438A91629D /* Pods-DemoTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-DemoTests-acknowledgements.plist"; sourceTree = ""; };
+ A9D57B9A5440D76082DF3AD2C1289F7B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ B280BA097BF5A1313FFA26C321E9D586 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; };
+ B3B1FE08B862EAB796DF4CF965FDAF54 /* Pods-Demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Demo.debug.xcconfig"; sourceTree = ""; };
+ CA7749509FFC4CF987FE94C109993700 /* Pods-DemoTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-DemoTests.modulemap"; sourceTree = ""; };
+ CEE8FAC3960020923D811F92029719E4 /* Pods-DemoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DemoTests.release.xcconfig"; sourceTree = ""; };
+ E0194F552CC753BABCC5FE3810477268 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ E591EB13105E3738351C6AB010D7A223 /* Pods-Demo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Demo-acknowledgements.plist"; sourceTree = ""; };
+ ED4652D686FFA05E4CFD837F5DD948A0 /* Pods-Demo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Demo-umbrella.h"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- 366E09354561C799A49CA36E2844E92C /* Frameworks */ = {
+ 80BAED8264659300BEDB626EC66C5972 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 783D09E6FEFC6B29AA8024206E692CE7 /* Foundation.framework in Frameworks */,
+ 04F377D952092E9DDB067D4B7E8150B0 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- 5AA30D99C7D7F6EAD6B91A7D6B760F0D /* Frameworks */ = {
+ D756DA14932342915B06B5A24C295CE3 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 8F7ACE0F53320771885A9940B57F0AA0 /* Foundation.framework in Frameworks */,
+ 2E661DEBE52AC97DD34645C51498AFFF /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- 83FF2E05D68CBCC529D00B09EF9B0BF7 /* Frameworks */ = {
+ DE63AD24BB9F50CC1A67371F2BD99674 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 67BB3846BB9447C6156AB9543A08CE3B /* Foundation.framework in Frameworks */,
+ 8A82F6C5D99051A0919FDECF46653426 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 0952AD5F6D55F129559BCAA64D18E35C /* Source */ = {
- isa = PBXGroup;
- children = (
- 419597E0DF128F5B23681287DFC764A5 /* BubbleTransition.swift */,
- );
- path = Source;
- sourceTree = "";
- };
269AE2A6F450F027D46E859894BDB6C3 /* Products */ = {
isa = PBXGroup;
children = (
@@ -110,51 +105,54 @@
name = Products;
sourceTree = "";
};
- 348C132E75CFCFC129CCEC80443EF65F /* Pods-Demo */ = {
+ 509827DD1A780996CFF48B5611598F0F /* Pod */ = {
isa = PBXGroup;
children = (
- 2BF65439C3E9BF7516E08F1DAF960352 /* Info.plist */,
- 03237F31CCE13B4B53C98FBE59C13C3F /* Pods-Demo.modulemap */,
- 3E929B4648643CAF287DC5D2C8371CE5 /* Pods-Demo-acknowledgements.markdown */,
- 0A3425D848F2AB0CE39F8726C61D39B2 /* Pods-Demo-acknowledgements.plist */,
- 34BE135475DE0644AE63533A89837C39 /* Pods-Demo-dummy.m */,
- 8110977EEB92C5C36FD6C89D1644E240 /* Pods-Demo-frameworks.sh */,
- C949AE3B3D57F7D9EFDA8C8921FD8D6D /* Pods-Demo-resources.sh */,
- CB693FD6A294953F3710C84EA4D68A6F /* Pods-Demo-umbrella.h */,
- CAFE87CE875E3078BCE48645C88B75F9 /* Pods-Demo.debug.xcconfig */,
- 2EFE77D726F39B085A0976A2710DCC8E /* Pods-Demo.release.xcconfig */,
+ 208B51FF7C820FF335FEFC6064EDF437 /* BubbleTransition.podspec */,
+ 0261C010D517612D2F43027BCADF859A /* LICENSE */,
+ B280BA097BF5A1313FFA26C321E9D586 /* README.md */,
);
- name = "Pods-Demo";
- path = "Target Support Files/Pods-Demo";
+ name = Pod;
sourceTree = "";
};
- 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = {
+ 54E12C64EC067A327EE1F3B83B2A1991 /* BubbleTransition */ = {
isa = PBXGroup;
children = (
- CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */,
+ 8B5FBB0B1C784B864F69EDD4038E6339 /* BubbleTransition.swift */,
+ 509827DD1A780996CFF48B5611598F0F /* Pod */,
+ 743FEB1E4D7455C5A40092686528EE38 /* Support Files */,
);
- name = iOS;
+ name = BubbleTransition;
+ path = ../..;
sourceTree = "";
};
- 75DF0EDF86DF957DFE706B652D4A0466 /* BubbleTransition */ = {
+ 71960E4308F9053FB1C91EDDE6860ECA /* Pods-DemoTests */ = {
isa = PBXGroup;
children = (
- 0952AD5F6D55F129559BCAA64D18E35C /* Source */,
- 76AB1BDFCCB5D38BF459081E21133F70 /* Support Files */,
+ 899F7D96738B594A432CEED858F6FF94 /* Info.plist */,
+ CA7749509FFC4CF987FE94C109993700 /* Pods-DemoTests.modulemap */,
+ 137F93901D86DD727245232DB84C0501 /* Pods-DemoTests-acknowledgements.markdown */,
+ A90D775A3043D21572B4AF438A91629D /* Pods-DemoTests-acknowledgements.plist */,
+ 6B986DA8565410A1FBB275EBDC22173F /* Pods-DemoTests-dummy.m */,
+ 399B006E2977C12A104E16C77804FD8D /* Pods-DemoTests-frameworks.sh */,
+ 4CB22A9BED60505A355D13240451A9E0 /* Pods-DemoTests-resources.sh */,
+ 947511070799896770CAF73BCB20B722 /* Pods-DemoTests-umbrella.h */,
+ 9C86746B7782939999EF488A707ED793 /* Pods-DemoTests.debug.xcconfig */,
+ CEE8FAC3960020923D811F92029719E4 /* Pods-DemoTests.release.xcconfig */,
);
- name = BubbleTransition;
- path = ../..;
+ name = "Pods-DemoTests";
+ path = "Target Support Files/Pods-DemoTests";
sourceTree = "";
};
- 76AB1BDFCCB5D38BF459081E21133F70 /* Support Files */ = {
+ 743FEB1E4D7455C5A40092686528EE38 /* Support Files */ = {
isa = PBXGroup;
children = (
- DF2BF3EBB434BF9C5D2C2B14AE81C7A1 /* BubbleTransition.modulemap */,
- 03C3A50FCC0801E242EEE1E2BB63D964 /* BubbleTransition.xcconfig */,
- 7B19B6D3C14D738F7D8B20253197C3C4 /* BubbleTransition-dummy.m */,
- A60CFBD31559D4AB99CDE74CEA8D9F66 /* BubbleTransition-prefix.pch */,
- 3B835660C7F2352AA25BC99966A760AB /* BubbleTransition-umbrella.h */,
- 8F7A44BB88DE53353F97FC4839193EA6 /* Info.plist */,
+ 79F2D354804A11481B2091334E9BE69D /* BubbleTransition.modulemap */,
+ 0718F198756CC3FCF3EC3F4AAFF51E1F /* BubbleTransition.xcconfig */,
+ 8FB9C42BE6A4CB6196CD84BCC8365BAC /* BubbleTransition-dummy.m */,
+ 3C707943BE6DB0504280DB779E90B00A /* BubbleTransition-prefix.pch */,
+ 2FAAEF9160BBA54711BC212157174547 /* BubbleTransition-umbrella.h */,
+ E0194F552CC753BABCC5FE3810477268 /* Info.plist */,
);
name = "Support Files";
path = "Demo/Pods/Target Support Files/BubbleTransition";
@@ -164,7 +162,7 @@
isa = PBXGroup;
children = (
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
- FDF0E7129E58BBD9877DFF0D3306C659 /* Development Pods */,
+ BC23CAA2EA1450420A259565C7C8DAF8 /* Development Pods */,
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */,
269AE2A6F450F027D46E859894BDB6C3 /* Products */,
8BD2AF98586608E9C5E4AC2EE85150B7 /* Targets Support Files */,
@@ -174,101 +172,109 @@
8BD2AF98586608E9C5E4AC2EE85150B7 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
- 348C132E75CFCFC129CCEC80443EF65F /* Pods-Demo */,
- E76DE6EFE3983F78B677CDD8394FC7D8 /* Pods-DemoTests */,
+ BADBF3A0E4C3B3010DD70FEB4AF18153 /* Pods-Demo */,
+ 71960E4308F9053FB1C91EDDE6860ECA /* Pods-DemoTests */,
);
name = "Targets Support Files";
sourceTree = "";
};
- BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
+ BADBF3A0E4C3B3010DD70FEB4AF18153 /* Pods-Demo */ = {
isa = PBXGroup;
children = (
- 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */,
+ A9D57B9A5440D76082DF3AD2C1289F7B /* Info.plist */,
+ 4906E7F6E307512D338DAAB9808A5980 /* Pods-Demo.modulemap */,
+ 9035AB3B1B87BE64DA7F6D62D4004A32 /* Pods-Demo-acknowledgements.markdown */,
+ E591EB13105E3738351C6AB010D7A223 /* Pods-Demo-acknowledgements.plist */,
+ 61FCD9F5AFAA918AE18E0F1754E59089 /* Pods-Demo-dummy.m */,
+ 43B0514188824A8DF9BE4525F4C0AAF7 /* Pods-Demo-frameworks.sh */,
+ A6CB3D9F45EE9BAEB738CFCA213A7D9A /* Pods-Demo-resources.sh */,
+ ED4652D686FFA05E4CFD837F5DD948A0 /* Pods-Demo-umbrella.h */,
+ B3B1FE08B862EAB796DF4CF965FDAF54 /* Pods-Demo.debug.xcconfig */,
+ 8770613CD8D6FFEBC01B5906D0AE2C99 /* Pods-Demo.release.xcconfig */,
);
- name = Frameworks;
+ name = "Pods-Demo";
+ path = "Target Support Files/Pods-Demo";
sourceTree = "";
};
- E76DE6EFE3983F78B677CDD8394FC7D8 /* Pods-DemoTests */ = {
+ BC23CAA2EA1450420A259565C7C8DAF8 /* Development Pods */ = {
isa = PBXGroup;
children = (
- 14C3ADBE966D19E50A7B0C90042CA6B8 /* Info.plist */,
- 657593A21C22D6D4EC920361C5CB9542 /* Pods-DemoTests.modulemap */,
- 0F14967409FA9567ECECE33DBC98A018 /* Pods-DemoTests-acknowledgements.markdown */,
- D8C5971DD6E5538199F0098C0CA42CD4 /* Pods-DemoTests-acknowledgements.plist */,
- 64ED958D48E86E4A470C162D92DEB6DC /* Pods-DemoTests-dummy.m */,
- 9AFFD6F084B0B56D49EADD0D9AEDB762 /* Pods-DemoTests-frameworks.sh */,
- FCDD75AC8038943A8E2C2C2CD6C34834 /* Pods-DemoTests-resources.sh */,
- 94D86F2263A7926EEBB1CC6DC4C91584 /* Pods-DemoTests-umbrella.h */,
- A76C7611A06FCD26EB4E3998E5EE9297 /* Pods-DemoTests.debug.xcconfig */,
- 7D174BC0219B395730FF6D29969C6F9D /* Pods-DemoTests.release.xcconfig */,
+ 54E12C64EC067A327EE1F3B83B2A1991 /* BubbleTransition */,
);
- name = "Pods-DemoTests";
- path = "Target Support Files/Pods-DemoTests";
+ name = "Development Pods";
sourceTree = "";
};
- FDF0E7129E58BBD9877DFF0D3306C659 /* Development Pods */ = {
+ BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
isa = PBXGroup;
children = (
- 75DF0EDF86DF957DFE706B652D4A0466 /* BubbleTransition */,
+ D35AF013A5F0BAD4F32504907A52519E /* iOS */,
);
- name = "Development Pods";
+ name = Frameworks;
+ sourceTree = "";
+ };
+ D35AF013A5F0BAD4F32504907A52519E /* iOS */ = {
+ isa = PBXGroup;
+ children = (
+ 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */,
+ );
+ name = iOS;
sourceTree = "";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
- 15E36E38462E8FE467A8ED76F5BB1385 /* Headers */ = {
+ 04333389C8450AA486FA870E0F4C6D90 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
- BF945CF5A00A1D30102E638A740A008D /* Pods-Demo-umbrella.h in Headers */,
+ 3F159A8B3F6F29DAC1F4DD3BFC4892BA /* BubbleTransition-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- E2A041A90C6087B1A41C5429E7B7DE7B /* Headers */ = {
+ 5D963F7ED1A35FDC3B939B60D9C66FD2 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
- 6849FAAD72F79DF11E5ED301BB57035F /* BubbleTransition-umbrella.h in Headers */,
+ E8A6CC7053DEEB9AD3F833F3EDE36F3E /* Pods-Demo-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- E42608AF8B4137FA47FFE13BF2155E7C /* Headers */ = {
+ 8AA1ED914CE7728BAB7AAE7F5281452C /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
- C840C63721979B78DB8B6FAE70C4D4C2 /* Pods-DemoTests-umbrella.h in Headers */,
+ CEF6A9F5743BF1DBBA79B68133949311 /* Pods-DemoTests-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 6DAFB654B2950CC5CF03E9D071F6B32E /* Pods-Demo */ = {
+ 18C4DBF38BF3B4F0DCCD45A789A5DC8D /* Pods-Demo */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 1FBA4B8883A55DD6B97D6101F2707FFA /* Build configuration list for PBXNativeTarget "Pods-Demo" */;
+ buildConfigurationList = C1B455DB3534CEED955BF4DB352B21DA /* Build configuration list for PBXNativeTarget "Pods-Demo" */;
buildPhases = (
- 10E76E139DB95E75E9CAFC8F4FD7A16A /* Sources */,
- 5AA30D99C7D7F6EAD6B91A7D6B760F0D /* Frameworks */,
- 15E36E38462E8FE467A8ED76F5BB1385 /* Headers */,
+ 4822B2BF235386DC84FB38BD19C07C7A /* Sources */,
+ DE63AD24BB9F50CC1A67371F2BD99674 /* Frameworks */,
+ 5D963F7ED1A35FDC3B939B60D9C66FD2 /* Headers */,
);
buildRules = (
);
dependencies = (
- BA2D86E669913386CABAF60915337236 /* PBXTargetDependency */,
+ 0FE6801A5673A34F45D834124A8867EA /* PBXTargetDependency */,
);
name = "Pods-Demo";
productName = "Pods-Demo";
productReference = 625ADED01F774CF413E1487CE967CD41 /* Pods_Demo.framework */;
productType = "com.apple.product-type.framework";
};
- 7372CA79CE92E7AC032175441663EBE4 /* BubbleTransition */ = {
+ 38830187D9E171E7B43047ED06A08ADC /* BubbleTransition */ = {
isa = PBXNativeTarget;
- buildConfigurationList = E481E9DBD0219904DB699E6812D3EE08 /* Build configuration list for PBXNativeTarget "BubbleTransition" */;
+ buildConfigurationList = 80A1B16222697C3079DBB028B38F7DBE /* Build configuration list for PBXNativeTarget "BubbleTransition" */;
buildPhases = (
- ED2ED89D9C8333D6808D95CC9C7ABDCF /* Sources */,
- 366E09354561C799A49CA36E2844E92C /* Frameworks */,
- E2A041A90C6087B1A41C5429E7B7DE7B /* Headers */,
+ DC1D173450EDD70117FFCBCB61B9624E /* Sources */,
+ D756DA14932342915B06B5A24C295CE3 /* Frameworks */,
+ 04333389C8450AA486FA870E0F4C6D90 /* Headers */,
);
buildRules = (
);
@@ -279,13 +285,13 @@
productReference = 6DDC285E418FF22EC1B53049378F73F5 /* BubbleTransition.framework */;
productType = "com.apple.product-type.framework";
};
- D548370457DEA9E612AB613DECEC925E /* Pods-DemoTests */ = {
+ A99338F9917CB98B3B19A0909E91616F /* Pods-DemoTests */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 129101A10255AE6EF678510690CB0DC8 /* Build configuration list for PBXNativeTarget "Pods-DemoTests" */;
+ buildConfigurationList = D62089A5F48E5AD84C5FF4E43C881E3F /* Build configuration list for PBXNativeTarget "Pods-DemoTests" */;
buildPhases = (
- 26AE9AEA8E27FEBBA340FEA7A0ADB024 /* Sources */,
- 83FF2E05D68CBCC529D00B09EF9B0BF7 /* Frameworks */,
- E42608AF8B4137FA47FFE13BF2155E7C /* Headers */,
+ 6EDD431024CA695038807D5697892579 /* Sources */,
+ 80BAED8264659300BEDB626EC66C5972 /* Frameworks */,
+ 8AA1ED914CE7728BAB7AAE7F5281452C /* Headers */,
);
buildRules = (
);
@@ -302,8 +308,8 @@
D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
isa = PBXProject;
attributes = {
- LastSwiftUpdateCheck = 0730;
- LastUpgradeCheck = 0700;
+ LastSwiftUpdateCheck = 0930;
+ LastUpgradeCheck = 0930;
};
buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
compatibilityVersion = "Xcode 3.2";
@@ -317,80 +323,79 @@
projectDirPath = "";
projectRoot = "";
targets = (
- 7372CA79CE92E7AC032175441663EBE4 /* BubbleTransition */,
- 6DAFB654B2950CC5CF03E9D071F6B32E /* Pods-Demo */,
- D548370457DEA9E612AB613DECEC925E /* Pods-DemoTests */,
+ 38830187D9E171E7B43047ED06A08ADC /* BubbleTransition */,
+ 18C4DBF38BF3B4F0DCCD45A789A5DC8D /* Pods-Demo */,
+ A99338F9917CB98B3B19A0909E91616F /* Pods-DemoTests */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
- 10E76E139DB95E75E9CAFC8F4FD7A16A /* Sources */ = {
+ 4822B2BF235386DC84FB38BD19C07C7A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- BA28D94EADCEBB750807601917E9A175 /* Pods-Demo-dummy.m in Sources */,
+ 6D69F38D114E26E5BF67978B75EB8974 /* Pods-Demo-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- 26AE9AEA8E27FEBBA340FEA7A0ADB024 /* Sources */ = {
+ 6EDD431024CA695038807D5697892579 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 4C012D74EEB3B8E39B3EB083663682D1 /* Pods-DemoTests-dummy.m in Sources */,
+ 565CA1EFAF36547615627A742362F3A7 /* Pods-DemoTests-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- ED2ED89D9C8333D6808D95CC9C7ABDCF /* Sources */ = {
+ DC1D173450EDD70117FFCBCB61B9624E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 94AF121BB6ABEC380C085FBBE54C337C /* BubbleTransition-dummy.m in Sources */,
- D8C4A5C81C54CBFA120B4BCA16FDC851 /* BubbleTransition.swift in Sources */,
+ 15B92BD6A32F0D58A1079138ED72C4F1 /* BubbleTransition-dummy.m in Sources */,
+ 048B6AD6154DCD9425D0628D4BB332D2 /* BubbleTransition.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
- BA2D86E669913386CABAF60915337236 /* PBXTargetDependency */ = {
+ 0FE6801A5673A34F45D834124A8867EA /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = BubbleTransition;
- target = 7372CA79CE92E7AC032175441663EBE4 /* BubbleTransition */;
- targetProxy = FEEB41C76DB538C5BD398CC501DBA2DF /* PBXContainerItemProxy */;
+ target = 38830187D9E171E7B43047ED06A08ADC /* BubbleTransition */;
+ targetProxy = D58D6B5AAAF99338054DF3463C7F4976 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
- 2420FC6D00B02F906A005624C9C9DDD3 /* Debug */ = {
+ 222FBFBFFF3101C1F87338B97F284686 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = CAFE87CE875E3078BCE48645C88B75F9 /* Pods-Demo.debug.xcconfig */;
+ baseConfigurationReference = B3B1FE08B862EAB796DF4CF965FDAF54 /* Pods-Demo.debug.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
- DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-Demo/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Demo/Pods-Demo.modulemap";
- MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
- PRODUCT_NAME = Pods_Demo;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
@@ -398,255 +403,289 @@
};
name = Debug;
};
- 6B9709E703287E3F652067F4FA5591F6 /* Debug */ = {
+ 5323DF290A64922AB5CB91A4E36BC238 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 03C3A50FCC0801E242EEE1E2BB63D964 /* BubbleTransition.xcconfig */;
+ baseConfigurationReference = 8770613CD8D6FFEBC01B5906D0AE2C99 /* Pods-Demo.release.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ CODE_SIGN_IDENTITY = "";
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = "Target Support Files/Pods-Demo/Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 8.3;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-Demo/Pods-Demo.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 5DE9C09CABC87284BD73605CFE56B93D /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 0718F198756CC3FCF3EC3F4AAFF51E1F /* BubbleTransition.xcconfig */;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
- DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/BubbleTransition/BubbleTransition-prefix.pch";
INFOPLIST_FILE = "Target Support Files/BubbleTransition/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/BubbleTransition/BubbleTransition.modulemap";
- MTL_ENABLE_DEBUG_INFO = YES;
+ PRODUCT_MODULE_NAME = BubbleTransition;
PRODUCT_NAME = BubbleTransition;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
- 746EC849D6BB0EFB9C03A45CB781FB4F /* Debug */ = {
+ 9624079AD33B322FABE86B98652E395D /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = A76C7611A06FCD26EB4E3998E5EE9297 /* Pods-DemoTests.debug.xcconfig */;
+ baseConfigurationReference = CEE8FAC3960020923D811F92029719E4 /* Pods-DemoTests.release.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
- DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-DemoTests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-DemoTests/Pods-DemoTests.modulemap";
- MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
- PRODUCT_NAME = Pods_DemoTests;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
- name = Debug;
+ name = Release;
};
- 8DED8AD26D381A6ACFF202E5217EC498 /* Release */ = {
+ C7BE62186E17127FF3B5B27A193214BD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGNING_ALLOWED = NO;
CODE_SIGNING_REQUIRED = NO;
- COPY_PHASE_STRIP = YES;
- ENABLE_NS_ASSERTIONS = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
- "POD_CONFIGURATION_RELEASE=1",
+ "POD_CONFIGURATION_DEBUG=1",
+ "DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
- PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SYMROOT = "${SRCROOT}/../build";
- VALIDATE_PRODUCT = YES;
};
- name = Release;
+ name = Debug;
};
- 9E1E4E48AF2EAB23169E611BF694090A /* Debug */ = {
+ D077E5AF30E3A09910AC48CA760A1280 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGNING_ALLOWED = NO;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = NO;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
- "POD_CONFIGURATION_DEBUG=1",
- "DEBUG=1",
+ "POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
- ONLY_ACTIVE_ARCH = YES;
- PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
};
- name = Debug;
- };
- C1A2F49CA17DB7277C5BAB78CD45F33D /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 03C3A50FCC0801E242EEE1E2BB63D964 /* BubbleTransition.xcconfig */;
- buildSettings = {
- "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
- "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
- CURRENT_PROJECT_VERSION = 1;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEFINES_MODULE = YES;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- DYLIB_INSTALL_NAME_BASE = "@rpath";
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_PREFIX_HEADER = "Target Support Files/BubbleTransition/BubbleTransition-prefix.pch";
- INFOPLIST_FILE = "Target Support Files/BubbleTransition/Info.plist";
- INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- MODULEMAP_FILE = "Target Support Files/BubbleTransition/BubbleTransition.modulemap";
- MTL_ENABLE_DEBUG_INFO = NO;
- PRODUCT_NAME = BubbleTransition;
- SDKROOT = iphoneos;
- SKIP_INSTALL = YES;
- SWIFT_VERSION = 3.0;
- TARGETED_DEVICE_FAMILY = "1,2";
- VERSIONING_SYSTEM = "apple-generic";
- VERSION_INFO_PREFIX = "";
- };
name = Release;
};
- C90EDE42AADCB006BF4AB97E9FA2681D /* Release */ = {
+ DB155B34C5709D141E3E8FC98374488B /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 7D174BC0219B395730FF6D29969C6F9D /* Pods-DemoTests.release.xcconfig */;
+ baseConfigurationReference = 9C86746B7782939999EF488A707ED793 /* Pods-DemoTests.debug.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-DemoTests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-DemoTests/Pods-DemoTests.modulemap";
- MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
- PRODUCT_NAME = Pods_DemoTests;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
- name = Release;
+ name = Debug;
};
- C9B5CA68F4DAB54DA64CBC533EFCAC74 /* Release */ = {
+ F2A4ADC5C4778418315129A4CD4A6DCF /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 2EFE77D726F39B085A0976A2710DCC8E /* Pods-Demo.release.xcconfig */;
+ baseConfigurationReference = 0718F198756CC3FCF3EC3F4AAFF51E1F /* BubbleTransition.xcconfig */;
buildSettings = {
+ CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_NO_COMMON_BLOCKS = YES;
- INFOPLIST_FILE = "Target Support Files/Pods-Demo/Info.plist";
+ GCC_PREFIX_HEADER = "Target Support Files/BubbleTransition/BubbleTransition-prefix.pch";
+ INFOPLIST_FILE = "Target Support Files/BubbleTransition/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 8.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- MACH_O_TYPE = staticlib;
- MODULEMAP_FILE = "Target Support Files/Pods-Demo/Pods-Demo.modulemap";
- MTL_ENABLE_DEBUG_INFO = NO;
- OTHER_LDFLAGS = "";
- OTHER_LIBTOOLFLAGS = "";
- PODS_ROOT = "$(SRCROOT)";
- PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
- PRODUCT_NAME = Pods_Demo;
+ MODULEMAP_FILE = "Target Support Files/BubbleTransition/BubbleTransition.modulemap";
+ PRODUCT_MODULE_NAME = BubbleTransition;
+ PRODUCT_NAME = BubbleTransition;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
@@ -655,38 +694,38 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- 129101A10255AE6EF678510690CB0DC8 /* Build configuration list for PBXNativeTarget "Pods-DemoTests" */ = {
+ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 746EC849D6BB0EFB9C03A45CB781FB4F /* Debug */,
- C90EDE42AADCB006BF4AB97E9FA2681D /* Release */,
+ C7BE62186E17127FF3B5B27A193214BD /* Debug */,
+ D077E5AF30E3A09910AC48CA760A1280 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 1FBA4B8883A55DD6B97D6101F2707FFA /* Build configuration list for PBXNativeTarget "Pods-Demo" */ = {
+ 80A1B16222697C3079DBB028B38F7DBE /* Build configuration list for PBXNativeTarget "BubbleTransition" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 2420FC6D00B02F906A005624C9C9DDD3 /* Debug */,
- C9B5CA68F4DAB54DA64CBC533EFCAC74 /* Release */,
+ 5DE9C09CABC87284BD73605CFE56B93D /* Debug */,
+ F2A4ADC5C4778418315129A4CD4A6DCF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
+ C1B455DB3534CEED955BF4DB352B21DA /* Build configuration list for PBXNativeTarget "Pods-Demo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 9E1E4E48AF2EAB23169E611BF694090A /* Debug */,
- 8DED8AD26D381A6ACFF202E5217EC498 /* Release */,
+ 222FBFBFFF3101C1F87338B97F284686 /* Debug */,
+ 5323DF290A64922AB5CB91A4E36BC238 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- E481E9DBD0219904DB699E6812D3EE08 /* Build configuration list for PBXNativeTarget "BubbleTransition" */ = {
+ D62089A5F48E5AD84C5FF4E43C881E3F /* Build configuration list for PBXNativeTarget "Pods-DemoTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 6B9709E703287E3F652067F4FA5591F6 /* Debug */,
- C1A2F49CA17DB7277C5BAB78CD45F33D /* Release */,
+ DB155B34C5709D141E3E8FC98374488B /* Debug */,
+ 9624079AD33B322FABE86B98652E395D /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
diff --git a/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition-prefix.pch b/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition-prefix.pch
index aa992a4..beb2a24 100644
--- a/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition-prefix.pch
+++ b/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition-prefix.pch
@@ -1,4 +1,12 @@
#ifdef __OBJC__
#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
#endif
diff --git a/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition-umbrella.h b/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition-umbrella.h
index bf73a67..69fb79b 100644
--- a/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition-umbrella.h
+++ b/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition-umbrella.h
@@ -1,4 +1,14 @@
+#ifdef __OBJC__
#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
FOUNDATION_EXPORT double BubbleTransitionVersionNumber;
diff --git a/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition.xcconfig b/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition.xcconfig
index 5451687..bfb60a6 100644
--- a/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition.xcconfig
+++ b/Demo/Pods/Target Support Files/BubbleTransition/BubbleTransition.xcconfig
@@ -1,9 +1,9 @@
-CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/BubbleTransition
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BubbleTransition
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
-PODS_BUILD_DIR = $BUILD_DIR
-PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
diff --git a/Demo/Pods/Target Support Files/BubbleTransition/Info.plist b/Demo/Pods/Target Support Files/BubbleTransition/Info.plist
index 0a12077..4522675 100644
--- a/Demo/Pods/Target Support Files/BubbleTransition/Info.plist
+++ b/Demo/Pods/Target Support Files/BubbleTransition/Info.plist
@@ -15,7 +15,7 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 2.0.0
+ 3.0.0
CFBundleSignature
????
CFBundleVersion
diff --git a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh
index f4311ef..3972e4c 100755
--- a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh
+++ b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh
@@ -1,11 +1,28 @@
#!/bin/sh
set -e
+set -u
+set -o pipefail
+
+if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
+ # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
+ # frameworks to, so exit 0 (signalling the script phase was successful).
+ exit 0
+fi
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
+# Used as a return value for each invocation of `strip_invalid_archs` function.
+STRIP_BINARY_RETVAL=0
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+# Copies and strips a vendored framework
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
@@ -23,9 +40,9 @@ install_framework()
source="$(readlink "${source}")"
fi
- # use filter instead of exclude so missing patterns dont' throw errors
- echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
- rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
+ # Use filter instead of exclude so missing patterns don't throw errors.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
@@ -54,24 +71,65 @@ install_framework()
fi
}
+# Copies and strips a vendored dSYM
+install_dsym() {
+ local source="$1"
+ if [ -r "$source" ]; then
+ # Copy the dSYM into a the targets temp dir.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
+
+ local basename
+ basename="$(basename -s .framework.dSYM "$source")"
+ binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}"
+
+ # Strip invalid architectures so "fat" simulator / device frameworks work on device
+ if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then
+ strip_invalid_archs "$binary"
+ fi
+
+ if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
+ # Move the stripped file into its final destination.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
+ else
+ # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
+ touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
+ fi
+ fi
+}
+
# Signs a framework with the provided identity
code_sign_if_enabled() {
- if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
+ if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
- echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\""
- /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"
+ local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
+
+ if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ code_sign_cmd="$code_sign_cmd &"
+ fi
+ echo "$code_sign_cmd"
+ eval "$code_sign_cmd"
fi
}
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
- # Get architectures for current file
- archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
+ # Get architectures for current target binary
+ binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
+ # Intersect them with the architectures we are building for
+ intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
+ # If there are no archs supported by this binary then warn the user
+ if [[ -z "$intersected_archs" ]]; then
+ echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
+ STRIP_BINARY_RETVAL=0
+ return
+ fi
stripped=""
- for arch in $archs; do
- if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
+ for arch in $binary_archs; do
+ if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
stripped="$stripped $arch"
@@ -80,12 +138,16 @@ strip_invalid_archs() {
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
+ STRIP_BINARY_RETVAL=1
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
- install_framework "$BUILT_PRODUCTS_DIR/BubbleTransition/BubbleTransition.framework"
+ install_framework "${BUILT_PRODUCTS_DIR}/BubbleTransition/BubbleTransition.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
- install_framework "$BUILT_PRODUCTS_DIR/BubbleTransition/BubbleTransition.framework"
+ install_framework "${BUILT_PRODUCTS_DIR}/BubbleTransition/BubbleTransition.framework"
+fi
+if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ wait
fi
diff --git a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-resources.sh b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-resources.sh
index 0a15615..fe3f9c7 100755
--- a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-resources.sh
+++ b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-resources.sh
@@ -1,5 +1,13 @@
#!/bin/sh
set -e
+set -u
+set -o pipefail
+
+if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
+ # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
+ # resources to, so exit 0 (signalling the script phase was successful).
+ exit 0
+fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
@@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
XCASSET_FILES=()
-case "${TARGETED_DEVICE_FAMILY}" in
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+case "${TARGETED_DEVICE_FAMILY:-}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
@@ -18,17 +30,17 @@ case "${TARGETED_DEVICE_FAMILY}" in
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
+ 3)
+ TARGET_DEVICE_ARGS="--target-device tv"
+ ;;
+ 4)
+ TARGET_DEVICE_ARGS="--target-device watch"
+ ;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
-realpath() {
- DIRECTORY="$(cd "${1%/*}" && pwd)"
- FILENAME="${1##*/}"
- echo "$DIRECTORY/$FILENAME"
-}
-
install_resource()
{
if [[ "$1" = /* ]] ; then
@@ -44,37 +56,37 @@ EOM
fi
case $RESOURCE_PATH in
*.storyboard)
- echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
- echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
- echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
- echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
- rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
- echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
- echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
- echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
+ echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
- ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH")
+ ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
- echo "$RESOURCE_PATH"
+ echo "$RESOURCE_PATH" || true
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
@@ -88,15 +100,19 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
fi
rm -f "$RESOURCES_TO_COPY"
-if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
+if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
then
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
while read line; do
- if [[ $line != "`realpath $PODS_ROOT`*" ]]; then
+ if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
- printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ else
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_BUILD_DIR}/assetcatalog_generated_info.plist"
+ fi
fi
diff --git a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-umbrella.h b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-umbrella.h
index ad0dd7e..6ccb7f7 100644
--- a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-umbrella.h
+++ b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo-umbrella.h
@@ -1,4 +1,14 @@
+#ifdef __OBJC__
#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
FOUNDATION_EXPORT double Pods_DemoVersionNumber;
diff --git a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig
index e3a024d..a9f0346 100644
--- a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig
+++ b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig
@@ -1,11 +1,11 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
-EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
-FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BubbleTransition"
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BubbleTransition"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
-OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BubbleTransition/BubbleTransition.framework/Headers"
+OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/BubbleTransition/BubbleTransition.framework/Headers"
OTHER_LDFLAGS = $(inherited) -framework "BubbleTransition"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
-PODS_BUILD_DIR = $BUILD_DIR
-PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
diff --git a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo.release.xcconfig b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo.release.xcconfig
index e3a024d..a9f0346 100644
--- a/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo.release.xcconfig
+++ b/Demo/Pods/Target Support Files/Pods-Demo/Pods-Demo.release.xcconfig
@@ -1,11 +1,11 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
-EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
-FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BubbleTransition"
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BubbleTransition"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
-OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BubbleTransition/BubbleTransition.framework/Headers"
+OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/BubbleTransition/BubbleTransition.framework/Headers"
OTHER_LDFLAGS = $(inherited) -framework "BubbleTransition"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
-PODS_BUILD_DIR = $BUILD_DIR
-PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
diff --git a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-frameworks.sh b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-frameworks.sh
index 893c16a..08e3eaa 100755
--- a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-frameworks.sh
+++ b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-frameworks.sh
@@ -1,11 +1,28 @@
#!/bin/sh
set -e
+set -u
+set -o pipefail
+
+if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
+ # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
+ # frameworks to, so exit 0 (signalling the script phase was successful).
+ exit 0
+fi
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
+# Used as a return value for each invocation of `strip_invalid_archs` function.
+STRIP_BINARY_RETVAL=0
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+# Copies and strips a vendored framework
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
@@ -23,9 +40,9 @@ install_framework()
source="$(readlink "${source}")"
fi
- # use filter instead of exclude so missing patterns dont' throw errors
- echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
- rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
+ # Use filter instead of exclude so missing patterns don't throw errors.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
@@ -54,24 +71,65 @@ install_framework()
fi
}
+# Copies and strips a vendored dSYM
+install_dsym() {
+ local source="$1"
+ if [ -r "$source" ]; then
+ # Copy the dSYM into a the targets temp dir.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
+
+ local basename
+ basename="$(basename -s .framework.dSYM "$source")"
+ binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}"
+
+ # Strip invalid architectures so "fat" simulator / device frameworks work on device
+ if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then
+ strip_invalid_archs "$binary"
+ fi
+
+ if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
+ # Move the stripped file into its final destination.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
+ else
+ # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
+ touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
+ fi
+ fi
+}
+
# Signs a framework with the provided identity
code_sign_if_enabled() {
- if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
+ if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
- echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\""
- /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"
+ local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
+
+ if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ code_sign_cmd="$code_sign_cmd &"
+ fi
+ echo "$code_sign_cmd"
+ eval "$code_sign_cmd"
fi
}
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
- # Get architectures for current file
- archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
+ # Get architectures for current target binary
+ binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
+ # Intersect them with the architectures we are building for
+ intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
+ # If there are no archs supported by this binary then warn the user
+ if [[ -z "$intersected_archs" ]]; then
+ echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
+ STRIP_BINARY_RETVAL=0
+ return
+ fi
stripped=""
- for arch in $archs; do
- if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
+ for arch in $binary_archs; do
+ if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
stripped="$stripped $arch"
@@ -80,5 +138,9 @@ strip_invalid_archs() {
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
+ STRIP_BINARY_RETVAL=1
}
+if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ wait
+fi
diff --git a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-resources.sh b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-resources.sh
index 0a15615..fe3f9c7 100755
--- a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-resources.sh
+++ b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-resources.sh
@@ -1,5 +1,13 @@
#!/bin/sh
set -e
+set -u
+set -o pipefail
+
+if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
+ # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
+ # resources to, so exit 0 (signalling the script phase was successful).
+ exit 0
+fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
@@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
XCASSET_FILES=()
-case "${TARGETED_DEVICE_FAMILY}" in
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+case "${TARGETED_DEVICE_FAMILY:-}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
@@ -18,17 +30,17 @@ case "${TARGETED_DEVICE_FAMILY}" in
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
+ 3)
+ TARGET_DEVICE_ARGS="--target-device tv"
+ ;;
+ 4)
+ TARGET_DEVICE_ARGS="--target-device watch"
+ ;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
-realpath() {
- DIRECTORY="$(cd "${1%/*}" && pwd)"
- FILENAME="${1##*/}"
- echo "$DIRECTORY/$FILENAME"
-}
-
install_resource()
{
if [[ "$1" = /* ]] ; then
@@ -44,37 +56,37 @@ EOM
fi
case $RESOURCE_PATH in
*.storyboard)
- echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
- echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
+ echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
- echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
- echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
- rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
- echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
- echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
+ echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
- echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
+ echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
- ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH")
+ ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
- echo "$RESOURCE_PATH"
+ echo "$RESOURCE_PATH" || true
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
@@ -88,15 +100,19 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
fi
rm -f "$RESOURCES_TO_COPY"
-if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
+if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
then
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
while read line; do
- if [[ $line != "`realpath $PODS_ROOT`*" ]]; then
+ if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
- printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ else
+ printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_BUILD_DIR}/assetcatalog_generated_info.plist"
+ fi
fi
diff --git a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-umbrella.h b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-umbrella.h
index a8df38f..065f6a3 100644
--- a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-umbrella.h
+++ b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests-umbrella.h
@@ -1,4 +1,14 @@
+#ifdef __OBJC__
#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
FOUNDATION_EXPORT double Pods_DemoTestsVersionNumber;
diff --git a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests.debug.xcconfig b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests.debug.xcconfig
index 8b1315d..566aa02 100644
--- a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests.debug.xcconfig
+++ b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests.debug.xcconfig
@@ -1,6 +1,6 @@
-ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
-PODS_BUILD_DIR = $BUILD_DIR
-PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
diff --git a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests.release.xcconfig b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests.release.xcconfig
index 8b1315d..566aa02 100644
--- a/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests.release.xcconfig
+++ b/Demo/Pods/Target Support Files/Pods-DemoTests/Pods-DemoTests.release.xcconfig
@@ -1,6 +1,6 @@
-ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
-PODS_BUILD_DIR = $BUILD_DIR
-PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
diff --git a/README.md b/README.md
index 1ff8147..2d33902 100644
--- a/README.md
+++ b/README.md
@@ -101,7 +101,7 @@ Thanks to [everyone](https://github.com/andreamazz/BubbleTransition/graphs/contr
# MIT License
- Copyright (c) 2017 Andrea Mazzini. All rights reserved.
+ Copyright (c) 2018 Andrea Mazzini. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
diff --git a/Source/BubbleTransition.swift b/Source/BubbleTransition.swift
index 14690d3..7a92765 100644
--- a/Source/BubbleTransition.swift
+++ b/Source/BubbleTransition.swift
@@ -3,176 +3,176 @@
// BubbleTransition
//
// Created by Andrea Mazzini on 04/04/15.
-// Copyright (c) 2015 Fancy Pixel. All rights reserved.
+// Copyright (c) 2015-2018 Fancy Pixel. All rights reserved.
//
import UIKit
/**
A custom modal transition that presents and dismiss a controller with an expanding bubble effect.
-
+
- Prepare the transition:
```swift
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- let controller = segue.destination
- controller.transitioningDelegate = self
- controller.modalPresentationStyle = .custom
+ let controller = segue.destination
+ controller.transitioningDelegate = self
+ controller.modalPresentationStyle = .custom
}
```
- Implement UIViewControllerTransitioningDelegate:
```swift
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
- transition.transitionMode = .present
- transition.startingPoint = someButton.center
- transition.bubbleColor = someButton.backgroundColor!
- return transition
+ transition.transitionMode = .present
+ transition.startingPoint = someButton.center
+ transition.bubbleColor = someButton.backgroundColor!
+ return transition
}
-
+
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
- transition.transitionMode = .dismiss
- transition.startingPoint = someButton.center
- transition.bubbleColor = someButton.backgroundColor!
- return transition
+ transition.transitionMode = .dismiss
+ transition.startingPoint = someButton.center
+ transition.bubbleColor = someButton.backgroundColor!
+ return transition
}
```
*/
open class BubbleTransition: NSObject {
-
- /**
- The point that originates the bubble. The bubble starts from this point
- and shrinks to it on dismiss
- */
- open var startingPoint = CGPoint.zero {
- didSet {
- bubble.center = startingPoint
- }
+
+ /**
+ The point that originates the bubble. The bubble starts from this point
+ and shrinks to it on dismiss
+ */
+ open var startingPoint = CGPoint.zero {
+ didSet {
+ bubble.center = startingPoint
}
+ }
+
+ /**
+ The transition duration. The same value is used in both the Present or Dismiss actions
+ Defaults to `0.5`
+ */
+ open var duration = 0.5
+
+ /**
+ The transition direction. Possible values `.present`, `.dismiss` or `.pop`
+ Defaults to `.Present`
+ */
+ open var transitionMode: BubbleTransitionMode = .present
+
+ /**
+ The color of the bubble. Make sure that it matches the destination controller's background color.
+ */
+ open var bubbleColor: UIColor = .white
+
+ open fileprivate(set) var bubble = UIView()
+
+ /**
+ The possible directions of the transition.
+
+ - Present: For presenting a new modal controller
+ - Dismiss: For dismissing the current controller
+ - Pop: For a pop animation in a navigation controller
+ */
+ @objc public enum BubbleTransitionMode: Int {
+ case present, dismiss, pop
+ }
+}
+
+extension BubbleTransition: UIViewControllerAnimatedTransitioning {
+
+ // MARK: - UIViewControllerAnimatedTransitioning
+
+ /**
+ Required by UIViewControllerAnimatedTransitioning
+ */
+ public func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
+ return duration
+ }
+
+ /**
+ Required by UIViewControllerAnimatedTransitioning
+ */
+ public func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
- /**
- The transition duration. The same value is used in both the Present or Dismiss actions
- Defaults to `0.5`
- */
- open var duration = 0.5
+ let containerView = transitionContext.containerView
- /**
- The transition direction. Possible values `.present`, `.dismiss` or `.pop`
- Defaults to `.Present`
- */
- open var transitionMode: BubbleTransitionMode = .present
+ let fromViewController = transitionContext.viewController(forKey: .from)
+ let toViewController = transitionContext.viewController(forKey: .to)
- /**
- The color of the bubble. Make sure that it matches the destination controller's background color.
- */
- open var bubbleColor: UIColor = .white
+ fromViewController?.beginAppearanceTransition(false, animated: true)
+ toViewController?.beginAppearanceTransition(true, animated: true)
- open fileprivate(set) var bubble = UIView()
-
- /**
- The possible directions of the transition.
-
- - Present: For presenting a new modal controller
- - Dismiss: For dismissing the current controller
- - Pop: For a pop animation in a navigation controller
- */
- @objc public enum BubbleTransitionMode: Int {
- case present, dismiss, pop
- }
-}
-
-extension BubbleTransition: UIViewControllerAnimatedTransitioning {
-
- // MARK: - UIViewControllerAnimatedTransitioning
-
- /**
- Required by UIViewControllerAnimatedTransitioning
- */
- public func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
- return duration
- }
-
- /**
- Required by UIViewControllerAnimatedTransitioning
- */
- public func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
-
- let containerView = transitionContext.containerView
+ if transitionMode == .present {
+ let presentedControllerView = transitionContext.view(forKey: UITransitionContextViewKey.to)!
+ let originalCenter = presentedControllerView.center
+ let originalSize = presentedControllerView.frame.size
+
+ bubble = UIView()
+ bubble.frame = frameForBubble(originalCenter, size: originalSize, start: startingPoint)
+ bubble.layer.cornerRadius = bubble.frame.size.height / 2
+ bubble.center = startingPoint
+ bubble.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
+ bubble.backgroundColor = bubbleColor
+ containerView.addSubview(bubble)
+
+ presentedControllerView.center = startingPoint
+ presentedControllerView.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
+ presentedControllerView.alpha = 0
+ containerView.addSubview(presentedControllerView)
+
+ UIView.animate(withDuration: duration, animations: {
+ self.bubble.transform = CGAffineTransform.identity
+ presentedControllerView.transform = CGAffineTransform.identity
+ presentedControllerView.alpha = 1
+ presentedControllerView.center = originalCenter
+ }, completion: { (_) in
+ transitionContext.completeTransition(true)
+ self.bubble.isHidden = true
+ fromViewController?.endAppearanceTransition()
+ toViewController?.endAppearanceTransition()
+ })
+ } else {
+ let key = (transitionMode == .pop) ? UITransitionContextViewKey.to : UITransitionContextViewKey.from
+ let returningControllerView = transitionContext.view(forKey: key)!
+ let originalCenter = returningControllerView.center
+ let originalSize = returningControllerView.frame.size
+
+ bubble.frame = frameForBubble(originalCenter, size: originalSize, start: startingPoint)
+ bubble.layer.cornerRadius = bubble.frame.size.height / 2
+ bubble.center = startingPoint
+ bubble.isHidden = false
+
+ UIView.animate(withDuration: duration, animations: {
+ self.bubble.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
+ returningControllerView.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
+ returningControllerView.center = self.startingPoint
+ returningControllerView.alpha = 0
- let fromViewController = transitionContext.viewController(forKey: .from)
- let toViewController = transitionContext.viewController(forKey: .to)
-
- fromViewController?.beginAppearanceTransition(false, animated: true)
- toViewController?.beginAppearanceTransition(true, animated: true)
-
- if transitionMode == .present {
- let presentedControllerView = transitionContext.view(forKey: UITransitionContextViewKey.to)!
- let originalCenter = presentedControllerView.center
- let originalSize = presentedControllerView.frame.size
-
- bubble = UIView()
- bubble.frame = frameForBubble(originalCenter, size: originalSize, start: startingPoint)
- bubble.layer.cornerRadius = bubble.frame.size.height / 2
- bubble.center = startingPoint
- bubble.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
- bubble.backgroundColor = bubbleColor
- containerView.addSubview(bubble)
-
- presentedControllerView.center = startingPoint
- presentedControllerView.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
- presentedControllerView.alpha = 0
- containerView.addSubview(presentedControllerView)
-
- UIView.animate(withDuration: duration, animations: {
- self.bubble.transform = CGAffineTransform.identity
- presentedControllerView.transform = CGAffineTransform.identity
- presentedControllerView.alpha = 1
- presentedControllerView.center = originalCenter
- }, completion: { (_) in
- transitionContext.completeTransition(true)
- self.bubble.isHidden = true
- fromViewController?.endAppearanceTransition()
- toViewController?.endAppearanceTransition()
- })
- } else {
- let key = (transitionMode == .pop) ? UITransitionContextViewKey.to : UITransitionContextViewKey.from
- let returningControllerView = transitionContext.view(forKey: key)!
- let originalCenter = returningControllerView.center
- let originalSize = returningControllerView.frame.size
-
- bubble.frame = frameForBubble(originalCenter, size: originalSize, start: startingPoint)
- bubble.layer.cornerRadius = bubble.frame.size.height / 2
- bubble.center = startingPoint
- bubble.isHidden = false
-
- UIView.animate(withDuration: duration, animations: {
- self.bubble.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
- returningControllerView.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
- returningControllerView.center = self.startingPoint
- returningControllerView.alpha = 0
-
- if self.transitionMode == .pop {
- containerView.insertSubview(returningControllerView, belowSubview: returningControllerView)
- containerView.insertSubview(self.bubble, belowSubview: returningControllerView)
- }
- }, completion: { (_) in
- returningControllerView.center = originalCenter
- returningControllerView.removeFromSuperview()
- self.bubble.removeFromSuperview()
- transitionContext.completeTransition(true)
-
- fromViewController?.endAppearanceTransition()
- toViewController?.endAppearanceTransition()
- })
+ if self.transitionMode == .pop {
+ containerView.insertSubview(returningControllerView, belowSubview: returningControllerView)
+ containerView.insertSubview(self.bubble, belowSubview: returningControllerView)
}
+ }, completion: { (_) in
+ returningControllerView.center = originalCenter
+ returningControllerView.removeFromSuperview()
+ self.bubble.removeFromSuperview()
+ transitionContext.completeTransition(true)
+
+ fromViewController?.endAppearanceTransition()
+ toViewController?.endAppearanceTransition()
+ })
}
+ }
}
private extension BubbleTransition {
- func frameForBubble(_ originalCenter: CGPoint, size originalSize: CGSize, start: CGPoint) -> CGRect {
- let lengthX = fmax(start.x, originalSize.width - start.x)
- let lengthY = fmax(start.y, originalSize.height - start.y)
- let offset = sqrt(lengthX * lengthX + lengthY * lengthY) * 2
- let size = CGSize(width: offset, height: offset)
-
- return CGRect(origin: CGPoint.zero, size: size)
- }
+ func frameForBubble(_ originalCenter: CGPoint, size originalSize: CGSize, start: CGPoint) -> CGRect {
+ let lengthX = fmax(start.x, originalSize.width - start.x)
+ let lengthY = fmax(start.y, originalSize.height - start.y)
+ let offset = sqrt(lengthX * lengthX + lengthY * lengthY) * 2
+ let size = CGSize(width: offset, height: offset)
+
+ return CGRect(origin: CGPoint.zero, size: size)
+ }
}