瀏覽代碼

Merge branch 'uphold-forks-feature/spm-support'

Evgenii Neumerzhitckii 9 年之前
父節點
當前提交
e879f8473d

+ 4 - 0
.gitignore

@@ -19,3 +19,7 @@ DerivedData
 .DS_Store
 Carthage/Checkouts
 Carthage/Build
+
+# Swift package manager
+.build/
+Packages/

+ 5 - 0
CHANGELOG.md

@@ -1,5 +1,10 @@
 # KeychainSwift version history
 
+## 7.0.0 (2016-10-08)
+
+Swift package manager support ([diogoguimaraes](https://github.com/diogoguimaraes)).
+
+
 ## 6.0.2 (2016-09-11)
 
 Change the `public` access modifier to `open` to allow subclassing of the `KeychainSwift` class and overriding its methods ([djensenius](https://github.com/djensenius)).

+ 2 - 2
KeychainSwift.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name        = "KeychainSwift"
-  s.version     = "6.0.2"
+  s.version     = "7.0.0"
   s.license     = { :type => "MIT" }
   s.homepage    = "https://github.com/marketplacer/keychain-swift"
   s.summary     = "A library for saving text and data in the Keychain with Swift."
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
   s.authors     = { "Evgenii Neumerzhitckii" => "sausageskin@gmail.com" }
   s.source      = { :git => "https://github.com/marketplacer/keychain-swift.git", :tag => s.version }
   s.screenshots  = "https://raw.githubusercontent.com/marketplacer/keychain-swift/master/graphics/keychain-swift-demo-3.png"
-  s.source_files = "KeychainSwift/*.swift"
+  s.source_files = "Sources/*.swift"
   s.ios.deployment_target = "8.0"
   s.osx.deployment_target = "10.10"
   s.watchos.deployment_target = "2.0"

+ 25 - 24
KeychainSwift.xcodeproj/project.pbxproj

@@ -124,7 +124,7 @@
 		7ED6C9771B1C118F00FE8090 /* KeychainSwiftTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = KeychainSwiftTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
 		7ED6C97D1B1C118F00FE8090 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		7ED6C9881B1C125000FE8090 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
-		7ED6C98B1B1C126D00FE8090 /* keychain-swift-demo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "keychain-swift-demo.png"; sourceTree = "<group>"; };
+		7ED6C98B1B1C126D00FE8090 /* keychain-swift-demo-3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "keychain-swift-demo-3.png"; sourceTree = "<group>"; };
 		7ED6C98D1B1C128100FE8090 /* KeychainSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeychainSwift.swift; sourceTree = "<group>"; };
 		7ED6C98E1B1C128100FE8090 /* KeychainSwiftAccessOptions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeychainSwiftAccessOptions.swift; sourceTree = "<group>"; };
 		7ED6C98F1B1C128100FE8090 /* TegKeychainConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TegKeychainConstants.swift; sourceTree = "<group>"; };
@@ -228,13 +228,12 @@
 		7ED6C9621B1C118F00FE8090 = {
 			isa = PBXGroup;
 			children = (
-				7ED6C96E1B1C118F00FE8090 /* KeychainSwift */,
-				7ED6C97B1B1C118F00FE8090 /* KeychainSwiftTests */,
+				7ED6C96E1B1C118F00FE8090 /* Sources */,
+				7ED6C97B1B1C118F00FE8090 /* Tests */,
 				7ED6C99E1B1C133500FE8090 /* Demo */,
 				7ED6C98A1B1C126D00FE8090 /* graphics */,
 				7ED6C9C81B1C16EE00FE8090 /* Distrib */,
 				7ED6C9C51B1C16BC00FE8090 /* scripts */,
-				7E3A6B611D3F62C2007C5B1F /* macOS Tests */,
 				7E3A6B7C1D3F6779007C5B1F /* macOS Demo */,
 				7ED6C96D1B1C118F00FE8090 /* Products */,
 				7ED6C9881B1C125000FE8090 /* README.md */,
@@ -256,7 +255,7 @@
 			name = Products;
 			sourceTree = "<group>";
 		};
-		7ED6C96E1B1C118F00FE8090 /* KeychainSwift */ = {
+		7ED6C96E1B1C118F00FE8090 /* Sources */ = {
 			isa = PBXGroup;
 			children = (
 				7ED6C98D1B1C128100FE8090 /* KeychainSwift.swift */,
@@ -265,7 +264,7 @@
 				7ED6C9711B1C118F00FE8090 /* KeychainSwift.h */,
 				7ED6C96F1B1C118F00FE8090 /* Supporting Files */,
 			);
-			path = KeychainSwift;
+			path = Sources;
 			sourceTree = "<group>";
 		};
 		7ED6C96F1B1C118F00FE8090 /* Supporting Files */ = {
@@ -276,7 +275,7 @@
 			name = "Supporting Files";
 			sourceTree = "<group>";
 		};
-		7ED6C97B1B1C118F00FE8090 /* KeychainSwiftTests */ = {
+		7ED6C97B1B1C118F00FE8090 /* Tests */ = {
 			isa = PBXGroup;
 			children = (
 				7E87495E1BDB83D00045CF75 /* AccessGroupTests.swift */,
@@ -285,9 +284,10 @@
 				2B7E7C4C1B81A3EC00D1C3B9 /* KeychainSwiftPrefixedTests.swift */,
 				7ED6C9931B1C12A200FE8090 /* KeychainSwiftTests-Bridging-Header.h */,
 				7E282DD61CED212500B55133 /* SynchronizableTests.swift */,
+				7E3A6B611D3F62C2007C5B1F /* macOS Tests */,
 				7ED6C97C1B1C118F00FE8090 /* Supporting Files */,
 			);
-			path = KeychainSwiftTests;
+			path = Tests;
 			sourceTree = "<group>";
 		};
 		7ED6C97C1B1C118F00FE8090 /* Supporting Files */ = {
@@ -301,7 +301,7 @@
 		7ED6C98A1B1C126D00FE8090 /* graphics */ = {
 			isa = PBXGroup;
 			children = (
-				7ED6C98B1B1C126D00FE8090 /* keychain-swift-demo.png */,
+				7ED6C98B1B1C126D00FE8090 /* keychain-swift-demo-3.png */,
 			);
 			path = graphics;
 			sourceTree = "<group>";
@@ -380,7 +380,7 @@
 /* Begin PBXLegacyTarget section */
 		7ED51A751B7734AF005B39C2 /* ConcatenateSwiftFiles */ = {
 			isa = PBXLegacyTarget;
-			buildArgumentsString = "$PROJECT_DIR/KeychainSwift $PROJECT_DIR/Distrib/KeychainSwiftDistrib.swift \"//\n// Keychain helper for iOS/Swift.\n//\n// https://github.com/marketplacer/keychain-swift\n//\n// This file was automatically generated by combining multiple Swift source files.\n//\"";
+			buildArgumentsString = "$PROJECT_DIR/Sources $PROJECT_DIR/Distrib/KeychainSwiftDistrib.swift \"//\n// Keychain helper for iOS/Swift.\n//\n// https://github.com/marketplacer/keychain-swift\n//\n// This file was automatically generated by combining multiple Swift source files.\n//\"";
 			buildConfigurationList = 7ED51A781B7734AF005B39C2 /* Build configuration list for PBXLegacyTarget "ConcatenateSwiftFiles" */;
 			buildPhases = (
 			);
@@ -829,7 +829,7 @@
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
 				FRAMEWORK_VERSION = A;
-				INFOPLIST_FILE = KeychainSwift/Info.plist;
+				INFOPLIST_FILE = Sources/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
 				MACOSX_DEPLOYMENT_TARGET = 10.10;
@@ -852,7 +852,7 @@
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
 				FRAMEWORK_VERSION = A;
-				INFOPLIST_FILE = KeychainSwift/Info.plist;
+				INFOPLIST_FILE = Sources/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
 				MACOSX_DEPLOYMENT_TARGET = 10.10;
@@ -874,7 +874,7 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = KeychainSwift/Info.plist;
+				INFOPLIST_FILE = Sources/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = "com.marketplacer.KeychainSwift-watchOS";
@@ -895,7 +895,7 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = KeychainSwift/Info.plist;
+				INFOPLIST_FILE = Sources/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = "com.marketplacer.KeychainSwift-watchOS";
@@ -918,7 +918,7 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = KeychainSwift/Info.plist;
+				INFOPLIST_FILE = Sources/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = "com.marketplacer.KeychainSwift-tvOS";
@@ -939,7 +939,7 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = KeychainSwift/Info.plist;
+				INFOPLIST_FILE = Sources/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = "com.marketplacer.KeychainSwift-tvOS";
@@ -961,7 +961,7 @@
 				CODE_SIGN_IDENTITY = "-";
 				COMBINE_HIDPI_IMAGES = YES;
 				DEBUG_INFORMATION_FORMAT = dwarf;
-				INFOPLIST_FILE = "macOS Tests/Info.plist";
+				INFOPLIST_FILE = "Tests/macOS Tests/Info.plist";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
 				MACOSX_DEPLOYMENT_TARGET = 10.10;
 				PRODUCT_BUNDLE_IDENTIFIER = "com.evgenii.macOS-Tests";
@@ -979,7 +979,7 @@
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CODE_SIGN_IDENTITY = "-";
 				COMBINE_HIDPI_IMAGES = YES;
-				INFOPLIST_FILE = "macOS Tests/Info.plist";
+				INFOPLIST_FILE = "Tests/macOS Tests/Info.plist";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
 				MACOSX_DEPLOYMENT_TARGET = 10.10;
 				PRODUCT_BUNDLE_IDENTIFIER = "com.evgenii.macOS-Tests";
@@ -1152,7 +1152,7 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = KeychainSwift/Info.plist;
+				INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = "com.marketplacer.$(PRODUCT_NAME:rfc1034identifier)";
@@ -1170,7 +1170,7 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = KeychainSwift/Info.plist;
+				INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = "com.marketplacer.$(PRODUCT_NAME:rfc1034identifier)";
@@ -1190,11 +1190,11 @@
 					"DEBUG=1",
 					"$(inherited)",
 				);
-				INFOPLIST_FILE = KeychainSwiftTests/Info.plist;
+				INFOPLIST_FILE = Tests/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = "com.marketplacer.$(PRODUCT_NAME:rfc1034identifier)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_OBJC_BRIDGING_HEADER = "KeychainSwiftTests/KeychainSwiftTests-Bridging-Header.h";
+				SWIFT_OBJC_BRIDGING_HEADER = "Tests/KeychainSwiftTests-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_VERSION = 3.0;
 			};
@@ -1205,11 +1205,11 @@
 			buildSettings = {
 				CLANG_ENABLE_MODULES = YES;
 				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
-				INFOPLIST_FILE = KeychainSwiftTests/Info.plist;
+				INFOPLIST_FILE = Tests/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = "com.marketplacer.$(PRODUCT_NAME:rfc1034identifier)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_OBJC_BRIDGING_HEADER = "KeychainSwiftTests/KeychainSwiftTests-Bridging-Header.h";
+				SWIFT_OBJC_BRIDGING_HEADER = "Tests/KeychainSwiftTests-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
 				SWIFT_VERSION = 3.0;
 			};
@@ -1290,6 +1290,7 @@
 				7E3A6B881D3F6779007C5B1F /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
 		};
 		7ED51A781B7734AF005B39C2 /* Build configuration list for PBXLegacyTarget "ConcatenateSwiftFiles" */ = {
 			isa = XCConfigurationList;

+ 5 - 0
Package.swift

@@ -0,0 +1,5 @@
+import PackageDescription
+
+let package = Package(
+    name: "KeychainSwift"
+)

+ 20 - 2
README.md

@@ -40,7 +40,7 @@ Simply add [KeychainSwiftDistrib.swift](https://github.com/marketplacer/keychain
 
 #### Setup with Carthage (iOS 8+)
 
-Alternatively, add `github "marketplacer/keychain-swift" ~> 6.0` to your Cartfile and run `carthage update`.
+Alternatively, add `github "marketplacer/keychain-swift" ~> 7.0` to your Cartfile and run `carthage update`.
 
 #### Setup with CocoaPods (iOS 8+)
 
@@ -48,7 +48,24 @@ If you are using CocoaPods add this text to your Podfile and run `pod install`.
 
     use_frameworks!
     target 'Your target name'
-    pod 'KeychainSwift', '~> 6.0'
+    pod 'KeychainSwift', '~> 7.0'
+
+
+#### Setup with Swift Package Manager
+
+Add the following text to your Package.swift file and run `swift build`.
+
+```Swift
+import PackageDescription
+
+let package = Package(
+    name: "KeychainSwift",
+    dependencies: [
+        .Package(url: "https://github.com/marketplacer/keychain-swift.git",
+                 versions: Version(7,0,0)..<Version(8,0,0))
+    ]
+)
+```
 
 
 ## Legacy Swift versions
@@ -220,6 +237,7 @@ Here are some other Keychain libraries.
 ## Thanks 👍
 
 * The code is based on this example: [https://gist.github.com/s-aska/e7ad24175fb7b04f78e7](https://gist.github.com/s-aska/e7ad24175fb7b04f78e7)
+* Thanks to [diogoguimaraes](https://github.com/diogoguimaraes) for adding Swift Package Manager setup option.
 * Thanks to [glyuck](https://github.com/glyuck) for taming booleans.
 * Thanks to [pepibumur](https://github.com/pepibumur) for adding macOS, watchOS and tvOS support.
 * Thanks to [ezura](https://github.com/ezura) for iOS 7 support.

+ 0 - 0
KeychainSwift/Info.plist → Sources/Info.plist


+ 0 - 0
KeychainSwift/KeychainSwift.h → Sources/KeychainSwift.h


+ 0 - 0
KeychainSwift/KeychainSwift.swift → Sources/KeychainSwift.swift


+ 0 - 0
KeychainSwift/KeychainSwiftAccessOptions.swift → Sources/KeychainSwiftAccessOptions.swift


+ 0 - 0
KeychainSwift/TegKeychainConstants.swift → Sources/TegKeychainConstants.swift


+ 0 - 0
KeychainSwiftTests/AccessGroupTests.swift → Tests/AccessGroupTests.swift


+ 0 - 0
KeychainSwiftTests/ClearTests.swift → Tests/ClearTests.swift


+ 0 - 0
KeychainSwiftTests/Info.plist → Tests/Info.plist


+ 0 - 0
KeychainSwiftTests/KeychainSwiftPrefixedTests.swift → Tests/KeychainSwiftPrefixedTests.swift


+ 0 - 0
KeychainSwiftTests/KeychainSwiftTests-Bridging-Header.h → Tests/KeychainSwiftTests-Bridging-Header.h


+ 0 - 0
KeychainSwiftTests/KeychainSwiftTests.swift → Tests/KeychainSwiftTests.swift


+ 0 - 0
KeychainSwiftTests/SynchronizableTests.swift → Tests/SynchronizableTests.swift


+ 0 - 0
macOS Tests/Info.plist → Tests/macOS Tests/Info.plist


+ 0 - 0
macOS Tests/macOS_Tests.swift → Tests/macOS Tests/macOS_Tests.swift