diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/FDFullscreenPopGesture/include/UINavigationController+FDFullscreenPopGesture.h b/FDFullscreenPopGesture/include/UINavigationController+FDFullscreenPopGesture.h new file mode 100644 index 0000000..1be8de7 --- /dev/null +++ b/FDFullscreenPopGesture/include/UINavigationController+FDFullscreenPopGesture.h @@ -0,0 +1,62 @@ +// The MIT License (MIT) +// +// Copyright (c) 2015-2016 forkingdog ( https://github.com/forkingdog ) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +#import + +/// "UINavigation+FDFullscreenPopGesture" extends UINavigationController's swipe- +/// to-pop behavior in iOS 7+ by supporting fullscreen pan gesture. Instead of +/// screen edge, you can now swipe from any place on the screen and the onboard +/// interactive pop transition works seamlessly. +/// +/// Adding the implementation file of this category to your target will +/// automatically patch UINavigationController with this feature. +@interface UINavigationController (FDFullscreenPopGesture) + +/// The gesture recognizer that actually handles interactive pop. +@property (nonatomic, strong, readonly) UIPanGestureRecognizer *fd_fullscreenPopGestureRecognizer; + +/// A view controller is able to control navigation bar's appearance by itself, +/// rather than a global way, checking "fd_prefersNavigationBarHidden" property. +/// Default to YES, disable it if you don't want so. +@property (nonatomic, assign) BOOL fd_viewControllerBasedNavigationBarAppearanceEnabled; + +@end + +/// Allows any view controller to disable interactive pop gesture, which might +/// be necessary when the view controller itself handles pan gesture in some +/// cases. +@interface UIViewController (FDFullscreenPopGesture) + +/// Whether the interactive pop gesture is disabled when contained in a navigation +/// stack. +@property (nonatomic, assign) BOOL fd_interactivePopDisabled; + +/// Indicate this view controller prefers its navigation bar hidden or not, +/// checked when view controller based navigation bar's appearance is enabled. +/// Default to NO, bars are more likely to show. +@property (nonatomic, assign) BOOL fd_prefersNavigationBarHidden; + +/// Max allowed initial distance to left edge when you begin the interactive pop +/// gesture. 0 by default, which means it will ignore this limit. +@property (nonatomic, assign) CGFloat fd_interactivePopMaxAllowedInitialDistanceToLeftEdge; + +@end diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/FDFullscreenPopGesture.h b/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/FDFullscreenPopGesture.h new file mode 100644 index 0000000..0af8891 --- /dev/null +++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/FDFullscreenPopGesture.h @@ -0,0 +1,21 @@ +// +// FDFullscreenPopGesture.h +// FDFullscreenPopGesture +// +// Created by janlionly on 2019/8/20. +// Copyright © 2019 forkingdog. All rights reserved. +// + +#import + +//! Project version number for FDFullscreenPopGesture. +FOUNDATION_EXPORT double FDFullscreenPopGestureVersionNumber; + +//! Project version string for FDFullscreenPopGesture. +FOUNDATION_EXPORT const unsigned char FDFullscreenPopGestureVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#if __has_include("UINavigationController+FDFullscreenPopGesture.h") +#import +#endif diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/Info.plist b/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/Info.plist new file mode 100644 index 0000000..e1fe4cf --- /dev/null +++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGesture/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 + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.pbxproj b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.pbxproj index 0f24f55..42ea564 100644 --- a/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.pbxproj +++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.pbxproj @@ -8,6 +8,11 @@ /* Begin PBXBuildFile section */ 140C9FF71DAF688C008260D6 /* FDDemoScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C9FF61DAF688C008260D6 /* FDDemoScrollView.m */; }; + 2720C7E5230B874600A24F09 /* FDFullscreenPopGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = 2720C7E3230B874600A24F09 /* FDFullscreenPopGesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2720C7E8230B874600A24F09 /* FDFullscreenPopGesture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */; }; + 2720C7E9230B874600A24F09 /* FDFullscreenPopGesture.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 2720C7EE230B880F00A24F09 /* UINavigationController+FDFullscreenPopGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = 4894F4441B183E99009F44D9 /* UINavigationController+FDFullscreenPopGesture.m */; }; + 2720C7EF230B881700A24F09 /* UINavigationController+FDFullscreenPopGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = 4894F4451B183E99009F44D9 /* UINavigationController+FDFullscreenPopGesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4894F4201B183DE3009F44D9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4894F41F1B183DE3009F44D9 /* main.m */; }; 4894F4231B183DE3009F44D9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4894F4221B183DE3009F44D9 /* AppDelegate.m */; }; 4894F4291B183DE3009F44D9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4894F4271B183DE3009F44D9 /* Main.storyboard */; }; @@ -16,9 +21,36 @@ 4894F4461B183E99009F44D9 /* UINavigationController+FDFullscreenPopGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = 4894F4441B183E99009F44D9 /* UINavigationController+FDFullscreenPopGesture.m */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 2720C7E6230B874600A24F09 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4894F4121B183DE3009F44D9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2720C7E0230B874600A24F09; + remoteInfo = FDFullscreenPopGesture; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 2720C7ED230B874600A24F09 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 2720C7E9230B874600A24F09 /* FDFullscreenPopGesture.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 140C9FF51DAF688C008260D6 /* FDDemoScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FDDemoScrollView.h; sourceTree = ""; }; 140C9FF61DAF688C008260D6 /* FDDemoScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FDDemoScrollView.m; sourceTree = ""; }; + 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FDFullscreenPopGesture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2720C7E3230B874600A24F09 /* FDFullscreenPopGesture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FDFullscreenPopGesture.h; sourceTree = ""; }; + 2720C7E4230B874600A24F09 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 4894F41A1B183DE3009F44D9 /* FDFullscreenPopGestureDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FDFullscreenPopGestureDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 4894F41E1B183DE3009F44D9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 4894F41F1B183DE3009F44D9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; @@ -32,20 +64,38 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 2720C7DE230B874600A24F09 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4894F4171B183DE3009F44D9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 2720C7E8230B874600A24F09 /* FDFullscreenPopGesture.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 2720C7E2230B874600A24F09 /* FDFullscreenPopGesture */ = { + isa = PBXGroup; + children = ( + 2720C7E3230B874600A24F09 /* FDFullscreenPopGesture.h */, + 2720C7E4230B874600A24F09 /* Info.plist */, + ); + path = FDFullscreenPopGesture; + sourceTree = ""; + }; 4894F4111B183DE3009F44D9 = { isa = PBXGroup; children = ( 4894F41C1B183DE3009F44D9 /* FDFullscreenPopGestureDemo */, + 2720C7E2230B874600A24F09 /* FDFullscreenPopGesture */, 4894F41B1B183DE3009F44D9 /* Products */, ); sourceTree = ""; @@ -54,6 +104,7 @@ isa = PBXGroup; children = ( 4894F41A1B183DE3009F44D9 /* FDFullscreenPopGestureDemo.app */, + 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */, ); name = Products; sourceTree = ""; @@ -95,7 +146,37 @@ }; /* End PBXGroup section */ +/* Begin PBXHeadersBuildPhase section */ + 2720C7DC230B874600A24F09 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2720C7E5230B874600A24F09 /* FDFullscreenPopGesture.h in Headers */, + 2720C7EF230B881700A24F09 /* UINavigationController+FDFullscreenPopGesture.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + /* Begin PBXNativeTarget section */ + 2720C7E0230B874600A24F09 /* FDFullscreenPopGesture */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2720C7EC230B874600A24F09 /* Build configuration list for PBXNativeTarget "FDFullscreenPopGesture" */; + buildPhases = ( + 2720C7DC230B874600A24F09 /* Headers */, + 2720C7DD230B874600A24F09 /* Sources */, + 2720C7DE230B874600A24F09 /* Frameworks */, + 2720C7DF230B874600A24F09 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FDFullscreenPopGesture; + productName = FDFullscreenPopGesture; + productReference = 2720C7E1230B874600A24F09 /* FDFullscreenPopGesture.framework */; + productType = "com.apple.product-type.framework"; + }; 4894F4191B183DE3009F44D9 /* FDFullscreenPopGestureDemo */ = { isa = PBXNativeTarget; buildConfigurationList = 4894F43D1B183DE3009F44D9 /* Build configuration list for PBXNativeTarget "FDFullscreenPopGestureDemo" */; @@ -103,10 +184,12 @@ 4894F4161B183DE3009F44D9 /* Sources */, 4894F4171B183DE3009F44D9 /* Frameworks */, 4894F4181B183DE3009F44D9 /* Resources */, + 2720C7ED230B874600A24F09 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( + 2720C7E7230B874600A24F09 /* PBXTargetDependency */, ); name = FDFullscreenPopGestureDemo; productName = FDFullscreenPopGestureDemo; @@ -122,9 +205,14 @@ LastUpgradeCheck = 0800; ORGANIZATIONNAME = forkingdog; TargetAttributes = { + 2720C7E0230B874600A24F09 = { + CreatedOnToolsVersion = 10.3; + ProvisioningStyle = Automatic; + }; 4894F4191B183DE3009F44D9 = { CreatedOnToolsVersion = 6.3.1; - DevelopmentTeam = K5ZWWSV295; + DevelopmentTeam = A73XC757VV; + ProvisioningStyle = Automatic; }; }; }; @@ -133,6 +221,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -142,11 +231,19 @@ projectRoot = ""; targets = ( 4894F4191B183DE3009F44D9 /* FDFullscreenPopGestureDemo */, + 2720C7E0230B874600A24F09 /* FDFullscreenPopGesture */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 2720C7DF230B874600A24F09 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4894F4181B183DE3009F44D9 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -160,6 +257,14 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 2720C7DD230B874600A24F09 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2720C7EE230B880F00A24F09 /* UINavigationController+FDFullscreenPopGesture.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 4894F4161B183DE3009F44D9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -173,6 +278,14 @@ }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 2720C7E7230B874600A24F09 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 2720C7E0230B874600A24F09 /* FDFullscreenPopGesture */; + targetProxy = 2720C7E6230B874600A24F09 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin PBXVariantGroup section */ 4894F4271B183DE3009F44D9 /* Main.storyboard */ = { isa = PBXVariantGroup; @@ -193,6 +306,90 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 2720C7EA230B874600A24F09 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = FDFullscreenPopGesture/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.janlion.FDFullscreenPopGesture; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 2720C7EB230B874600A24F09 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = FDFullscreenPopGesture/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.janlion.FDFullscreenPopGesture; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 4894F43B1B183DE3009F44D9 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -282,11 +479,14 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = K5ZWWSV295; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = A73XC757VV; INFOPLIST_FILE = FDFullscreenPopGestureDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.afantree.FDFullscreenPopGestureDemo; + PRODUCT_BUNDLE_IDENTIFIER = com.janlion.FDFullscreenPopGestureDemo; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; }; name = Debug; }; @@ -294,17 +494,29 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = K5ZWWSV295; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = A73XC757VV; INFOPLIST_FILE = FDFullscreenPopGestureDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.afantree.FDFullscreenPopGestureDemo; + PRODUCT_BUNDLE_IDENTIFIER = com.janlion.FDFullscreenPopGestureDemo; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 2720C7EC230B874600A24F09 /* Build configuration list for PBXNativeTarget "FDFullscreenPopGesture" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2720C7EA230B874600A24F09 /* Debug */, + 2720C7EB230B874600A24F09 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 4894F4151B183DE3009F44D9 /* Build configuration list for PBXProject "FDFullscreenPopGestureDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/xcshareddata/xcschemes/FDFullscreenPopGesture.xcscheme b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/xcshareddata/xcschemes/FDFullscreenPopGesture.xcscheme new file mode 100644 index 0000000..39faea0 --- /dev/null +++ b/FDFullscreenPopGestureDemo/FDFullscreenPopGestureDemo.xcodeproj/xcshareddata/xcschemes/FDFullscreenPopGesture.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..282d0be --- /dev/null +++ b/Package.swift @@ -0,0 +1,29 @@ +// swift-tools-version:5.2 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "FDFullscreenPopGesture", + products: [ + // Products define the executables and libraries produced by a package, and make them visible to other packages. + .library( + name: "FDFullscreenPopGesture", + targets: ["FDFullscreenPopGesture"]), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages which this package depends on. + .target( + name: "FDFullscreenPopGesture", + dependencies: [], + path: "FDFullscreenPopGesture"), + .testTarget( + name: "FDFullscreenPopGestureTests", + dependencies: ["FDFullscreenPopGesture"]), + ] +) diff --git a/README.md b/README.md index 669267b..144eb40 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,20 @@ Use CocoaPods ``` ruby pod 'FDFullscreenPopGesture', '1.1' ``` + +Use Carthage + +``` ruby +github "janlionly/FDFullscreenPopGesture" +``` + +Swift Package Manager +- iOS: Open Xcode, File->Swift Packages, search input **https://github.com/janlionly/FDFullscreenPopGesture.git**, and then select branch **master**. +- Or add dependencies in your `Package.swift`: +``` ruby +.package(url: "https://github.com/janlionly/FDFullscreenPopGesture.git", .branch("master")), +``` + # Release Notes **1.1** - View controller based navigation bar appearance and transition. diff --git a/Tests/FDFullscreenPopGestureTests/FDFullscreenPopGestureTests.swift b/Tests/FDFullscreenPopGestureTests/FDFullscreenPopGestureTests.swift new file mode 100644 index 0000000..fee91f5 --- /dev/null +++ b/Tests/FDFullscreenPopGestureTests/FDFullscreenPopGestureTests.swift @@ -0,0 +1,15 @@ +import XCTest +@testable import FDFullscreenPopGesture + +final class FDFullscreenPopGestureTests: XCTestCase { + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct + // results. + XCTAssertEqual(FDFullscreenPopGesture().text, "Hello, World!") + } + + static var allTests = [ + ("testExample", testExample), + ] +} diff --git a/Tests/FDFullscreenPopGestureTests/XCTestManifests.swift b/Tests/FDFullscreenPopGestureTests/XCTestManifests.swift new file mode 100644 index 0000000..2efad9c --- /dev/null +++ b/Tests/FDFullscreenPopGestureTests/XCTestManifests.swift @@ -0,0 +1,9 @@ +import XCTest + +#if !canImport(ObjectiveC) +public func allTests() -> [XCTestCaseEntry] { + return [ + testCase(FDFullscreenPopGestureTests.allTests), + ] +} +#endif diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift new file mode 100644 index 0000000..66c4966 --- /dev/null +++ b/Tests/LinuxMain.swift @@ -0,0 +1,7 @@ +import XCTest + +import FDFullscreenPopGestureTests + +var tests = [XCTestCaseEntry]() +tests += FDFullscreenPopGestureTests.allTests() +XCTMain(tests)