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/.travis.yml b/.travis.yml index 93e0f91..f58f858 100755 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: objective-c -osx_image: xcode8 +osx_image: xcode9 env: - - DESTINATION="OS=10.0,name=iPhone 6s" SCHEME="XLActionController" SDK=iphonesimulator10.0 + - DESTINATION="OS=11.0,name=iPhone 7" SCHEME="XLActionController" SDK=iphonesimulator before_install: - gem install xcpretty --no-rdoc --no-ri --no-document --quiet script: diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a1049a..848706b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,9 @@ All notable changes to this project will be documented in this file. -### master branch +### [4.0.0](https://github.com/xmartlabs/XLActionController/releases/tag/4.0.0) +* Support for Swift 4. * Added customizable background color to the Skype action controller, [PR #52](https://github.com/xmartlabs/XLActionController/pull/52) * Using status bar style from settings in iOS 10, [PR #53](https://github.com/xmartlabs/XLActionController/pull/53) diff --git a/Example.xcodeproj/project.pbxproj b/Example.xcodeproj/project.pbxproj index b18f7fe..3f48855 100644 --- a/Example.xcodeproj/project.pbxproj +++ b/Example.xcodeproj/project.pbxproj @@ -97,7 +97,7 @@ 28B3B8631BFA7EEC007337A2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 28B3B8651BFA7EEC007337A2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 28B3B86A1BFA7EEC007337A2 /* ExampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ExampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 28B3B8701BFA7EEC007337A2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = Example/UITests/Info.plist; sourceTree = ""; }; + 28B3B8701BFA7EEC007337A2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 28B3B8791BFA8566007337A2 /* PeriscopeExampleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeriscopeExampleViewController.swift; sourceTree = ""; }; 28B3B87A1BFA8566007337A2 /* SpotifyExampleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotifyExampleViewController.swift; sourceTree = ""; }; 28B3B87B1BFA8566007337A2 /* TweetbotExampleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TweetbotExampleViewController.swift; sourceTree = ""; }; @@ -198,7 +198,7 @@ 28B3B8701BFA7EEC007337A2 /* Info.plist */, ); name = UITests; - path = ExampleUITests; + path = Example/UITests; sourceTree = ""; }; 28B3B8841BFA858D007337A2 /* Products */ = { @@ -258,12 +258,13 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0710; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = Xmartlabs; TargetAttributes = { 28B3B8551BFA7EEC007337A2 = { CreatedOnToolsVersion = 7.1; LastSwiftMigration = 0800; + ProvisioningStyle = Manual; }; 28B3B8691BFA7EEC007337A2 = { CreatedOnToolsVersion = 7.1; @@ -430,14 +431,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_ERROR; 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_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_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -476,14 +483,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_ERROR; 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_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_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -512,13 +525,15 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Example/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_SWIFT_FLAGS = "-DXLACTIONCONTROLLER_EXAMPLE"; PRODUCT_BUNDLE_IDENTIFIER = com.xmartlabs.Example; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -526,13 +541,15 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Example/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_SWIFT_FLAGS = "-DXLACTIONCONTROLLER_EXAMPLE"; PRODUCT_BUNDLE_IDENTIFIER = com.xmartlabs.Example; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -546,7 +563,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.xmartlabs.ExampleUITests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.0; TEST_TARGET_NAME = Example; USES_XCTRUNNER = YES; }; @@ -561,7 +578,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.xmartlabs.ExampleUITests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.0; TEST_TARGET_NAME = Example; USES_XCTRUNNER = YES; }; diff --git a/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme b/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme index 8d5faaa..d3506b3 100644 --- a/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme +++ b/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme @@ -1,6 +1,6 @@ { - open var backgroundColor: UIColor = UIColor(colorLiteralRed: 18/255.0, green: 165/255.0, blue: 244/255.0, alpha: 1.0) + open var backgroundColor: UIColor = UIColor(red: 18/255.0, green: 165/255.0, blue: 244/255.0, alpha: 1.0) fileprivate var contextView: ContextView! fileprivate var normalAnimationRect: UIView! diff --git a/Example/Info.plist b/Example/Info.plist index e896793..71a2c9a 100644 --- a/Example/Info.plist +++ b/Example/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.0 + 4.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/LICENSE b/LICENSE index aaddd32..3d8bbe0 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016 XMARTLABS (http://xmartlabs.com) +Copyright (c) 2017 XMARTLABS (http://xmartlabs.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 51c7eb2..41d035c 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@

Build status Platform iOS -Swift 3 compatible +Swift 4 compatible Carthage compatible -CocoaPods compatible +CocoaPods compatible License: MIT codebeat badge

@@ -387,9 +387,9 @@ After the dismissal animation completes, `dismissView` calls `onDidDismissView` ## Requirements -* iOS 8.0+ -* Xcode 8.0+ -* Swift 3 +* iOS 9.0+ +* Xcode 9.0+ +* Swift 4 ## Getting involved @@ -411,7 +411,7 @@ Specify XLActionController into your project's Podfile: ```ruby source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' +platform :ios, '9.0' use_frameworks! target '' do @@ -442,7 +442,7 @@ dependency manager for Cocoa. Specify XLActionController into your project's Carthage: ``` -github "xmartlabs/XLActionController" ~> 3.0 +github "xmartlabs/XLActionController" ~> 4.0 ``` ### Manually as Embedded Framework diff --git a/Source/ActionController.swift b/Source/ActionController.swift index cede29f..300c8bd 100644 --- a/Source/ActionController.swift +++ b/Source/ActionController.swift @@ -560,15 +560,15 @@ open class ActionController Bool { + if #available(iOS 9.0, *) { + return UIView.userInterfaceLayoutDirection(for: view.semanticContentAttribute) == .rightToLeft + } else { + return UIApplication.shared.userInterfaceLayoutDirection == .rightToLeft + } + } + @discardableResult func setupAttributesForIndexPath(_ indexPath: IndexPath?) -> UICollectionViewLayoutAttributes? { guard let indexPath = indexPath, let animator = dynamicAnimator, let collectionView = collectionView else { @@ -148,15 +157,23 @@ open class DynamicCollectionViewFlowLayout: UICollectionViewFlowLayout { var initialFrame = CGRect(x: 0, y: originY + frame.origin.y, width: collectionItemSize.width, height: collectionItemSize.height) // Calculate x position depending on alignment value - var translationX: CGFloat + let collectionViewContentWidth = collectionView.bounds.size.width - collectionView.contentInset.left - collectionView.contentInset.right + let rightMargin = (collectionViewContentWidth - frame.size.width) + let leftMargin = CGFloat(0.0) + + var translationX: CGFloat switch itemsAligment { case .center: translationX = (collectionViewContentWidth - frame.size.width) * 0.5 case .fill, .left: - translationX = 0.0 + translationX = leftMargin case .right: - translationX = (collectionViewContentWidth - frame.size.width) + translationX = rightMargin + case .leading: + translationX = isRTL(for: collectionView) ? rightMargin : leftMargin + case .trailing: + translationX = isRTL(for: collectionView) ? leftMargin : rightMargin } frame.origin.x = translationX diff --git a/Source/Info.plist b/Source/Info.plist index 7e7479f..1bcfa6d 100644 --- a/Source/Info.plist +++ b/Source/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.0.0 + 4.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/XLActionController.podspec b/XLActionController.podspec index c2c6b12..44a1ed6 100644 --- a/XLActionController.podspec +++ b/XLActionController.podspec @@ -1,13 +1,13 @@ Pod::Spec.new do |spec| spec.name = 'XLActionController' - spec.version = '3.0.1' + spec.version = '4.0.0' spec.license = 'MIT' - spec.summary = 'Fully customizable and extensible action sheet controller written in Swift 3' + spec.summary = 'Fully customizable and extensible action sheet controller written in Swift' spec.homepage = 'https://github.com/xmartlabs/XLActionController' spec.social_media_url = 'http://twitter.com/xmartlabs' spec.authors = { 'Miguel Revetria' => 'miguel@xmartlabs.com', 'Martin Barreto' => 'martin@xmartlabs.com' } spec.source = { :git => 'https://github.com/xmartlabs/XLActionController.git', :tag => spec.version } - spec.ios.deployment_target = '8.0' + spec.ios.deployment_target = '9.0' spec.ios.frameworks = 'UIKit', 'Foundation', 'CoreGraphics' spec.requires_arc = true diff --git a/XLActionController.xcodeproj/project.pbxproj b/XLActionController.xcodeproj/project.pbxproj index 7e8392a..6ab1bfc 100644 --- a/XLActionController.xcodeproj/project.pbxproj +++ b/XLActionController.xcodeproj/project.pbxproj @@ -38,9 +38,9 @@ 28B3B83C1BFA668F007337A2 /* Action.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Action.swift; path = Source/Action.swift; sourceTree = SOURCE_ROOT; }; 28B3B84B1BFA6E39007337A2 /* XLActionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = XLActionController.h; path = Source/XLActionController.h; sourceTree = SOURCE_ROOT; }; 28E191671BFA618E00066B1C /* XLActionController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XLActionController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 28E1916C1BFA618F00066B1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = Source/Info.plist; sourceTree = ""; }; + 28E1916C1BFA618F00066B1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 28E191711BFA618F00066B1C /* XLActionControllerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XLActionControllerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 28E191781BFA618F00066B1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = Tests/Info.plist; sourceTree = ""; }; + 28E191781BFA618F00066B1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -92,8 +92,7 @@ 28B3B83C1BFA668F007337A2 /* Action.swift */, 28E1916C1BFA618F00066B1C /* Info.plist */, ); - name = Source; - path = XLActionController; + path = Source; sourceTree = ""; }; 28E191751BFA618F00066B1C /* Tests */ = { @@ -102,8 +101,7 @@ 28473B851C109E3F00A8105F /* XLActionControllerTests.swift */, 28E191781BFA618F00066B1C /* Info.plist */, ); - name = Tests; - path = XLActionControllerTests; + path = Tests; sourceTree = ""; }; /* End PBXGroup section */ @@ -163,7 +161,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0710; - LastUpgradeCheck = 0710; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = Xmartlabs; TargetAttributes = { 28E191661BFA618E00066B1C = { @@ -252,13 +250,21 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_ERROR; 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_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_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -286,6 +292,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -300,13 +307,21 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_ERROR; 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_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_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -326,6 +341,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -337,7 +354,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; @@ -350,7 +367,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -358,6 +375,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; @@ -369,7 +387,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.xmartlabs.XLActionController; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -381,7 +399,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.xmartlabs.XLActionControllerTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -393,7 +411,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.xmartlabs.XLActionControllerTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.0; }; name = Release; }; diff --git a/XLActionController.xcodeproj/xcshareddata/xcschemes/XLActionController.xcscheme b/XLActionController.xcodeproj/xcshareddata/xcschemes/XLActionController.xcscheme index 346bbd6..f22b691 100644 --- a/XLActionController.xcodeproj/xcshareddata/xcschemes/XLActionController.xcscheme +++ b/XLActionController.xcodeproj/xcshareddata/xcschemes/XLActionController.xcscheme @@ -1,6 +1,6 @@