From 033891c66ce719ec97a24e512a2e81018c67679c Mon Sep 17 00:00:00 2001 From: Ryne Cheow Date: Wed, 13 Mar 2019 11:16:17 +0800 Subject: [PATCH 1/5] Adding Carthage support (#45) Adding Carthage support by creating `MotionInterchange.framework` target with it's scheme share so that Carthage is able to find an build it's shared scheme according to what is defined in the scheme. By correctly exposing the public headers and hiding the private headers, this will also tell Xcode to build and include the correct headers available to library consumers. --- .gitignore | 1 + Info.plist | 22 + MotionInterchange.xcodeproj/project.pbxproj | 403 ++++++++++++++++++ .../xcschemes/MotionInterchange.xcscheme | 80 ++++ 4 files changed, 506 insertions(+) create mode 100644 Info.plist create mode 100644 MotionInterchange.xcodeproj/project.pbxproj create mode 100644 MotionInterchange.xcodeproj/xcshareddata/xcschemes/MotionInterchange.xcscheme diff --git a/.gitignore b/.gitignore index 3f65e1c..8884a2f 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,4 @@ fastlane/report.xml fastlane/Preview.html fastlane/screenshots fastlane/test_output +.DS_Store diff --git a/Info.plist b/Info.plist new file mode 100644 index 0000000..0e076a8 --- /dev/null +++ b/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.0.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/MotionInterchange.xcodeproj/project.pbxproj b/MotionInterchange.xcodeproj/project.pbxproj new file mode 100644 index 0000000..8535943 --- /dev/null +++ b/MotionInterchange.xcodeproj/project.pbxproj @@ -0,0 +1,403 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 6DC6507322388CE7003DBBF5 /* MDMRepetitionTraits.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6505F22388CE7003DBBF5 /* MDMRepetitionTraits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6507422388CE7003DBBF5 /* MDMRepetitionOverTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DC6506022388CE7003DBBF5 /* MDMRepetitionOverTime.m */; }; + 6DC6507522388CE7003DBBF5 /* MDMMotionCurve.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DC6506122388CE7003DBBF5 /* MDMMotionCurve.m */; }; + 6DC6507622388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DC6506222388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.m */; }; + 6DC6507722388CE7003DBBF5 /* MotionInterchange.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506322388CE7003DBBF5 /* MotionInterchange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6507822388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DC6506422388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.m */; }; + 6DC6507922388CE7003DBBF5 /* MDMSubclassingRestricted.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506522388CE7003DBBF5 /* MDMSubclassingRestricted.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6507A22388CE7003DBBF5 /* MDMRepetition.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DC6506622388CE7003DBBF5 /* MDMRepetition.m */; }; + 6DC6507B22388CE7003DBBF5 /* MDMAnimationTraits.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DC6506722388CE7003DBBF5 /* MDMAnimationTraits.m */; }; + 6DC6507C22388CE7003DBBF5 /* MDMSpringTimingCurve.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DC6506822388CE7003DBBF5 /* MDMSpringTimingCurve.m */; }; + 6DC6507D22388CE7003DBBF5 /* MDMMotionTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506922388CE7003DBBF5 /* MDMMotionTiming.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6507E22388CE7003DBBF5 /* MDMRepetitionOverTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506A22388CE7003DBBF5 /* MDMRepetitionOverTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6507F22388CE7003DBBF5 /* MDMMotionCurve.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506B22388CE7003DBBF5 /* MDMMotionCurve.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6508022388CE7003DBBF5 /* MDMTimingCurve.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506C22388CE7003DBBF5 /* MDMTimingCurve.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6508122388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506D22388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6508222388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506E22388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6508322388CE7003DBBF5 /* MDMSpringTimingCurve.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6506F22388CE7003DBBF5 /* MDMSpringTimingCurve.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6508422388CE7003DBBF5 /* MDMAnimationTraits.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6507022388CE7003DBBF5 /* MDMAnimationTraits.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6508522388CE7003DBBF5 /* MDMRepetition.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6507122388CE7003DBBF5 /* MDMRepetition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DC6508622388CE7003DBBF5 /* MDMMotionRepetition.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC6507222388CE7003DBBF5 /* MDMMotionRepetition.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 6DC6505322388CA7003DBBF5 /* MotionInterchange.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MotionInterchange.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6DC6505F22388CE7003DBBF5 /* MDMRepetitionTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMRepetitionTraits.h; sourceTree = ""; }; + 6DC6506022388CE7003DBBF5 /* MDMRepetitionOverTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDMRepetitionOverTime.m; sourceTree = ""; }; + 6DC6506122388CE7003DBBF5 /* MDMMotionCurve.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDMMotionCurve.m; sourceTree = ""; }; + 6DC6506222388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CAMediaTimingFunction+MDMTimingCurve.m"; sourceTree = ""; }; + 6DC6506322388CE7003DBBF5 /* MotionInterchange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MotionInterchange.h; sourceTree = ""; }; + 6DC6506422388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDMSpringTimingCurveGenerator.m; sourceTree = ""; }; + 6DC6506522388CE7003DBBF5 /* MDMSubclassingRestricted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMSubclassingRestricted.h; sourceTree = ""; }; + 6DC6506622388CE7003DBBF5 /* MDMRepetition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDMRepetition.m; sourceTree = ""; }; + 6DC6506722388CE7003DBBF5 /* MDMAnimationTraits.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDMAnimationTraits.m; sourceTree = ""; }; + 6DC6506822388CE7003DBBF5 /* MDMSpringTimingCurve.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDMSpringTimingCurve.m; sourceTree = ""; }; + 6DC6506922388CE7003DBBF5 /* MDMMotionTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMMotionTiming.h; sourceTree = ""; }; + 6DC6506A22388CE7003DBBF5 /* MDMRepetitionOverTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMRepetitionOverTime.h; sourceTree = ""; }; + 6DC6506B22388CE7003DBBF5 /* MDMMotionCurve.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMMotionCurve.h; sourceTree = ""; }; + 6DC6506C22388CE7003DBBF5 /* MDMTimingCurve.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMTimingCurve.h; sourceTree = ""; }; + 6DC6506D22388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMSpringTimingCurveGenerator.h; sourceTree = ""; }; + 6DC6506E22388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CAMediaTimingFunction+MDMTimingCurve.h"; sourceTree = ""; }; + 6DC6506F22388CE7003DBBF5 /* MDMSpringTimingCurve.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMSpringTimingCurve.h; sourceTree = ""; }; + 6DC6507022388CE7003DBBF5 /* MDMAnimationTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMAnimationTraits.h; sourceTree = ""; }; + 6DC6507122388CE7003DBBF5 /* MDMRepetition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMRepetition.h; sourceTree = ""; }; + 6DC6507222388CE7003DBBF5 /* MDMMotionRepetition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDMMotionRepetition.h; sourceTree = ""; }; + 6DC6508722388CFA003DBBF5 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6DC6505022388CA7003DBBF5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6DC6504922388CA7003DBBF5 = { + isa = PBXGroup; + children = ( + 6DC6505E22388CE7003DBBF5 /* src */, + 6DC6505422388CA7003DBBF5 /* Products */, + ); + sourceTree = ""; + }; + 6DC6505422388CA7003DBBF5 /* Products */ = { + isa = PBXGroup; + children = ( + 6DC6505322388CA7003DBBF5 /* MotionInterchange.framework */, + ); + name = Products; + sourceTree = ""; + }; + 6DC6505E22388CE7003DBBF5 /* src */ = { + isa = PBXGroup; + children = ( + 6DC6508722388CFA003DBBF5 /* Info.plist */, + 6DC6506E22388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.h */, + 6DC6506222388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.m */, + 6DC6507022388CE7003DBBF5 /* MDMAnimationTraits.h */, + 6DC6506722388CE7003DBBF5 /* MDMAnimationTraits.m */, + 6DC6506B22388CE7003DBBF5 /* MDMMotionCurve.h */, + 6DC6506122388CE7003DBBF5 /* MDMMotionCurve.m */, + 6DC6507222388CE7003DBBF5 /* MDMMotionRepetition.h */, + 6DC6506922388CE7003DBBF5 /* MDMMotionTiming.h */, + 6DC6507122388CE7003DBBF5 /* MDMRepetition.h */, + 6DC6506622388CE7003DBBF5 /* MDMRepetition.m */, + 6DC6506A22388CE7003DBBF5 /* MDMRepetitionOverTime.h */, + 6DC6506022388CE7003DBBF5 /* MDMRepetitionOverTime.m */, + 6DC6505F22388CE7003DBBF5 /* MDMRepetitionTraits.h */, + 6DC6506F22388CE7003DBBF5 /* MDMSpringTimingCurve.h */, + 6DC6506822388CE7003DBBF5 /* MDMSpringTimingCurve.m */, + 6DC6506D22388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.h */, + 6DC6506422388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.m */, + 6DC6506522388CE7003DBBF5 /* MDMSubclassingRestricted.h */, + 6DC6506C22388CE7003DBBF5 /* MDMTimingCurve.h */, + 6DC6506322388CE7003DBBF5 /* MotionInterchange.h */, + ); + path = src; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 6DC6504E22388CA7003DBBF5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 6DC6508322388CE7003DBBF5 /* MDMSpringTimingCurve.h in Headers */, + 6DC6507322388CE7003DBBF5 /* MDMRepetitionTraits.h in Headers */, + 6DC6508522388CE7003DBBF5 /* MDMRepetition.h in Headers */, + 6DC6508022388CE7003DBBF5 /* MDMTimingCurve.h in Headers */, + 6DC6508122388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.h in Headers */, + 6DC6508622388CE7003DBBF5 /* MDMMotionRepetition.h in Headers */, + 6DC6507F22388CE7003DBBF5 /* MDMMotionCurve.h in Headers */, + 6DC6508222388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.h in Headers */, + 6DC6507722388CE7003DBBF5 /* MotionInterchange.h in Headers */, + 6DC6507922388CE7003DBBF5 /* MDMSubclassingRestricted.h in Headers */, + 6DC6507E22388CE7003DBBF5 /* MDMRepetitionOverTime.h in Headers */, + 6DC6507D22388CE7003DBBF5 /* MDMMotionTiming.h in Headers */, + 6DC6508422388CE7003DBBF5 /* MDMAnimationTraits.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 6DC6505222388CA7003DBBF5 /* MotionInterchange */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6DC6505B22388CA7003DBBF5 /* Build configuration list for PBXNativeTarget "MotionInterchange" */; + buildPhases = ( + 6DC6504E22388CA7003DBBF5 /* Headers */, + 6DC6504F22388CA7003DBBF5 /* Sources */, + 6DC6505022388CA7003DBBF5 /* Frameworks */, + 6DC6505122388CA7003DBBF5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MotionInterchange; + productName = MotionInterchange; + productReference = 6DC6505322388CA7003DBBF5 /* MotionInterchange.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 6DC6504A22388CA7003DBBF5 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = "The Material Motion Authors"; + TargetAttributes = { + 6DC6505222388CA7003DBBF5 = { + CreatedOnToolsVersion = 10.1; + }; + }; + }; + buildConfigurationList = 6DC6504D22388CA7003DBBF5 /* Build configuration list for PBXProject "MotionInterchange" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 6DC6504922388CA7003DBBF5; + productRefGroup = 6DC6505422388CA7003DBBF5 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6DC6505222388CA7003DBBF5 /* MotionInterchange */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 6DC6505122388CA7003DBBF5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6DC6504F22388CA7003DBBF5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6DC6507B22388CE7003DBBF5 /* MDMAnimationTraits.m in Sources */, + 6DC6507522388CE7003DBBF5 /* MDMMotionCurve.m in Sources */, + 6DC6507422388CE7003DBBF5 /* MDMRepetitionOverTime.m in Sources */, + 6DC6507C22388CE7003DBBF5 /* MDMSpringTimingCurve.m in Sources */, + 6DC6507622388CE7003DBBF5 /* CAMediaTimingFunction+MDMTimingCurve.m in Sources */, + 6DC6507822388CE7003DBBF5 /* MDMSpringTimingCurveGenerator.m in Sources */, + 6DC6507A22388CE7003DBBF5 /* MDMRepetition.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 6DC6505922388CA7003DBBF5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_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_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_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + 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 = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 6DC6505A22388CA7003DBBF5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_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_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_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + 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_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 6DC6505C22388CA7003DBBF5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.material-motion.MotionInterchange"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 6DC6505D22388CA7003DBBF5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.material-motion.MotionInterchange"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6DC6504D22388CA7003DBBF5 /* Build configuration list for PBXProject "MotionInterchange" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6DC6505922388CA7003DBBF5 /* Debug */, + 6DC6505A22388CA7003DBBF5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6DC6505B22388CA7003DBBF5 /* Build configuration list for PBXNativeTarget "MotionInterchange" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6DC6505C22388CA7003DBBF5 /* Debug */, + 6DC6505D22388CA7003DBBF5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 6DC6504A22388CA7003DBBF5 /* Project object */; +} diff --git a/MotionInterchange.xcodeproj/xcshareddata/xcschemes/MotionInterchange.xcscheme b/MotionInterchange.xcodeproj/xcshareddata/xcschemes/MotionInterchange.xcscheme new file mode 100644 index 0000000..e198497 --- /dev/null +++ b/MotionInterchange.xcodeproj/xcshareddata/xcschemes/MotionInterchange.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 214695cf566c76efbe2fe95134841826561cf904 Mon Sep 17 00:00:00 2001 From: featherless Date: Mon, 5 Apr 2021 11:44:05 -0400 Subject: [PATCH 2/5] Remove bazel support. (#47) --- BUILD | 76 ------------------------------------------------------- WORKSPACE | 54 --------------------------------------- 2 files changed, 130 deletions(-) delete mode 100644 BUILD delete mode 100644 WORKSPACE diff --git a/BUILD b/BUILD deleted file mode 100644 index 97b215f..0000000 --- a/BUILD +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 2017-present The Material Motion Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Description: -# Motion interchange format. - -load("@build_bazel_rules_apple//apple:ios.bzl", "ios_ui_test") -load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") -load("@bazel_ios_warnings//:strict_warnings_objc_library.bzl", "strict_warnings_objc_library") - -licenses(["notice"]) # Apache 2.0 - -exports_files(["LICENSE"]) - -strict_warnings_objc_library( - name = "MotionInterchange", - srcs = glob([ - "src/*.m", - "src/private/*.m", - ]), - hdrs = glob([ - "src/*.h", - "src/private/*.h", - ]), - sdk_frameworks = [ - "CoreGraphics", - "Foundation", - "QuartzCore", - "UIKit", - ], - enable_modules = 1, - includes = ["src"], - visibility = ["//visibility:public"], -) - -swift_library( - name = "UnitTestsSwiftLib", - srcs = glob([ - "tests/unit/*.swift", - ]), - deps = [":MotionInterchange"], - visibility = ["//visibility:private"], - copts = ["-swift-version", "3"], -) - -objc_library( - name = "UnitTestsLib", - srcs = glob([ - "tests/unit/*.m", - ]), - deps = [":MotionInterchange"], - visibility = ["//visibility:private"], -) - -ios_ui_test( - name = "UnitTests", - deps = [ - ":UnitTestsLib", - ":UnitTestsSwiftLib" - ], - test_host = "@build_bazel_rules_apple//apple/testing/default_host/ios", - minimum_os_version = "9.0", - timeout = "short", - visibility = ["//visibility:private"], -) diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index e015fa8..0000000 --- a/WORKSPACE +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 2017-present The Material Motion Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file") - -git_repository( - name = "build_bazel_rules_apple", - remote = "https://github.com/bazelbuild/rules_apple.git", - tag = "0.9.0", -) - -load( - "@build_bazel_rules_apple//apple:repositories.bzl", - "apple_rules_dependencies", -) - -apple_rules_dependencies() - -git_repository( - name = "build_bazel_rules_swift", - remote = "https://github.com/bazelbuild/rules_swift.git", - tag = "0.4.0", -) - -load( - "@build_bazel_rules_swift//swift:repositories.bzl", - "swift_rules_dependencies", -) - -swift_rules_dependencies() - -git_repository( - name = "bazel_ios_warnings", - remote = "https://github.com/material-foundation/bazel_ios_warnings.git", - tag = "v3.0.0", -) - -http_file( - name = "xctestrunner", - executable = 1, - urls = ["https://github.com/google/xctestrunner/releases/download/0.2.5/ios_test_runner.par"], -) From 09d46c46191dbc7ce4304952b3658a4644284d6b Mon Sep 17 00:00:00 2001 From: featherless Date: Mon, 5 Apr 2021 14:39:12 -0400 Subject: [PATCH 3/5] Upgrade to Swift 5 and min OS of iOS 10. (#48) --- .travis.yml | 15 ++-- Podfile.lock | 12 ++- .../apps/Catalog/Catalog/AppDelegate.swift | 2 +- .../project.pbxproj | 53 ++--------- .../Catalog/TestHarness/AppDelegate.swift | 2 +- .../supplemental/ExampleViewController.swift | 2 +- .../supplemental/ModalViewController.swift | 2 +- tests/unit/MDMAnimationTraitsTests.swift | 90 +++++++++---------- 8 files changed, 72 insertions(+), 106 deletions(-) diff --git a/.travis.yml b/.travis.yml index b707da4..39e2af1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ language: objective-c -osx_image: xcode9.2 sudo: false env: global: @@ -8,15 +7,13 @@ env: - LANGUAGE=en_US.UTF-8 matrix: include: - - osx_image: xcode9.2 - env: COVERAGE=code_coverage SDK="iphonesimulator11.2" DESTINATION="name=iPhone 6s,OS=11.2" - - osx_image: xcode9.2 - env: SDK="iphonesimulator11.2" DESTINATION="name=iPhone 6s,OS=10.3.1" - - osx_image: xcode9.2 - env: SDK="iphonesimulator11.2" DESTINATION="name=iPhone 6s,OS=9.3" + - osx_image: xcode12.2 + env: COVERAGE=code_coverage SDK="iphonesimulator14.2" DESTINATION="name=iPhone 6s,OS=11.4" + - osx_image: xcode12.2 + env: SDK="iphonesimulator14.2" DESTINATION="name=iPhone 6s,OS=10.3.1" before_install: - - gem install cocoapods --no-rdoc --no-ri --no-document --quiet - - pod install + - gem install cocoapods --no-document --quiet + - pod install --repo-update script: - set -o pipefail - xcodebuild test -workspace MotionInterchange.xcworkspace -scheme MotionInterchangeCatalog -sdk "$SDK" -destination "$DESTINATION" -enableCodeCoverage YES ONLY_ACTIVE_ARCH=YES | xcpretty -c; diff --git a/Podfile.lock b/Podfile.lock index 9a7416b..74a83b6 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,19 +1,23 @@ PODS: - CatalogByConvention (2.1.1) - - MotionInterchange (1.6.0) + - MotionInterchange (3.0.0) DEPENDENCIES: - CatalogByConvention - MotionInterchange (from `./`) +SPEC REPOS: + trunk: + - CatalogByConvention + EXTERNAL SOURCES: MotionInterchange: - :path: ./ + :path: "./" SPEC CHECKSUMS: CatalogByConvention: c3a5319de04250a7cd4649127fcfca5fe3322a43 - MotionInterchange: ead0e3ae1f3a5fb539e289debbc7ae036160a10d + MotionInterchange: 13adae439b377e31d1674cc165539d50e1d1566a PODFILE CHECKSUM: 09090d12db5aab00a13fe82da94f338ebd03f5dc -COCOAPODS: 1.3.1 +COCOAPODS: 1.9.3 diff --git a/examples/apps/Catalog/Catalog/AppDelegate.swift b/examples/apps/Catalog/Catalog/AppDelegate.swift index 746dbbd..8a34375 100644 --- a/examples/apps/Catalog/Catalog/AppDelegate.swift +++ b/examples/apps/Catalog/Catalog/AppDelegate.swift @@ -22,7 +22,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { let window = UIWindow(frame: UIScreen.main.bounds) self.window = window diff --git a/examples/apps/Catalog/MotionInterchangeCatalog.xcodeproj/project.pbxproj b/examples/apps/Catalog/MotionInterchangeCatalog.xcodeproj/project.pbxproj index 0738666..6414d49 100644 --- a/examples/apps/Catalog/MotionInterchangeCatalog.xcodeproj/project.pbxproj +++ b/examples/apps/Catalog/MotionInterchangeCatalog.xcodeproj/project.pbxproj @@ -247,7 +247,6 @@ 666FAA7E1D384A6B000363DA /* Resources */, C66018A26BDD7D837DD6CD15 /* Frameworks */, 6F2E0157972A4B89BCF07CC2 /* [CP] Embed Pods Frameworks */, - 502E39A7782CDCBA134C6722 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -267,7 +266,6 @@ 666FAA921D384A6B000363DA /* Resources */, 332A8331E0EC6D8F04094814 /* Frameworks */, 53ACBAF46FD02B7AB8ED0D91 /* [CP] Embed Pods Frameworks */, - B7150A802D70B33666362149 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -327,6 +325,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -371,28 +370,13 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 502E39A7782CDCBA134C6722 /* [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-MotionInterchangeCatalog/Pods-MotionInterchangeCatalog-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 53ACBAF46FD02B7AB8ED0D91 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${SRCROOT}/../../../Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh", "${BUILT_PRODUCTS_DIR}/MotionInterchange/MotionInterchange.framework", ); name = "[CP] Embed Pods Frameworks"; @@ -401,7 +385,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../../Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 6F2E0157972A4B89BCF07CC2 /* [CP] Embed Pods Frameworks */ = { @@ -410,7 +394,7 @@ files = ( ); inputPaths = ( - "${SRCROOT}/../../../Pods/Target Support Files/Pods-MotionInterchangeCatalog/Pods-MotionInterchangeCatalog-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-MotionInterchangeCatalog/Pods-MotionInterchangeCatalog-frameworks.sh", "${BUILT_PRODUCTS_DIR}/CatalogByConvention/CatalogByConvention.framework", "${BUILT_PRODUCTS_DIR}/MotionInterchange/MotionInterchange.framework", ); @@ -421,7 +405,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../../../Pods/Target Support Files/Pods-MotionInterchangeCatalog/Pods-MotionInterchangeCatalog-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MotionInterchangeCatalog/Pods-MotionInterchangeCatalog-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 7217205949F9D16DFCD7898B /* [CP] Check Pods Manifest.lock */ = { @@ -460,21 +444,6 @@ 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; }; - B7150A802D70B33666362149 /* [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-UnitTests/Pods-UnitTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -596,11 +565,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -644,9 +614,10 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -663,7 +634,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.google.Catalog; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -678,7 +648,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.google.Catalog; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; }; name = Release; }; @@ -694,7 +663,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.google.CatalogTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TestHarness.app/TestHarness"; }; name = Debug; @@ -711,7 +679,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.google.CatalogTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TestHarness.app/TestHarness"; }; name = Release; @@ -728,7 +695,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.google.TestHarness; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -744,7 +710,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.google.TestHarness; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; }; name = Release; }; diff --git a/examples/apps/Catalog/TestHarness/AppDelegate.swift b/examples/apps/Catalog/TestHarness/AppDelegate.swift index 95b687c..60ab344 100644 --- a/examples/apps/Catalog/TestHarness/AppDelegate.swift +++ b/examples/apps/Catalog/TestHarness/AppDelegate.swift @@ -21,7 +21,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { let window = UIWindow(frame: UIScreen.main.bounds) self.window = window window.rootViewController = UINavigationController(rootViewController: UIViewController()) diff --git a/examples/supplemental/ExampleViewController.swift b/examples/supplemental/ExampleViewController.swift index 095a771..8ab9780 100644 --- a/examples/supplemental/ExampleViewController.swift +++ b/examples/supplemental/ExampleViewController.swift @@ -53,7 +53,7 @@ class ExampleTableViewController: UITableViewController { self.init(style: .plain) } - override init(style: UITableViewStyle) { + override init(style: UITableView.Style) { super.init(style: style) self.title = exampleInformation().title diff --git a/examples/supplemental/ModalViewController.swift b/examples/supplemental/ModalViewController.swift index 8fb078a..e1d62b1 100644 --- a/examples/supplemental/ModalViewController.swift +++ b/examples/supplemental/ModalViewController.swift @@ -38,7 +38,7 @@ class ModalViewController: ExampleViewController { return .lightContent } - func didTap() { + @objc func didTap() { dismiss(animated: true) } } diff --git a/tests/unit/MDMAnimationTraitsTests.swift b/tests/unit/MDMAnimationTraitsTests.swift index 879a24e..18d6986 100644 --- a/tests/unit/MDMAnimationTraitsTests.swift +++ b/tests/unit/MDMAnimationTraitsTests.swift @@ -22,15 +22,15 @@ class MDMAnimationTraitsTests: XCTestCase { func testInitializerValuesWithDuration() { let traits = MDMAnimationTraits(duration: 0.5) - XCTAssertEqualWithAccuracy(traits.duration, 0.5, accuracy: 0.001) - XCTAssertEqualWithAccuracy(traits.delay, 0, accuracy: 0.001) + XCTAssertEqual(traits.duration, 0.5, accuracy: 0.001) + XCTAssertEqual(traits.delay, 0, accuracy: 0.001) XCTAssertTrue(traits.timingCurve is CAMediaTimingFunction) if let timingCurve = traits.timingCurve as? CAMediaTimingFunction { - let easeInOut = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point1.x, easeInOut.mdm_point1.x, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point1.y, easeInOut.mdm_point1.y, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point2.x, easeInOut.mdm_point2.x, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point2.y, easeInOut.mdm_point2.y, accuracy: 0.001) + let easeInOut = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut) + XCTAssertEqual(timingCurve.mdm_point1.x, easeInOut.mdm_point1.x, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point1.y, easeInOut.mdm_point1.y, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point2.x, easeInOut.mdm_point2.x, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point2.y, easeInOut.mdm_point2.y, accuracy: 0.001) } XCTAssertNil(traits.repetition) } @@ -38,15 +38,15 @@ class MDMAnimationTraitsTests: XCTestCase { func testInitializerValuesWithDurationAndEaseInCurve() { let traits = MDMAnimationTraits(duration: 0.5, animationCurve: .easeIn) - XCTAssertEqualWithAccuracy(traits.duration, 0.5, accuracy: 0.001) - XCTAssertEqualWithAccuracy(traits.delay, 0, accuracy: 0.001) + XCTAssertEqual(traits.duration, 0.5, accuracy: 0.001) + XCTAssertEqual(traits.delay, 0, accuracy: 0.001) XCTAssertTrue(traits.timingCurve is CAMediaTimingFunction) if let timingCurve = traits.timingCurve as? CAMediaTimingFunction { - let easeInOut = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point1.x, easeInOut.mdm_point1.x, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point1.y, easeInOut.mdm_point1.y, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point2.x, easeInOut.mdm_point2.x, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point2.y, easeInOut.mdm_point2.y, accuracy: 0.001) + let easeInOut = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeIn) + XCTAssertEqual(timingCurve.mdm_point1.x, easeInOut.mdm_point1.x, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point1.y, easeInOut.mdm_point1.y, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point2.x, easeInOut.mdm_point2.x, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point2.y, easeInOut.mdm_point2.y, accuracy: 0.001) } XCTAssertNil(traits.repetition) } @@ -54,15 +54,15 @@ class MDMAnimationTraitsTests: XCTestCase { func testInitializerValuesWithDurationDelay() { let traits = MDMAnimationTraits(delay: 0.2, duration: 0.5) - XCTAssertEqualWithAccuracy(traits.duration, 0.5, accuracy: 0.001) - XCTAssertEqualWithAccuracy(traits.delay, 0.2, accuracy: 0.001) + XCTAssertEqual(traits.duration, 0.5, accuracy: 0.001) + XCTAssertEqual(traits.delay, 0.2, accuracy: 0.001) XCTAssertTrue(traits.timingCurve is CAMediaTimingFunction) if let timingCurve = traits.timingCurve as? CAMediaTimingFunction { - let easeInOut = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point1.x, easeInOut.mdm_point1.x, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point1.y, easeInOut.mdm_point1.y, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point2.x, easeInOut.mdm_point2.x, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point2.y, easeInOut.mdm_point2.y, accuracy: 0.001) + let easeInOut = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut) + XCTAssertEqual(timingCurve.mdm_point1.x, easeInOut.mdm_point1.x, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point1.y, easeInOut.mdm_point1.y, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point2.x, easeInOut.mdm_point2.x, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point2.y, easeInOut.mdm_point2.y, accuracy: 0.001) } XCTAssertNil(traits.repetition) } @@ -70,24 +70,24 @@ class MDMAnimationTraitsTests: XCTestCase { func testInitializerValuesWithDurationDelayNilTimingCurve() { let traits = MDMAnimationTraits(delay: 0.2, duration: 0.5, timingCurve: nil) - XCTAssertEqualWithAccuracy(traits.duration, 0.5, accuracy: 0.001) - XCTAssertEqualWithAccuracy(traits.delay, 0.2, accuracy: 0.001) + XCTAssertEqual(traits.duration, 0.5, accuracy: 0.001) + XCTAssertEqual(traits.delay, 0.2, accuracy: 0.001) XCTAssertNil(traits.timingCurve) XCTAssertNil(traits.repetition) } func testInitializerValuesWithDurationDelayLinearTimingCurve() { - let linear = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear) + let linear = CAMediaTimingFunction(name: CAMediaTimingFunctionName.linear) let traits = MDMAnimationTraits(delay: 0.2, duration: 0.5, timingCurve: linear) - XCTAssertEqualWithAccuracy(traits.duration, 0.5, accuracy: 0.001) - XCTAssertEqualWithAccuracy(traits.delay, 0.2, accuracy: 0.001) + XCTAssertEqual(traits.duration, 0.5, accuracy: 0.001) + XCTAssertEqual(traits.delay, 0.2, accuracy: 0.001) XCTAssertTrue(traits.timingCurve is CAMediaTimingFunction) if let timingCurve = traits.timingCurve as? CAMediaTimingFunction { - XCTAssertEqualWithAccuracy(timingCurve.mdm_point1.x, linear.mdm_point1.x, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point1.y, linear.mdm_point1.y, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point2.x, linear.mdm_point2.x, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.mdm_point2.y, linear.mdm_point2.y, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point1.x, linear.mdm_point1.x, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point1.y, linear.mdm_point1.y, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point2.x, linear.mdm_point2.x, accuracy: 0.001) + XCTAssertEqual(timingCurve.mdm_point2.y, linear.mdm_point2.y, accuracy: 0.001) } XCTAssertNil(traits.repetition) } @@ -96,14 +96,14 @@ class MDMAnimationTraitsTests: XCTestCase { let spring = MDMSpringTimingCurve(mass: 0.7, tension: 0.8, friction: 0.9) let traits = MDMAnimationTraits(delay: 0.2, duration: 0.5, timingCurve: spring) - XCTAssertEqualWithAccuracy(traits.duration, 0.5, accuracy: 0.001) - XCTAssertEqualWithAccuracy(traits.delay, 0.2, accuracy: 0.001) + XCTAssertEqual(traits.duration, 0.5, accuracy: 0.001) + XCTAssertEqual(traits.delay, 0.2, accuracy: 0.001) XCTAssertTrue(traits.timingCurve is MDMSpringTimingCurve) if let timingCurve = traits.timingCurve as? MDMSpringTimingCurve { - XCTAssertEqualWithAccuracy(timingCurve.mass, spring.mass, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.friction, spring.friction, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.tension, spring.tension, accuracy: 0.001) - XCTAssertEqualWithAccuracy(timingCurve.initialVelocity, spring.initialVelocity, + XCTAssertEqual(timingCurve.mass, spring.mass, accuracy: 0.001) + XCTAssertEqual(timingCurve.friction, spring.friction, accuracy: 0.001) + XCTAssertEqual(timingCurve.tension, spring.tension, accuracy: 0.001) + XCTAssertEqual(timingCurve.initialVelocity, spring.initialVelocity, accuracy: 0.001) } XCTAssertNil(traits.repetition) @@ -116,12 +116,12 @@ class MDMAnimationTraitsTests: XCTestCase { timingCurve: nil, repetition: repetition) - XCTAssertEqualWithAccuracy(traits.duration, 0.5, accuracy: 0.001) - XCTAssertEqualWithAccuracy(traits.delay, 0.2, accuracy: 0.001) + XCTAssertEqual(traits.duration, 0.5, accuracy: 0.001) + XCTAssertEqual(traits.delay, 0.2, accuracy: 0.001) XCTAssertNil(traits.timingCurve) XCTAssertTrue(traits.repetition is MDMRepetition) if let setRepetition = traits.repetition as? MDMRepetition { - XCTAssertEqualWithAccuracy(setRepetition.numberOfRepetitions, repetition.numberOfRepetitions, + XCTAssertEqual(setRepetition.numberOfRepetitions, repetition.numberOfRepetitions, accuracy: 0.001) XCTAssertEqual(setRepetition.autoreverses, repetition.autoreverses) } @@ -144,10 +144,10 @@ class MDMAnimationTraitsTests: XCTestCase { springCopy.mass = springCopy.mass + 1 springCopy.initialVelocity = springCopy.initialVelocity + 1 - XCTAssertNotEqualWithAccuracy(springCopy.friction, spring.friction, 0.001) - XCTAssertNotEqualWithAccuracy(springCopy.tension, spring.tension, 0.001) - XCTAssertNotEqualWithAccuracy(springCopy.mass, spring.mass, 0.001) - XCTAssertNotEqualWithAccuracy(springCopy.initialVelocity, spring.initialVelocity, 0.001) + XCTAssertNotEqual(springCopy.friction, spring.friction, accuracy: 0.001) + XCTAssertNotEqual(springCopy.tension, spring.tension, accuracy: 0.001) + XCTAssertNotEqual(springCopy.mass, spring.mass, accuracy: 0.001) + XCTAssertNotEqual(springCopy.initialVelocity, spring.initialVelocity, accuracy: 0.001) } if let repetitionCopy = copy.repetition as? MDMRepetition { repetitionCopy.autoreverses = !repetitionCopy.autoreverses @@ -157,7 +157,7 @@ class MDMAnimationTraitsTests: XCTestCase { XCTAssertNotEqual(repetitionCopy.numberOfRepetitions, repetition.numberOfRepetitions) } - XCTAssertNotEqualWithAccuracy(copy.duration, traits.duration, 0.001) - XCTAssertNotEqualWithAccuracy(copy.delay, traits.delay, 0.001) + XCTAssertNotEqual(copy.duration, traits.duration, accuracy: 0.001) + XCTAssertNotEqual(copy.delay, traits.delay, accuracy: 0.001) } } From 8b9ae38296f3a7e4b346aeda007f6da9aa543708 Mon Sep 17 00:00:00 2001 From: Jeff Verkoeyen Date: Mon, 5 Apr 2021 18:21:27 -0400 Subject: [PATCH 4/5] Update changelog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45aa6a8..4f21daf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 4.0.0 + +This major release drops official support for Bazel and iOS 9. + # 3.0.0 This major release drops official support for iOS 8. From ba7b6bf49c3cc31a9f4b6d0241781ee56877ecb0 Mon Sep 17 00:00:00 2001 From: Jeff Verkoeyen Date: Mon, 5 Apr 2021 18:22:01 -0400 Subject: [PATCH 5/5] Bump the version to 4.0.0. --- MotionInterchange.podspec | 2 +- Podfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MotionInterchange.podspec b/MotionInterchange.podspec index e51b954..fb0769e 100644 --- a/MotionInterchange.podspec +++ b/MotionInterchange.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "MotionInterchange" s.summary = "Motion interchange format." - s.version = "3.0.0" + s.version = "4.0.0" s.authors = "The Material Motion Authors" s.license = "Apache 2.0" s.homepage = "https://github.com/material-motion/motion-interchange-objc" diff --git a/Podfile.lock b/Podfile.lock index 74a83b6..b681f9f 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,6 +1,6 @@ PODS: - CatalogByConvention (2.1.1) - - MotionInterchange (3.0.0) + - MotionInterchange (4.0.0) DEPENDENCIES: - CatalogByConvention @@ -16,7 +16,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: CatalogByConvention: c3a5319de04250a7cd4649127fcfca5fe3322a43 - MotionInterchange: 13adae439b377e31d1674cc165539d50e1d1566a + MotionInterchange: 61f6994d1fe915b931e8751e3f86098729580b6c PODFILE CHECKSUM: 09090d12db5aab00a13fe82da94f338ebd03f5dc