diff --git a/Example/Podfile b/Example/Podfile index d2ab026..91333da 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -2,9 +2,9 @@ platform :ios, '7.0' target 'Smile TouchID' do -#pod 'SmileTouchID', :path => '~/Documents/developer_learning/Security/SmileTouchID' +pod 'SmileTouchID', :path => "../" -pod 'SmileTouchID' +#pod 'SmileTouchID' end diff --git a/Example/Podfile.lock b/Example/Podfile.lock index f73beaa..f79c2a4 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -2,7 +2,11 @@ PODS: - SmileTouchID (0.0.9) DEPENDENCIES: - - SmileTouchID + - SmileTouchID (from `../`) + +EXTERNAL SOURCES: + SmileTouchID: + :path: "../" SPEC CHECKSUMS: SmileTouchID: 61734cfca9587bbe7347d5a713cae0e3dfd5abf9 diff --git a/Example/Pods/Headers/Private/SmileTouchID/SmileAuthenticator.h b/Example/Pods/Headers/Private/SmileTouchID/SmileAuthenticator.h deleted file mode 120000 index 782d385..0000000 --- a/Example/Pods/Headers/Private/SmileTouchID/SmileAuthenticator.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmileAuthenticator.h \ No newline at end of file diff --git a/Example/Pods/Headers/Private/SmileTouchID/SmileKeychainWrapper.h b/Example/Pods/Headers/Private/SmileTouchID/SmileKeychainWrapper.h deleted file mode 120000 index e56ddb0..0000000 --- a/Example/Pods/Headers/Private/SmileTouchID/SmileKeychainWrapper.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmileKeychainWrapper.h \ No newline at end of file diff --git a/Example/Pods/Headers/Private/SmileTouchID/SmilePasswordContainerView.h b/Example/Pods/Headers/Private/SmileTouchID/SmilePasswordContainerView.h deleted file mode 120000 index 1806ccc..0000000 --- a/Example/Pods/Headers/Private/SmileTouchID/SmilePasswordContainerView.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmilePasswordContainerView.h \ No newline at end of file diff --git a/Example/Pods/Headers/Private/SmileTouchID/SmilePasswordView.h b/Example/Pods/Headers/Private/SmileTouchID/SmilePasswordView.h deleted file mode 120000 index 2930b55..0000000 --- a/Example/Pods/Headers/Private/SmileTouchID/SmilePasswordView.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmilePasswordView.h \ No newline at end of file diff --git a/Example/Pods/Headers/Private/SmileTouchID/SmileSettingVC.h b/Example/Pods/Headers/Private/SmileTouchID/SmileSettingVC.h deleted file mode 120000 index a0f187c..0000000 --- a/Example/Pods/Headers/Private/SmileTouchID/SmileSettingVC.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmileSettingVC.h \ No newline at end of file diff --git a/Example/Pods/Headers/Public/SmileTouchID/SmileAuthenticator.h b/Example/Pods/Headers/Public/SmileTouchID/SmileAuthenticator.h deleted file mode 120000 index 782d385..0000000 --- a/Example/Pods/Headers/Public/SmileTouchID/SmileAuthenticator.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmileAuthenticator.h \ No newline at end of file diff --git a/Example/Pods/Headers/Public/SmileTouchID/SmileKeychainWrapper.h b/Example/Pods/Headers/Public/SmileTouchID/SmileKeychainWrapper.h deleted file mode 120000 index e56ddb0..0000000 --- a/Example/Pods/Headers/Public/SmileTouchID/SmileKeychainWrapper.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmileKeychainWrapper.h \ No newline at end of file diff --git a/Example/Pods/Headers/Public/SmileTouchID/SmilePasswordContainerView.h b/Example/Pods/Headers/Public/SmileTouchID/SmilePasswordContainerView.h deleted file mode 120000 index 1806ccc..0000000 --- a/Example/Pods/Headers/Public/SmileTouchID/SmilePasswordContainerView.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmilePasswordContainerView.h \ No newline at end of file diff --git a/Example/Pods/Headers/Public/SmileTouchID/SmilePasswordView.h b/Example/Pods/Headers/Public/SmileTouchID/SmilePasswordView.h deleted file mode 120000 index 2930b55..0000000 --- a/Example/Pods/Headers/Public/SmileTouchID/SmilePasswordView.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmilePasswordView.h \ No newline at end of file diff --git a/Example/Pods/Headers/Public/SmileTouchID/SmileSettingVC.h b/Example/Pods/Headers/Public/SmileTouchID/SmileSettingVC.h deleted file mode 120000 index a0f187c..0000000 --- a/Example/Pods/Headers/Public/SmileTouchID/SmileSettingVC.h +++ /dev/null @@ -1 +0,0 @@ -../../../SmileTouchID/SmileAuth/Classes/SmileSettingVC.h \ No newline at end of file diff --git a/Example/Pods/Local Podspecs/SmileTouchID.podspec.json b/Example/Pods/Local Podspecs/SmileTouchID.podspec.json index 4cd6242..19b9901 100644 --- a/Example/Pods/Local Podspecs/SmileTouchID.podspec.json +++ b/Example/Pods/Local Podspecs/SmileTouchID.podspec.json @@ -1,6 +1,6 @@ { "name": "SmileTouchID", - "version": "0.0.8", + "version": "0.1.0", "summary": "A Library for configure Touch ID & passcode conveniently", "description": " 1. Handle all complicated things about Touch ID & Passcode. You just need to write a few simple code to integrate Touch ID & Passcode to your app.\n 2. Get elegant animation automatically and adaptive UI.\n 3. Can customize the color,touch id icon and background image to fit your app style.\n 4. Can customize the passcode digit to 6 or 10, or any number, automatically handle other things for you.\n 5. Support iOS7 and later.\n", "homepage": "https://github.com/liu044100/SmileTouchID", @@ -19,7 +19,7 @@ "requires_arc": true, "source": { "git": "https://github.com/liu044100/SmileTouchID.git", - "tag": "0.0.8" + "tag": "0.1.0" }, "source_files": "SmileAuth/Classes/*", "resources": [ diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index f73beaa..f79c2a4 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -2,7 +2,11 @@ PODS: - SmileTouchID (0.0.9) DEPENDENCIES: - - SmileTouchID + - SmileTouchID (from `../`) + +EXTERNAL SOURCES: + SmileTouchID: + :path: "../" SPEC CHECKSUMS: SmileTouchID: 61734cfca9587bbe7347d5a713cae0e3dfd5abf9 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index c7d457d..79489ad 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,237 +7,270 @@ objects = { /* Begin PBXBuildFile section */ - 0152378E3B4B0073C51489D0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE74235B090466D86C58A2F1 /* Foundation.framework */; }; - 05BAEF552AF117EAB37E444B /* Pods-Smile TouchID-SmileTouchID-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B8F032706D746D3A663FEB01 /* Pods-Smile TouchID-SmileTouchID-dummy.m */; }; - 221BC24FEFA2CBB7817AD0B8 /* SmileKeychainWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = AC371C61D7740552F70EBD37 /* SmileKeychainWrapper.m */; }; - 4980FEBCF729DDBF3D500F9E /* SmileSettingVC.h in Headers */ = {isa = PBXBuildFile; fileRef = 690557C3DF7DD849C4ECA578 /* SmileSettingVC.h */; }; - 4DED7F4B6540BAA37C13EFB6 /* SmileAuthenticator.h in Headers */ = {isa = PBXBuildFile; fileRef = 93AE515AD6A16515D5357A5C /* SmileAuthenticator.h */; }; - 6A8975E809B142B9B36513FF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE74235B090466D86C58A2F1 /* Foundation.framework */; }; - 72FC94E63AF49119522F83A9 /* Pods-Smile TouchID-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E0E2310C07CBC34DB558FF /* Pods-Smile TouchID-dummy.m */; }; - 837F5B43432EE64770B45641 /* SmilePasswordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EF8245A720D8D61D1F024C5 /* SmilePasswordView.m */; }; - 8A606FB1C7B9CFB12EE43C5D /* SmilePasswordContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7AED1950E258DA21FFDC90 /* SmilePasswordContainerView.h */; }; - 920061B86DBD65115F24A17E /* SmileAuthenticator.m in Sources */ = {isa = PBXBuildFile; fileRef = 65E0400B9656D3B5EAAA4753 /* SmileAuthenticator.m */; }; - AD73D3A5C35C0C337C7CEFF1 /* SmileKeychainWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B12D0FE089825E0C3A426B4 /* SmileKeychainWrapper.h */; }; - BF79868533E49C611B1056F7 /* SmilePasswordContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5282FAFF55B6187B0C9C83C2 /* SmilePasswordContainerView.m */; }; - CC0151349244A0CCB321DF31 /* SmileSettingVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D52A0C04FAB5C612FF10890 /* SmileSettingVC.m */; }; - EF4C229EB5E14139FD151534 /* SmilePasswordView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3970E0B292959CEB16BA336C /* SmilePasswordView.h */; }; - FE169C02EB715A93968EA5F0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9C6276A421B671870FEE0B1 /* UIKit.framework */; }; + 03AF42C54E9339DF1B7F336D /* SmileAuthenticator.m in Sources */ = {isa = PBXBuildFile; fileRef = 47DA3BC435D289FF38412642 /* SmileAuthenticator.m */; }; + 399622070217F4E87EB708D6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BFC9CFC839BBB1235565DC97 /* Foundation.framework */; }; + 3C6C4CFF84252AD205B9FAE7 /* SmileSettingVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C079D9D06E03F04932778F1 /* SmileSettingVC.m */; }; + 838E6E0C133B8805ECB29210 /* Pods-Smile TouchID-SmileTouchID-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 17B91BA525472F8D77BC1935 /* Pods-Smile TouchID-SmileTouchID-dummy.m */; }; + 9B8E7BC6FC5424D2A8A6C67D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260F79FF09D41020DBE085B9 /* UIKit.framework */; }; + 9E7047A46DFDB0178B00DF68 /* SmilePasswordView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0D13B303B87D36BF5D1AA1 /* SmilePasswordView.h */; }; + B9770AD9FE557D309981881F /* SmilePasswordContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = FD571CCAE0E68C241A237B2E /* SmilePasswordContainerView.h */; }; + BECE4BC9FE8430F180D3E38F /* SmileKeychainWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 055CE374D02AC6B3422B68C1 /* SmileKeychainWrapper.m */; }; + BF8863ED7E5E544C9FB9E316 /* SmileKeychainWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8482E9847E7E5EDFD50124FC /* SmileKeychainWrapper.h */; }; + DB1DB4ADA299234021F8FB7D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BFC9CFC839BBB1235565DC97 /* Foundation.framework */; }; + DE493D3C8A70CEFC16E41FEE /* SmilePasswordContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = DA956F429583EE09F8055DA2 /* SmilePasswordContainerView.m */; }; + E18856CF945B160FDF24E5EE /* SmilePasswordView.m in Sources */ = {isa = PBXBuildFile; fileRef = E292D1880CBE1A32E754CF8E /* SmilePasswordView.m */; }; + E21A5A012C9FD665DCEA7F60 /* SmileSettingVC.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD6CC3B1DD156AA81EDFE2B /* SmileSettingVC.h */; }; + F1A71B25ECFFDFD3B33F36D3 /* SmileAuthenticator.h in Headers */ = {isa = PBXBuildFile; fileRef = 207B08E0874003514169ACE8 /* SmileAuthenticator.h */; }; + F6A72799FA21AB7950320829 /* Pods-Smile TouchID-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 16E0FCBD5E64AF016362C35F /* Pods-Smile TouchID-dummy.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 4D48016AE6D4AF0AC3AD4A44 /* PBXContainerItemProxy */ = { + 3603B718131BFA1643095C0A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 114CFF51E94C5888DC8B9EAF /* Project object */; + containerPortal = 197DA4A766DB84A287DFDFAD /* Project object */; proxyType = 1; - remoteGlobalIDString = 90788C8C88B8516115518613; + remoteGlobalIDString = A9CD68B19E9F46CA6F14E134; remoteInfo = "Pods-Smile TouchID-SmileTouchID"; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 10EE71F0F75A22C75DF40F83 /* Pods-Smile TouchID-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Smile TouchID-acknowledgements.plist"; sourceTree = ""; }; - 27A6D9B6657859D2BF89DE8B /* Pods-Smile TouchID-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Smile TouchID-environment.h"; sourceTree = ""; }; - 2953C52B0674F1AB5DAAC7F4 /* smile_Touch_ID@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "smile_Touch_ID@2x.png"; path = "SmileAuth/Assets/smile_Touch_ID@2x.png"; sourceTree = ""; }; - 3970E0B292959CEB16BA336C /* SmilePasswordView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmilePasswordView.h; path = SmileAuth/Classes/SmilePasswordView.h; sourceTree = ""; }; - 5282FAFF55B6187B0C9C83C2 /* SmilePasswordContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SmilePasswordContainerView.m; path = SmileAuth/Classes/SmilePasswordContainerView.m; sourceTree = ""; }; - 52BE46CC52C60BD28CA6DB76 /* Pods-Smile TouchID.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Smile TouchID.debug.xcconfig"; sourceTree = ""; }; - 583920E860B9F99AA3AE9B67 /* Pods-Smile TouchID-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Smile TouchID-acknowledgements.markdown"; sourceTree = ""; }; - 5D52A0C04FAB5C612FF10890 /* SmileSettingVC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SmileSettingVC.m; path = SmileAuth/Classes/SmileSettingVC.m; sourceTree = ""; }; - 65E0400B9656D3B5EAAA4753 /* SmileAuthenticator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SmileAuthenticator.m; path = SmileAuth/Classes/SmileAuthenticator.m; sourceTree = ""; }; - 690557C3DF7DD849C4ECA578 /* SmileSettingVC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmileSettingVC.h; path = SmileAuth/Classes/SmileSettingVC.h; sourceTree = ""; }; - 7242F482A0DD9954E9EB7C8F /* Pods-Smile TouchID-SmileTouchID.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Smile TouchID-SmileTouchID.xcconfig"; sourceTree = ""; }; - 77F6C8A1DF9FE3D5547D7821 /* Pods-Smile TouchID.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Smile TouchID.release.xcconfig"; sourceTree = ""; }; - 7EF8245A720D8D61D1F024C5 /* SmilePasswordView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SmilePasswordView.m; path = SmileAuth/Classes/SmilePasswordView.m; sourceTree = ""; }; - 88E0E2310C07CBC34DB558FF /* Pods-Smile TouchID-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Smile TouchID-dummy.m"; sourceTree = ""; }; - 8B12D0FE089825E0C3A426B4 /* SmileKeychainWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmileKeychainWrapper.h; path = SmileAuth/Classes/SmileKeychainWrapper.h; sourceTree = ""; }; - 8B7AED1950E258DA21FFDC90 /* SmilePasswordContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmilePasswordContainerView.h; path = SmileAuth/Classes/SmilePasswordContainerView.h; sourceTree = ""; }; - 93AE515AD6A16515D5357A5C /* SmileAuthenticator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SmileAuthenticator.h; path = SmileAuth/Classes/SmileAuthenticator.h; sourceTree = ""; }; - 9F4F4E18DE202700006FC353 /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A1B93515A4037849273A4379 /* SmileSettingVC.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; name = SmileSettingVC.storyboard; path = SmileAuth/Assets/SmileSettingVC.storyboard; sourceTree = ""; }; - AC371C61D7740552F70EBD37 /* SmileKeychainWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SmileKeychainWrapper.m; path = SmileAuth/Classes/SmileKeychainWrapper.m; sourceTree = ""; }; - AE8E127D712C0D9F94AA1E28 /* libPods-Smile TouchID.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Smile TouchID.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - B38E20509FE884ABE9B1B7F8 /* Pods-Smile TouchID-SmileTouchID-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Smile TouchID-SmileTouchID-Private.xcconfig"; sourceTree = ""; }; - B7CE763F75F272CC24364FF9 /* libPods-Smile TouchID-SmileTouchID.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Smile TouchID-SmileTouchID.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - B8F032706D746D3A663FEB01 /* Pods-Smile TouchID-SmileTouchID-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Smile TouchID-SmileTouchID-dummy.m"; sourceTree = ""; }; - B9C6276A421B671870FEE0B1 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - CACB6D800338024223C97653 /* smile_Touch_ID@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "smile_Touch_ID@3x.png"; path = "SmileAuth/Assets/smile_Touch_ID@3x.png"; sourceTree = ""; }; - CBBEC26AE9E1287343F4AA3E /* Pods-Smile TouchID-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Smile TouchID-resources.sh"; sourceTree = ""; }; - DE74235B090466D86C58A2F1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - ED75B227F8449F5AB6EA672F /* Pods-Smile TouchID-SmileTouchID-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Smile TouchID-SmileTouchID-prefix.pch"; sourceTree = ""; }; + 055CE374D02AC6B3422B68C1 /* SmileKeychainWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SmileKeychainWrapper.m; sourceTree = ""; }; + 1279C3AE0D4DE83D4D647F9D /* Pods-Smile TouchID.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Smile TouchID.release.xcconfig"; sourceTree = ""; }; + 16E0FCBD5E64AF016362C35F /* Pods-Smile TouchID-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Smile TouchID-dummy.m"; sourceTree = ""; }; + 17B91BA525472F8D77BC1935 /* Pods-Smile TouchID-SmileTouchID-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Smile TouchID-SmileTouchID-dummy.m"; sourceTree = ""; }; + 207B08E0874003514169ACE8 /* SmileAuthenticator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SmileAuthenticator.h; sourceTree = ""; }; + 260F79FF09D41020DBE085B9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 2C079D9D06E03F04932778F1 /* SmileSettingVC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SmileSettingVC.m; sourceTree = ""; }; + 31BF0C2BE281836BCB67F544 /* Pods-Smile TouchID.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Smile TouchID.debug.xcconfig"; sourceTree = ""; }; + 3B0D13B303B87D36BF5D1AA1 /* SmilePasswordView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SmilePasswordView.h; sourceTree = ""; }; + 401DD65E28BA8C95B1625C12 /* libPods-Smile TouchID-SmileTouchID.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Smile TouchID-SmileTouchID.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 464D95CC4BE0BEA10C01B129 /* Pods-Smile TouchID-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Smile TouchID-acknowledgements.plist"; sourceTree = ""; }; + 47DA3BC435D289FF38412642 /* SmileAuthenticator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SmileAuthenticator.m; sourceTree = ""; }; + 48281C930358F653C3EA13D4 /* Pods-Smile TouchID-SmileTouchID-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Smile TouchID-SmileTouchID-Private.xcconfig"; sourceTree = ""; }; + 548F90237ECEB1546F2F2386 /* SmileSettingVC.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; path = SmileSettingVC.storyboard; sourceTree = ""; }; + 6A8D48FB7CD7AC3DE01A66AD /* libPods-Smile TouchID.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Smile TouchID.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6D183F568FF85F0F596BB4FF /* smile_Touch_ID@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "smile_Touch_ID@2x.png"; sourceTree = ""; }; + 8482E9847E7E5EDFD50124FC /* SmileKeychainWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SmileKeychainWrapper.h; sourceTree = ""; }; + 9B69A8F76CF0BE67D32C01BA /* smile_Touch_ID@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = "smile_Touch_ID@3x.png"; sourceTree = ""; }; + AD77FB2111F66F77A29A9E58 /* Pods-Smile TouchID-SmileTouchID-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Smile TouchID-SmileTouchID-prefix.pch"; sourceTree = ""; }; + B14BE8E921FD55B2601B12E8 /* Pods-Smile TouchID-SmileTouchID.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Smile TouchID-SmileTouchID.xcconfig"; sourceTree = ""; }; + B6DD2B0C39495F622B4D16C0 /* Pods-Smile TouchID-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Smile TouchID-environment.h"; sourceTree = ""; }; + BFC9CFC839BBB1235565DC97 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + CF8CCB2E72C8C6435630DB7D /* Pods-Smile TouchID-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Smile TouchID-acknowledgements.markdown"; sourceTree = ""; }; + CF9894EC9EC7A8F60C1D081A /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + DA956F429583EE09F8055DA2 /* SmilePasswordContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SmilePasswordContainerView.m; sourceTree = ""; }; + DCD6CC3B1DD156AA81EDFE2B /* SmileSettingVC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SmileSettingVC.h; sourceTree = ""; }; + E292D1880CBE1A32E754CF8E /* SmilePasswordView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SmilePasswordView.m; sourceTree = ""; }; + EBB7B0069EEFF9EB0947403E /* Pods-Smile TouchID-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Smile TouchID-resources.sh"; sourceTree = ""; }; + FD571CCAE0E68C241A237B2E /* SmilePasswordContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SmilePasswordContainerView.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 43320F94BCD0119C74F2EE61 /* Frameworks */ = { + 63B33B98BD814EBA4F761CDE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0152378E3B4B0073C51489D0 /* Foundation.framework in Frameworks */, + DB1DB4ADA299234021F8FB7D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 463BDE61082222DB653E351F /* Frameworks */ = { + 81E6B1E1D7552CE7FB1DB131 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6A8975E809B142B9B36513FF /* Foundation.framework in Frameworks */, - FE169C02EB715A93968EA5F0 /* UIKit.framework in Frameworks */, + 399622070217F4E87EB708D6 /* Foundation.framework in Frameworks */, + 9B8E7BC6FC5424D2A8A6C67D /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 007916B84496541C7FC843F5 /* Products */ = { + 01689EFF4804975BA1F17FF1 = { isa = PBXGroup; children = ( - AE8E127D712C0D9F94AA1E28 /* libPods-Smile TouchID.a */, - B7CE763F75F272CC24364FF9 /* libPods-Smile TouchID-SmileTouchID.a */, + CF9894EC9EC7A8F60C1D081A /* Podfile */, + D2BC31C0A4448FF69EBC301B /* Development Pods */, + 48D8188E89C7480D8D79D966 /* Frameworks */, + 58ADFD228BED2F192818EABE /* Products */, + 9FDF45E86B29CD7E88BF0FCA /* Targets Support Files */, ); - name = Products; sourceTree = ""; }; - 078AD2993E4549E2D32F7950 /* Support Files */ = { + 0466CC1770038784D58B27C5 /* Support Files */ = { isa = PBXGroup; children = ( - 7242F482A0DD9954E9EB7C8F /* Pods-Smile TouchID-SmileTouchID.xcconfig */, - B38E20509FE884ABE9B1B7F8 /* Pods-Smile TouchID-SmileTouchID-Private.xcconfig */, - B8F032706D746D3A663FEB01 /* Pods-Smile TouchID-SmileTouchID-dummy.m */, - ED75B227F8449F5AB6EA672F /* Pods-Smile TouchID-SmileTouchID-prefix.pch */, + B14BE8E921FD55B2601B12E8 /* Pods-Smile TouchID-SmileTouchID.xcconfig */, + 48281C930358F653C3EA13D4 /* Pods-Smile TouchID-SmileTouchID-Private.xcconfig */, + 17B91BA525472F8D77BC1935 /* Pods-Smile TouchID-SmileTouchID-dummy.m */, + AD77FB2111F66F77A29A9E58 /* Pods-Smile TouchID-SmileTouchID-prefix.pch */, ); name = "Support Files"; - path = "../Target Support Files/Pods-Smile TouchID-SmileTouchID"; + path = "Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID"; + sourceTree = ""; + }; + 36C7BDF62151E92406DFA6B4 /* iOS */ = { + isa = PBXGroup; + children = ( + BFC9CFC839BBB1235565DC97 /* Foundation.framework */, + 260F79FF09D41020DBE085B9 /* UIKit.framework */, + ); + name = iOS; sourceTree = ""; }; - 08443E1726DFE2A38460139F /* Frameworks */ = { + 48D8188E89C7480D8D79D966 /* Frameworks */ = { isa = PBXGroup; children = ( - FAAB45A76A01B7B266C4D1EB /* iOS */, + 36C7BDF62151E92406DFA6B4 /* iOS */, ); name = Frameworks; sourceTree = ""; }; - 2BCB3753B10BECD873382EDD = { + 5859262B80022211373AF4C3 /* Assets */ = { isa = PBXGroup; children = ( - 9F4F4E18DE202700006FC353 /* Podfile */, - 08443E1726DFE2A38460139F /* Frameworks */, - B55A5EA8FB134AEC79BBC997 /* Pods */, - 007916B84496541C7FC843F5 /* Products */, - 9CA26D7A938E5E2B186F5431 /* Targets Support Files */, + 548F90237ECEB1546F2F2386 /* SmileSettingVC.storyboard */, + 6D183F568FF85F0F596BB4FF /* smile_Touch_ID@2x.png */, + 9B69A8F76CF0BE67D32C01BA /* smile_Touch_ID@3x.png */, ); + path = Assets; sourceTree = ""; }; - 42A206E70F724E47CC8BE951 /* SmileTouchID */ = { + 58ADFD228BED2F192818EABE /* Products */ = { isa = PBXGroup; children = ( - 93AE515AD6A16515D5357A5C /* SmileAuthenticator.h */, - 65E0400B9656D3B5EAAA4753 /* SmileAuthenticator.m */, - 8B12D0FE089825E0C3A426B4 /* SmileKeychainWrapper.h */, - AC371C61D7740552F70EBD37 /* SmileKeychainWrapper.m */, - 8B7AED1950E258DA21FFDC90 /* SmilePasswordContainerView.h */, - 5282FAFF55B6187B0C9C83C2 /* SmilePasswordContainerView.m */, - 3970E0B292959CEB16BA336C /* SmilePasswordView.h */, - 7EF8245A720D8D61D1F024C5 /* SmilePasswordView.m */, - 690557C3DF7DD849C4ECA578 /* SmileSettingVC.h */, - 5D52A0C04FAB5C612FF10890 /* SmileSettingVC.m */, - 99580AF813B22D794D3052B7 /* Resources */, - 078AD2993E4549E2D32F7950 /* Support Files */, + 6A8D48FB7CD7AC3DE01A66AD /* libPods-Smile TouchID.a */, + 401DD65E28BA8C95B1625C12 /* libPods-Smile TouchID-SmileTouchID.a */, ); - path = SmileTouchID; + name = Products; sourceTree = ""; }; - 65A90DD38416B91AC410A0E2 /* Pods-Smile TouchID */ = { + 5CC3CF6923EE5C6F9A0995D8 /* Pods-Smile TouchID */ = { isa = PBXGroup; children = ( - 583920E860B9F99AA3AE9B67 /* Pods-Smile TouchID-acknowledgements.markdown */, - 10EE71F0F75A22C75DF40F83 /* Pods-Smile TouchID-acknowledgements.plist */, - 88E0E2310C07CBC34DB558FF /* Pods-Smile TouchID-dummy.m */, - 27A6D9B6657859D2BF89DE8B /* Pods-Smile TouchID-environment.h */, - CBBEC26AE9E1287343F4AA3E /* Pods-Smile TouchID-resources.sh */, - 52BE46CC52C60BD28CA6DB76 /* Pods-Smile TouchID.debug.xcconfig */, - 77F6C8A1DF9FE3D5547D7821 /* Pods-Smile TouchID.release.xcconfig */, + CF8CCB2E72C8C6435630DB7D /* Pods-Smile TouchID-acknowledgements.markdown */, + 464D95CC4BE0BEA10C01B129 /* Pods-Smile TouchID-acknowledgements.plist */, + 16E0FCBD5E64AF016362C35F /* Pods-Smile TouchID-dummy.m */, + B6DD2B0C39495F622B4D16C0 /* Pods-Smile TouchID-environment.h */, + EBB7B0069EEFF9EB0947403E /* Pods-Smile TouchID-resources.sh */, + 31BF0C2BE281836BCB67F544 /* Pods-Smile TouchID.debug.xcconfig */, + 1279C3AE0D4DE83D4D647F9D /* Pods-Smile TouchID.release.xcconfig */, ); name = "Pods-Smile TouchID"; path = "Target Support Files/Pods-Smile TouchID"; sourceTree = ""; }; - 99580AF813B22D794D3052B7 /* Resources */ = { + 72D96100CB860B3F0C761CB4 /* SmileTouchID */ = { + isa = PBXGroup; + children = ( + 97879112EE8241C6A8DD6F34 /* Resources */, + 873E5547B912DD2479F88259 /* SmileAuth */, + 0466CC1770038784D58B27C5 /* Support Files */, + ); + name = SmileTouchID; + path = ../..; + sourceTree = ""; + }; + 873E5547B912DD2479F88259 /* SmileAuth */ = { + isa = PBXGroup; + children = ( + DA7B0B4BA1EEE7DA92AC3B49 /* Classes */, + ); + path = SmileAuth; + sourceTree = ""; + }; + 97879112EE8241C6A8DD6F34 /* Resources */ = { isa = PBXGroup; children = ( - A1B93515A4037849273A4379 /* SmileSettingVC.storyboard */, - 2953C52B0674F1AB5DAAC7F4 /* smile_Touch_ID@2x.png */, - CACB6D800338024223C97653 /* smile_Touch_ID@3x.png */, + 9B2CAE2AF15D07CE686AC794 /* SmileAuth */, ); name = Resources; sourceTree = ""; }; - 9CA26D7A938E5E2B186F5431 /* Targets Support Files */ = { + 9B2CAE2AF15D07CE686AC794 /* SmileAuth */ = { + isa = PBXGroup; + children = ( + 5859262B80022211373AF4C3 /* Assets */, + ); + path = SmileAuth; + sourceTree = ""; + }; + 9FDF45E86B29CD7E88BF0FCA /* Targets Support Files */ = { isa = PBXGroup; children = ( - 65A90DD38416B91AC410A0E2 /* Pods-Smile TouchID */, + 5CC3CF6923EE5C6F9A0995D8 /* Pods-Smile TouchID */, ); name = "Targets Support Files"; sourceTree = ""; }; - B55A5EA8FB134AEC79BBC997 /* Pods */ = { + D2BC31C0A4448FF69EBC301B /* Development Pods */ = { isa = PBXGroup; children = ( - 42A206E70F724E47CC8BE951 /* SmileTouchID */, + 72D96100CB860B3F0C761CB4 /* SmileTouchID */, ); - name = Pods; + name = "Development Pods"; sourceTree = ""; }; - FAAB45A76A01B7B266C4D1EB /* iOS */ = { + DA7B0B4BA1EEE7DA92AC3B49 /* Classes */ = { isa = PBXGroup; children = ( - DE74235B090466D86C58A2F1 /* Foundation.framework */, - B9C6276A421B671870FEE0B1 /* UIKit.framework */, + 207B08E0874003514169ACE8 /* SmileAuthenticator.h */, + 47DA3BC435D289FF38412642 /* SmileAuthenticator.m */, + 8482E9847E7E5EDFD50124FC /* SmileKeychainWrapper.h */, + 055CE374D02AC6B3422B68C1 /* SmileKeychainWrapper.m */, + FD571CCAE0E68C241A237B2E /* SmilePasswordContainerView.h */, + DA956F429583EE09F8055DA2 /* SmilePasswordContainerView.m */, + 3B0D13B303B87D36BF5D1AA1 /* SmilePasswordView.h */, + E292D1880CBE1A32E754CF8E /* SmilePasswordView.m */, + DCD6CC3B1DD156AA81EDFE2B /* SmileSettingVC.h */, + 2C079D9D06E03F04932778F1 /* SmileSettingVC.m */, ); - name = iOS; + path = Classes; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - B5E22F10DD2F6E79A5106C17 /* Headers */ = { + 4FA92DBCE181297C747F641A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4DED7F4B6540BAA37C13EFB6 /* SmileAuthenticator.h in Headers */, - AD73D3A5C35C0C337C7CEFF1 /* SmileKeychainWrapper.h in Headers */, - 8A606FB1C7B9CFB12EE43C5D /* SmilePasswordContainerView.h in Headers */, - EF4C229EB5E14139FD151534 /* SmilePasswordView.h in Headers */, - 4980FEBCF729DDBF3D500F9E /* SmileSettingVC.h in Headers */, + F1A71B25ECFFDFD3B33F36D3 /* SmileAuthenticator.h in Headers */, + BF8863ED7E5E544C9FB9E316 /* SmileKeychainWrapper.h in Headers */, + B9770AD9FE557D309981881F /* SmilePasswordContainerView.h in Headers */, + 9E7047A46DFDB0178B00DF68 /* SmilePasswordView.h in Headers */, + E21A5A012C9FD665DCEA7F60 /* SmileSettingVC.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 6A6CBB16DC186C417C624FA7 /* Pods-Smile TouchID */ = { + A5D78E01FB53A7A87EAFEF66 /* Pods-Smile TouchID */ = { isa = PBXNativeTarget; - buildConfigurationList = 47CCB330FC73B4BF5ECBCA2D /* Build configuration list for PBXNativeTarget "Pods-Smile TouchID" */; + buildConfigurationList = 5923A3D8DB0AB9471C7104F2 /* Build configuration list for PBXNativeTarget "Pods-Smile TouchID" */; buildPhases = ( - F59A26A98CCD67C0DB7BD63F /* Sources */, - 43320F94BCD0119C74F2EE61 /* Frameworks */, + 72695C5F540870DEC68CAE95 /* Sources */, + 63B33B98BD814EBA4F761CDE /* Frameworks */, ); buildRules = ( ); dependencies = ( - E02C4A692652A7ACA73E0D6E /* PBXTargetDependency */, + 6CB412D84F96D09EDC290C66 /* PBXTargetDependency */, ); name = "Pods-Smile TouchID"; productName = "Pods-Smile TouchID"; - productReference = AE8E127D712C0D9F94AA1E28 /* libPods-Smile TouchID.a */; + productReference = 6A8D48FB7CD7AC3DE01A66AD /* libPods-Smile TouchID.a */; productType = "com.apple.product-type.library.static"; }; - 90788C8C88B8516115518613 /* Pods-Smile TouchID-SmileTouchID */ = { + A9CD68B19E9F46CA6F14E134 /* Pods-Smile TouchID-SmileTouchID */ = { isa = PBXNativeTarget; - buildConfigurationList = CD9251D31894AF7A201A2C21 /* Build configuration list for PBXNativeTarget "Pods-Smile TouchID-SmileTouchID" */; + buildConfigurationList = EB6E59EE87E1DF23ACB5E2C3 /* Build configuration list for PBXNativeTarget "Pods-Smile TouchID-SmileTouchID" */; buildPhases = ( - 3290A6DAA61C3240E8F35A08 /* Sources */, - 463BDE61082222DB653E351F /* Frameworks */, - B5E22F10DD2F6E79A5106C17 /* Headers */, + CF18F27A77A23D48AA5B6A67 /* Sources */, + 81E6B1E1D7552CE7FB1DB131 /* Frameworks */, + 4FA92DBCE181297C747F641A /* Headers */, ); buildRules = ( ); @@ -245,70 +278,70 @@ ); name = "Pods-Smile TouchID-SmileTouchID"; productName = "Pods-Smile TouchID-SmileTouchID"; - productReference = B7CE763F75F272CC24364FF9 /* libPods-Smile TouchID-SmileTouchID.a */; + productReference = 401DD65E28BA8C95B1625C12 /* libPods-Smile TouchID-SmileTouchID.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 114CFF51E94C5888DC8B9EAF /* Project object */ = { + 197DA4A766DB84A287DFDFAD /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0640; }; - buildConfigurationList = 5554A8233E377AE166E90247 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = 6D234947FFF211E35D01AF1C /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 2BCB3753B10BECD873382EDD; - productRefGroup = 007916B84496541C7FC843F5 /* Products */; + mainGroup = 01689EFF4804975BA1F17FF1; + productRefGroup = 58ADFD228BED2F192818EABE /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 6A6CBB16DC186C417C624FA7 /* Pods-Smile TouchID */, - 90788C8C88B8516115518613 /* Pods-Smile TouchID-SmileTouchID */, + A5D78E01FB53A7A87EAFEF66 /* Pods-Smile TouchID */, + A9CD68B19E9F46CA6F14E134 /* Pods-Smile TouchID-SmileTouchID */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 3290A6DAA61C3240E8F35A08 /* Sources */ = { + 72695C5F540870DEC68CAE95 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 05BAEF552AF117EAB37E444B /* Pods-Smile TouchID-SmileTouchID-dummy.m in Sources */, - 920061B86DBD65115F24A17E /* SmileAuthenticator.m in Sources */, - 221BC24FEFA2CBB7817AD0B8 /* SmileKeychainWrapper.m in Sources */, - BF79868533E49C611B1056F7 /* SmilePasswordContainerView.m in Sources */, - 837F5B43432EE64770B45641 /* SmilePasswordView.m in Sources */, - CC0151349244A0CCB321DF31 /* SmileSettingVC.m in Sources */, + F6A72799FA21AB7950320829 /* Pods-Smile TouchID-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F59A26A98CCD67C0DB7BD63F /* Sources */ = { + CF18F27A77A23D48AA5B6A67 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 72FC94E63AF49119522F83A9 /* Pods-Smile TouchID-dummy.m in Sources */, + 838E6E0C133B8805ECB29210 /* Pods-Smile TouchID-SmileTouchID-dummy.m in Sources */, + 03AF42C54E9339DF1B7F336D /* SmileAuthenticator.m in Sources */, + BECE4BC9FE8430F180D3E38F /* SmileKeychainWrapper.m in Sources */, + DE493D3C8A70CEFC16E41FEE /* SmilePasswordContainerView.m in Sources */, + E18856CF945B160FDF24E5EE /* SmilePasswordView.m in Sources */, + 3C6C4CFF84252AD205B9FAE7 /* SmileSettingVC.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - E02C4A692652A7ACA73E0D6E /* PBXTargetDependency */ = { + 6CB412D84F96D09EDC290C66 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-Smile TouchID-SmileTouchID"; - target = 90788C8C88B8516115518613 /* Pods-Smile TouchID-SmileTouchID */; - targetProxy = 4D48016AE6D4AF0AC3AD4A44 /* PBXContainerItemProxy */; + target = A9CD68B19E9F46CA6F14E134 /* Pods-Smile TouchID-SmileTouchID */; + targetProxy = 3603B718131BFA1643095C0A /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 26F4475861E49954E1709D9B /* Release */ = { + 2BCD2A3A232200E92AE98A7D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -342,25 +375,48 @@ }; name = Release; }; - 33C379B6218398E7456EF323 /* Debug */ = { + 349D37840FFE76CABA9B3BC3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B38E20509FE884ABE9B1B7F8 /* Pods-Smile TouchID-SmileTouchID-Private.xcconfig */; buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-prefix.pch"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 7.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; + ONLY_ACTIVE_ARCH = YES; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; }; name = Debug; }; - 42C2B259478B796C4AD78074 /* Release */ = { + 5F334DF8EA35DC92A391F9FB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B38E20509FE884ABE9B1B7F8 /* Pods-Smile TouchID-SmileTouchID-Private.xcconfig */; + baseConfigurationReference = 48281C930358F653C3EA13D4 /* Pods-Smile TouchID-SmileTouchID-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-prefix.pch"; @@ -374,9 +430,9 @@ }; name = Release; }; - 7F52399BD3DAF6ACFE4698A3 /* Debug */ = { + 60755A3A6794EF4C6D0984F5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 52BE46CC52C60BD28CA6DB76 /* Pods-Smile TouchID.debug.xcconfig */; + baseConfigurationReference = 31BF0C2BE281836BCB67F544 /* Pods-Smile TouchID.debug.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; IPHONEOS_DEPLOYMENT_TARGET = 7.0; @@ -390,92 +446,69 @@ }; name = Debug; }; - 8BF2F128D4BCBE49A9697993 /* Release */ = { + 992FA637DAF83587A01ED762 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 77F6C8A1DF9FE3D5547D7821 /* Pods-Smile TouchID.release.xcconfig */; + baseConfigurationReference = 48281C930358F653C3EA13D4 /* Pods-Smile TouchID-SmileTouchID-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; }; - name = Release; + name = Debug; }; - D548315A57FFEC7FC0EC36EE /* Debug */ = { + CD589509B76F15CD8C09F719 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 1279C3AE0D4DE83D4D647F9D /* Pods-Smile TouchID.release.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; IPHONEOS_DEPLOYMENT_TARGET = 7.0; - ONLY_ACTIVE_ARCH = YES; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; }; - name = Debug; + name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 47CCB330FC73B4BF5ECBCA2D /* Build configuration list for PBXNativeTarget "Pods-Smile TouchID" */ = { + 5923A3D8DB0AB9471C7104F2 /* Build configuration list for PBXNativeTarget "Pods-Smile TouchID" */ = { isa = XCConfigurationList; buildConfigurations = ( - 7F52399BD3DAF6ACFE4698A3 /* Debug */, - 8BF2F128D4BCBE49A9697993 /* Release */, + 60755A3A6794EF4C6D0984F5 /* Debug */, + CD589509B76F15CD8C09F719 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5554A8233E377AE166E90247 /* Build configuration list for PBXProject "Pods" */ = { + 6D234947FFF211E35D01AF1C /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - D548315A57FFEC7FC0EC36EE /* Debug */, - 26F4475861E49954E1709D9B /* Release */, + 349D37840FFE76CABA9B3BC3 /* Debug */, + 2BCD2A3A232200E92AE98A7D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CD9251D31894AF7A201A2C21 /* Build configuration list for PBXNativeTarget "Pods-Smile TouchID-SmileTouchID" */ = { + EB6E59EE87E1DF23ACB5E2C3 /* Build configuration list for PBXNativeTarget "Pods-Smile TouchID-SmileTouchID" */ = { isa = XCConfigurationList; buildConfigurations = ( - 33C379B6218398E7456EF323 /* Debug */, - 42C2B259478B796C4AD78074 /* Release */, + 992FA637DAF83587A01ED762 /* Debug */, + 5F334DF8EA35DC92A391F9FB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 114CFF51E94C5888DC8B9EAF /* Project object */; + rootObject = 197DA4A766DB84A287DFDFAD /* Project object */; } diff --git a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Smile TouchID-SmileTouchID.xcscheme b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Smile TouchID-SmileTouchID.xcscheme index 9882652..38eea63 100644 --- a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Smile TouchID-SmileTouchID.xcscheme +++ b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Smile TouchID-SmileTouchID.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-Private.xcconfig b/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-Private.xcconfig deleted file mode 100644 index b6b8f21..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-Private.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -#include "Pods-Smile TouchID-SmileTouchID.xcconfig" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SmileTouchID" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SmileTouchID" -OTHER_LDFLAGS = ${PODS_SMILE_TOUCHID_SMILETOUCHID_OTHER_LDFLAGS} -ObjC -PODS_ROOT = ${SRCROOT} -SKIP_INSTALL = YES \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-dummy.m b/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-dummy.m deleted file mode 100644 index 0a6bd9d..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_Smile_TouchID_SmileTouchID : NSObject -@end -@implementation PodsDummy_Pods_Smile_TouchID_SmileTouchID -@end diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-prefix.pch b/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-prefix.pch deleted file mode 100644 index 82d9084..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID-prefix.pch +++ /dev/null @@ -1,5 +0,0 @@ -#ifdef __OBJC__ -#import -#endif - -#import "Pods-Smile TouchID-environment.h" diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID.xcconfig b/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID.xcconfig deleted file mode 100644 index 29005a7..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID-SmileTouchID/Pods-Smile TouchID-SmileTouchID.xcconfig +++ /dev/null @@ -1 +0,0 @@ -PODS_SMILE_TOUCHID_SMILETOUCHID_OTHER_LDFLAGS = -framework "UIKit" -weak_framework "LocalAuthentication" \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-acknowledgements.markdown deleted file mode 100644 index 9c6f2b9..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-acknowledgements.markdown +++ /dev/null @@ -1,28 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## SmileTouchID - -The MIT License (MIT) - -Copyright (c) 2015 LIU YUCHEN - -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. - -Generated by CocoaPods - http://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-acknowledgements.plist deleted file mode 100644 index 19e223b..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-acknowledgements.plist +++ /dev/null @@ -1,58 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - The MIT License (MIT) - -Copyright (c) 2015 LIU YUCHEN - -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. - - Title - SmileTouchID - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - http://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-dummy.m b/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-dummy.m deleted file mode 100644 index 3b64a03..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_Smile_TouchID : NSObject -@end -@implementation PodsDummy_Pods_Smile_TouchID -@end diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-environment.h b/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-environment.h deleted file mode 100644 index a809a8b..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-environment.h +++ /dev/null @@ -1,14 +0,0 @@ - -// To check if a library is compiled with CocoaPods you -// can use the `COCOAPODS` macro definition which is -// defined in the xcconfigs so it is available in -// headers also when they are imported in the client -// project. - - -// SmileTouchID -#define COCOAPODS_POD_AVAILABLE_SmileTouchID -#define COCOAPODS_VERSION_MAJOR_SmileTouchID 0 -#define COCOAPODS_VERSION_MINOR_SmileTouchID 0 -#define COCOAPODS_VERSION_PATCH_SmileTouchID 9 - diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-resources.sh b/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-resources.sh deleted file mode 100755 index 29a7168..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID-resources.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/sh -set -e - -mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -realpath() { - DIRECTORY=$(cd "${1%/*}" && pwd) - FILENAME="${1##*/}" - echo "$DIRECTORY/$FILENAME" -} - -install_resource() -{ - case $1 in - *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" - ;; - *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" - ;; - *.framework) - echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" - xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - /*) - echo "$1" - echo "$1" >> "$RESOURCES_TO_COPY" - ;; - *) - echo "${PODS_ROOT}/$1" - echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" - ;; - esac -} -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_resource "SmileTouchID/SmileAuth/Assets/smile_Touch_ID@2x.png" - install_resource "SmileTouchID/SmileAuth/Assets/smile_Touch_ID@3x.png" - install_resource "SmileTouchID/SmileAuth/Assets/SmileSettingVC.storyboard" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_resource "SmileTouchID/SmileAuth/Assets/smile_Touch_ID@2x.png" - install_resource "SmileTouchID/SmileAuth/Assets/smile_Touch_ID@3x.png" - install_resource "SmileTouchID/SmileAuth/Assets/SmileSettingVC.storyboard" -fi - -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]]; then - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] -then - case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; - esac - - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "`realpath $PODS_ROOT`*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID.debug.xcconfig b/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID.debug.xcconfig deleted file mode 100644 index 12395a2..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID.debug.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SmileTouchID" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SmileTouchID" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Pods-Smile TouchID-SmileTouchID" -framework "UIKit" -weak_framework "LocalAuthentication" -OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) -PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID.release.xcconfig b/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID.release.xcconfig deleted file mode 100644 index 12395a2..0000000 --- a/Example/Pods/Target Support Files/Pods-Smile TouchID/Pods-Smile TouchID.release.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SmileTouchID" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SmileTouchID" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Pods-Smile TouchID-SmileTouchID" -framework "UIKit" -weak_framework "LocalAuthentication" -OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) -PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Example/TouchID/AppDelegate.m b/Example/TouchID/AppDelegate.m index 89e7702..350d367 100644 --- a/Example/TouchID/AppDelegate.m +++ b/Example/TouchID/AppDelegate.m @@ -21,9 +21,6 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( [SmileAuthenticator sharedInstance].rootVC = self.window.rootViewController; - //the reason for use Touch ID - [SmileAuthenticator sharedInstance].localizedReason = NSLocalizedString(@"SMILE_REASON", nil); - //customize [SmileAuthenticator sharedInstance].passcodeDigit = 6; [SmileAuthenticator sharedInstance].tintColor = [UIColor purpleColor]; diff --git a/Example/TouchID/Base.lproj/Localizable.strings b/Example/TouchID/Base.lproj/Localizable.strings index 55c9350..4b92240 100644 --- a/Example/TouchID/Base.lproj/Localizable.strings +++ b/Example/TouchID/Base.lproj/Localizable.strings @@ -37,5 +37,5 @@ INPUT_THREE */ "SMILE_INPUT_THREE_TITLE" = "Change Passcode"; -"SMILE_INPUT_THREE_STEP_1" = "Enter your new %ld digit Passcode"; -"SMILE_INPUT_THREE_STEP_2" = "Enter your old %ld digit Passcode"; \ No newline at end of file +"SMILE_INPUT_THREE_STEP_1_DESCRIPTION" = "Enter your old %ld digit Passcode"; +"SMILE_INPUT_THREE_STEP_2_DESCRIPTION" = "Enter your new %ld digit Passcode"; \ No newline at end of file diff --git a/Example/TouchID/SmileMainVC.m b/Example/TouchID/SmileMainVC.m index bd64a89..046457a 100644 --- a/Example/TouchID/SmileMainVC.m +++ b/Example/TouchID/SmileMainVC.m @@ -9,7 +9,7 @@ #import "SmileMainVC.h" #import "SmileAuthenticator.h" -@interface SmileMainVC () +@interface SmileMainVC () @property (weak, nonatomic) IBOutlet UISwitch *mySwitch; @property (weak, nonatomic) IBOutlet UIButton *changePasswordButton; @@ -70,6 +70,18 @@ -(void)userSuccessAuthentication{ NSLog(@"userSuccessAuthentication"); } +-(void)userTurnPasswordOn{ + NSLog(@"userTurnPasswordOn"); +} + +-(void)userTurnPasswordOff{ + NSLog(@"userTurnPasswordOff"); +} + +-(void)userChangePassword{ + NSLog(@"userChangePassword"); +} + -(void)AuthViewControllerPresented{ NSLog(@"presentAuthViewController"); } diff --git a/Example/demo_gif/ios7.png b/Example/demo_gif/ios7.png deleted file mode 100644 index 9c200ec..0000000 Binary files a/Example/demo_gif/ios7.png and /dev/null differ diff --git a/Example/demo_video/demo1.mov b/Example/demo_video/demo1.mov deleted file mode 100644 index b4ccb12..0000000 Binary files a/Example/demo_video/demo1.mov and /dev/null differ diff --git a/Example/demo_video/demo2.mov b/Example/demo_video/demo2.mov deleted file mode 100644 index 4b867db..0000000 Binary files a/Example/demo_video/demo2.mov and /dev/null differ diff --git a/Example/demo_video/demo3.mov b/Example/demo_video/demo3.mov deleted file mode 100644 index 7f24142..0000000 Binary files a/Example/demo_video/demo3.mov and /dev/null differ diff --git a/Example/demo_video/demo_full.mov b/Example/demo_video/demo_full.mov deleted file mode 100644 index d48ed04..0000000 Binary files a/Example/demo_video/demo_full.mov and /dev/null differ diff --git a/SmileAuth/Classes/SmileAuthenticator.h b/SmileAuth/Classes/SmileAuthenticator.h index a3435df..a78db8c 100644 --- a/SmileAuth/Classes/SmileAuthenticator.h +++ b/SmileAuth/Classes/SmileAuthenticator.h @@ -11,8 +11,6 @@ #import "SmileKeychainWrapper.h" #import "SmileSettingVC.h" - -#define DispatchMainThread(block, ...) if(block) dispatch_async(dispatch_get_main_queue(), ^{ block(__VA_ARGS__); }) typedef void(^AuthCompletionBlock)(); typedef void(^AuthErrorBlock)(LAError); @@ -35,7 +33,7 @@ typedef NS_ENUM(int, SecurityType) { INPUT_TOUCHID, }; -@protocol AuthenticatorDelegate; +@protocol SmileAuthenticatorDelegate; @interface SmileAuthenticator : NSObject @@ -43,7 +41,7 @@ typedef NS_ENUM(int, SecurityType) { @property (nonatomic, strong) SmileKeychainWrapper *keychainWrapper; @property (nonatomic, assign) SecurityType securityType; @property (nonatomic, strong) UIViewController *rootVC; -@property (nonatomic, weak) id delegate; +@property (nonatomic, weak) id delegate; /*!@brief For customization, use this property to customize tint color. The default color is pink.*/ @property (nonatomic, strong) UIColor *tintColor; /*!@brief For customization, use this property to customize description label text color. The default color is black, if nightMode on, the color is white.*/ @@ -56,10 +54,12 @@ typedef NS_ENUM(int, SecurityType) { @property (nonatomic, strong) UIImage *backgroundImage; /*!@brief For customization, use this property to change passcode digit. The default digit is 4.*/ @property (nonatomic) NSInteger passcodeDigit; -/*!@brief For customization, change UINavigationBar to transparent, if set it to Yes.*/ +/*!@brief For customization, if set it to Yes, change UINavigationBar to transparent, the default value is No.*/ @property (nonatomic) BOOL navibarTranslucent; -/*!@brief For customization, change to a black style UI, if set it to Yes.*/ +/*!@brief For customization, if set it to Yes, change to a black style UI, the default value is No.*/ @property (nonatomic) BOOL nightMode; +/*!@brief For customization, if set it to Yes, add parallax effect to password circle views, the default value is Yes.*/ +@property (nonatomic) BOOL parallaxMode; +(SmileAuthenticator*)sharedInstance; + (BOOL)canAuthenticateWithError:(NSError **) error; @@ -69,14 +69,17 @@ typedef NS_ENUM(int, SecurityType) { -(void)userSetPassword:(NSString*)newPassword; -(void)authenticateWithSuccess:(AuthCompletionBlock) authSuccessBlock andFailure:(AuthErrorBlock) failureBlock; + -(void)presentAuthViewController; -(void)authViewControllerDismissed; -(void)touchID_OR_PasswordAuthSuccess; -(void)touchID_OR_PasswordAuthFail:(NSInteger)failCount; - +-(void)touchID_OR_PasswordTurnOff; +-(void)touchID_OR_PasswordTurnOn; +-(void)touchID_OR_PasswordChange; @end -@protocol AuthenticatorDelegate +@protocol SmileAuthenticatorDelegate @optional /*!The method is called when AuthViewController be presented*/ -(void)AuthViewControllerPresented; @@ -89,4 +92,13 @@ typedef NS_ENUM(int, SecurityType) { @optional /*!The method is called when authentication failed*/ -(void)userFailAuthenticationWithCount:(NSInteger)failCount; +@optional +/*!The method is called when user turn password on.*/ +-(void)userTurnPasswordOn; +@optional +/*!The method is called when user turn password off.*/ +-(void)userTurnPasswordOff; +@optional +/*!The method is called when user change password.*/ +-(void)userChangePassword; @end diff --git a/SmileAuth/Classes/SmileAuthenticator.m b/SmileAuth/Classes/SmileAuthenticator.m index dc5c537..809ab87 100644 --- a/SmileAuth/Classes/SmileAuthenticator.m +++ b/SmileAuth/Classes/SmileAuthenticator.m @@ -11,11 +11,12 @@ #define kPasswordLength 4 #define kTouchIDIcon @"smile_Touch_ID" -static NSString *kDefaultReason = @"Unlock to access"; static NSString *kKeyChainObjectKey = @"v_Data"; static NSString *kStoryBoardName = @"SmileSettingVC"; static NSString *kSmileSettingNaviID = @"smileSettingsNavi"; +#define SmileTouchID_DispatchMainThread(block, ...) if(block) dispatch_async(dispatch_get_main_queue(), ^{ block(__VA_ARGS__); }) + @interface SmileAuthenticator() @property (nonatomic, assign) LAPolicy policy; @@ -48,33 +49,13 @@ -(NSString *)touchIDIconName{ } } +#pragma mark - dealloc + -(void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self]; } --(void)logDismissAuthVCReason{ - NSString *reason; - switch (self.securityType) { - case INPUT_ONCE: - reason = @"user turn password off"; - break; - - case INPUT_TWICE: - reason = @"user turn password on"; - break; - - case INPUT_THREE: - reason = @"user change password"; - break; - - case INPUT_TOUCHID: - reason = @"user launch app"; - break; - - default: - break; - } -} +#pragma mark - for Delegate -(void)touchID_OR_PasswordAuthSuccess{ if ([self.delegate respondsToSelector:@selector(userSuccessAuthentication)]) { @@ -88,27 +69,21 @@ -(void)touchID_OR_PasswordAuthFail:(NSInteger)failCount{ } } --(void)logPresentAuthVCReason{ - NSString *reason; - switch (self.securityType) { - case INPUT_ONCE: - reason = @"user turn password off"; - break; - - case INPUT_TWICE: - reason = @"user turn password on"; - break; - - case INPUT_THREE: - reason = @"user change password"; - break; - - case INPUT_TOUCHID: - reason = @"user launch app"; - break; - - default: - break; +-(void)touchID_OR_PasswordTurnOff{ + if ([self.delegate respondsToSelector:@selector(userTurnPasswordOff)]) { + [self.delegate userTurnPasswordOff]; + } +} + +-(void)touchID_OR_PasswordTurnOn{ + if ([self.delegate respondsToSelector:@selector(userTurnPasswordOn)]) { + [self.delegate userTurnPasswordOn]; + } +} + +-(void)touchID_OR_PasswordChange{ + if ([self.delegate respondsToSelector:@selector(userChangePassword)]) { + [self.delegate userChangePassword]; } } @@ -120,8 +95,6 @@ -(void)presentAuthViewController{ if (!_isAuthenticated) { - [self logPresentAuthVCReason]; - BOOL isAnimated = YES; if (self.securityType == INPUT_TOUCHID) { @@ -139,8 +112,6 @@ -(void)presentAuthViewController{ _isShowLogin = YES; - - UIStoryboard *storyboard = [UIStoryboard storyboardWithName:kStoryBoardName bundle: nil]; UINavigationController *naviVC = [storyboard instantiateViewControllerWithIdentifier:kSmileSettingNaviID]; @@ -181,6 +152,8 @@ -(void)appWillEnterForeground:(NSNotification*)notification{ } } +#pragma mark - init + +(SmileAuthenticator *)sharedInstance{ static id sharedInstance = nil; static dispatch_once_t onceToken; @@ -196,15 +169,17 @@ -(instancetype)init{ if (self = [super init]) { self.context = [[LAContext alloc] init]; self.policy = LAPolicyDeviceOwnerAuthenticationWithBiometrics; - self.localizedReason = kDefaultReason; + self.localizedReason = NSLocalizedString(@"SMILE_REASON", nil); self.keychainWrapper = [[SmileKeychainWrapper alloc] init]; self.securityType = INPUT_TWICE; + self.parallaxMode = YES; [self configureNotification]; } return self; } +#pragma mark - TouchID + (BOOL) canAuthenticateWithError:(NSError **) error { @@ -226,7 +201,9 @@ -(void)authenticateWithSuccess:(AuthCompletionBlock)authSuccessBlock andFailure: if ([SmileAuthenticator canAuthenticateWithError:&authError]) { [self.context evaluatePolicy:self.policy localizedReason:self.localizedReason reply:^(BOOL success, NSError *error) { if (success) { - DispatchMainThread(^(){authSuccessBlock();}); + SmileTouchID_DispatchMainThread(^(){ + authSuccessBlock(); + }); } else { @@ -277,7 +254,9 @@ -(void)authenticateWithSuccess:(AuthCompletionBlock)authSuccessBlock andFailure: break; } - DispatchMainThread(^(){failureBlock((LAError) error.code);}); + SmileTouchID_DispatchMainThread(^(){ + failureBlock((LAError) error.code); + }); } }]; } @@ -287,6 +266,7 @@ -(void)authenticateWithSuccess:(AuthCompletionBlock)authSuccessBlock andFailure: } } +#pragma mark - Utility +(BOOL)hasPassword { @@ -308,7 +288,6 @@ +(BOOL)isSamePassword:(NSString *)userInput{ } -(void)userSetPassword:(NSString*)newPassword{ - [self.keychainWrapper mySetObject:newPassword forKey:(__bridge id)(kSecValueData)]; [self.keychainWrapper writeToKeychain]; } diff --git a/SmileAuth/Classes/SmilePasswordView.h b/SmileAuth/Classes/SmilePasswordView.h index 5cec2e0..4d39bd0 100644 --- a/SmileAuth/Classes/SmilePasswordView.h +++ b/SmileAuth/Classes/SmilePasswordView.h @@ -18,8 +18,8 @@ -(instancetype)initWithCircleColor:(UIColor*)circleColor circleCount:(NSInteger)count frame:(CGRect)frame; --(void)shakeAnimation; --(void)slideToLeftAnimation; +-(void)shakeAnimationWithCompletion:(dispatch_block_t)completion; +-(void)slideToLeftAnimationWithCompletion:(dispatch_block_t)completion; @end diff --git a/SmileAuth/Classes/SmilePasswordView.m b/SmileAuth/Classes/SmilePasswordView.m index d93e1e5..e587b78 100644 --- a/SmileAuth/Classes/SmilePasswordView.m +++ b/SmileAuth/Classes/SmilePasswordView.m @@ -10,6 +10,8 @@ #define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width) +#define SmileTouchID_DispatchMainThread(block, ...) if(block) dispatch_async(dispatch_get_main_queue(), ^{ block(__VA_ARGS__); }) + static CGFloat kLineWidthConst = 12.0; static CGFloat kDotRadiusConst = 5.0; static CGFloat kMAX_RadiusConst = 32.0; @@ -171,8 +173,6 @@ -(CGFloat)getCircleRadius{ myRadius = floor(height/2); } -// NSLog(@"radius -> %f", myRadius); - if (myRadius > kMAX_RadiusConst) { myRadius = kMAX_RadiusConst; } @@ -183,7 +183,7 @@ -(CGFloat)getCircleRadius{ #pragma mark - animation --(void)shakeAnimation{ +-(void)shakeAnimationWithCompletion:(dispatch_block_t)completion{ NSInteger maxShakeCount = 5; @@ -201,8 +201,6 @@ -(void)shakeAnimation{ moveX = 2 * moveX; } - - [UIView animateWithDuration:duration delay:0.0 usingSpringWithDamping:0.01 initialSpringVelocity:0.35 options:UIViewAnimationOptionCurveEaseInOut animations:^{ if (!_direction) { self.center = CGPointMake(centerX + moveX, centerY); @@ -218,6 +216,10 @@ -(void)shakeAnimation{ } completion:^(BOOL finished) { _direction = 0; _shakeCount = 0; + + SmileTouchID_DispatchMainThread(^(){ + completion(); + }); }]; return; } @@ -230,12 +232,12 @@ -(void)shakeAnimation{ _direction = 0; } - [self shakeAnimation]; + [self shakeAnimationWithCompletion:completion]; }]; } --(void)slideToLeftAnimation{ +-(void)slideToLeftAnimationWithCompletion:(dispatch_block_t)completion{ CGFloat centerX = CGRectGetMidX(self.bounds); CGFloat centerY = CGRectGetMidY(self.bounds); @@ -250,9 +252,13 @@ -(void)slideToLeftAnimation{ if (!_direction) { _direction = 1; self.center = CGPointMake(3 * centerX, centerY); - [self slideToLeftAnimation]; + [self slideToLeftAnimationWithCompletion:completion]; } else { _direction = 0; + + SmileTouchID_DispatchMainThread(^(){ + completion(); + }); } }]; } diff --git a/SmileAuth/Classes/SmileSettingVC.m b/SmileAuth/Classes/SmileSettingVC.m index 8270b80..44c638b 100644 --- a/SmileAuth/Classes/SmileSettingVC.m +++ b/SmileAuth/Classes/SmileSettingVC.m @@ -22,6 +22,7 @@ @interface SmileSettingVC () @implementation SmileSettingVC{ BOOL _needTouchID; + BOOL _isAnimating; NSInteger _inputCount; NSString *_bufferPassword; NSString *_newPassword; @@ -42,17 +43,66 @@ - (IBAction)dismissSelf:(id)sender { } - (IBAction)useTouchID:(id)sender { + [self touchIDHandle]; +} + +#pragma mark - TouchID handle +-(void)touchIDHandle{ + switch ([SmileAuthenticator sharedInstance].securityType) { + case INPUT_ONCE: + + [self touchIDForINPUT_ONCE]; + + break; + + case INPUT_THREE: + + [self touchIDForINPUT_THREE]; + + break; + + case INPUT_TOUCHID: + + [self touchIDForINPUT_TOUCHID]; + + break; + + default: + break; + } +} + +-(void)touchIDForINPUT_TOUCHID{ + [SmileAuthenticator sharedInstance].localizedReason = NSLocalizedString(@"SMILE_REASON", nil); [[SmileAuthenticator sharedInstance] authenticateWithSuccess:^{ [[SmileAuthenticator sharedInstance] touchID_OR_PasswordAuthSuccess]; self.passwordView.smilePasswordView.dotCount = [SmileAuthenticator sharedInstance].passcodeDigit; [self performSelector:@selector(dismissSelf:) withObject:nil afterDelay:0.15]; } andFailure:^(LAError errorCode) { - self.descLabel.hidden = NO; - if (errorCode == LAErrorUserFallback || errorCode == LAErrorUserCancel) { - [self.passwordField becomeFirstResponder]; - } + [self.passwordField becomeFirstResponder]; + }]; +} + +-(void)touchIDForINPUT_ONCE{ + [SmileAuthenticator sharedInstance].localizedReason = NSLocalizedString(@"SMILE_INPUT_ONCE_TITLE", nil); + [[SmileAuthenticator sharedInstance] authenticateWithSuccess:^{ + [[SmileAuthenticator sharedInstance] touchID_OR_PasswordTurnOff]; + self.passwordView.smilePasswordView.dotCount = [SmileAuthenticator sharedInstance].passcodeDigit; + [self performSelector:@selector(passwordCancleComplete) withObject:nil afterDelay:0.15]; + } andFailure:^(LAError errorCode) { + [self.passwordField becomeFirstResponder]; }]; +} +-(void)touchIDForINPUT_THREE{ + [SmileAuthenticator sharedInstance].localizedReason = NSLocalizedString(@"SMILE_INPUT_THREE_TITLE", nil); + [[SmileAuthenticator sharedInstance] authenticateWithSuccess:^{ + self.passwordView.smilePasswordView.dotCount = [SmileAuthenticator sharedInstance].passcodeDigit; + _inputCount ++; + [self performSelector:@selector(enterNewPassword) withObject:nil afterDelay:0.15]; + } andFailure:^(LAError errorCode) { + [self.passwordField becomeFirstResponder]; + }]; } -(void)viewDidAppear:(BOOL)animated{ @@ -79,6 +129,10 @@ - (void)viewDidLoad { self.descLabel.textColor = [UIColor whiteColor]; } + if ([SmileAuthenticator sharedInstance].parallaxMode) { + [self registerEffectForView:self.passwordView depth:15]; + } + if ([SmileAuthenticator sharedInstance].descriptionTextColor) { self.descLabel.textColor = [SmileAuthenticator sharedInstance].descriptionTextColor; } @@ -102,7 +156,7 @@ - (void)viewDidLoad { switch ([SmileAuthenticator sharedInstance].securityType) { case INPUT_ONCE: - + self.touchIDButton.hidden = NO; self.navigationItem.title = NSLocalizedString(@"SMILE_INPUT_ONCE_TITLE", nil); break; @@ -114,9 +168,9 @@ - (void)viewDidLoad { break; case INPUT_THREE: - + self.touchIDButton.hidden = NO; self.navigationItem.title = NSLocalizedString(@"SMILE_INPUT_THREE_TITLE", nil); - self.descLabel.text = [NSString stringWithFormat:NSLocalizedString(@"SMILE_INPUT_THREE_STEP_2", nil), (long)[SmileAuthenticator sharedInstance].passcodeDigit]; + self.descLabel.text = [NSString stringWithFormat:NSLocalizedString(@"SMILE_INPUT_THREE_STEP_1_DESCRIPTION", nil), (long)[SmileAuthenticator sharedInstance].passcodeDigit]; break; @@ -152,7 +206,19 @@ - (void)viewDidLoad { [self.passwordField becomeFirstResponder]; } - } else { + } else if ([SmileAuthenticator sharedInstance].securityType == INPUT_ONCE | [SmileAuthenticator sharedInstance].securityType == INPUT_THREE) { + + //begin check canAuthenticate + NSError *error = nil; + if ([SmileAuthenticator canAuthenticateWithError:&error]) { + _needTouchID = YES; + } else { + self.touchIDButton.hidden = YES; + [self.passwordField becomeFirstResponder]; + } + } + + else { [self.passwordField becomeFirstResponder]; } @@ -167,6 +233,31 @@ - (void)didReceiveMemoryWarning { // Dispose of any resources that can be recreated. } +#pragma mark - animation + +-(void)slideAnimation{ + _isAnimating = YES; + + if (!self.touchIDButton.hidden) { + self.touchIDButton.hidden = YES; + } + + [self.passwordView.smilePasswordView slideToLeftAnimationWithCompletion:^{ + _isAnimating = NO; + if(![self.passwordField isFirstResponder]){ + [self.passwordField becomeFirstResponder]; + }; + }]; + +} + +-(void)shakeAnimation{ + _isAnimating = YES; + [self.passwordView.smilePasswordView shakeAnimationWithCompletion:^{ + _isAnimating = NO; + }]; +} + #pragma mark - handle user input -(void)clearText { self.passwordField.text = @""; @@ -190,7 +281,7 @@ -(void)passwordWrong{ _failCount++; - [self.passwordView.smilePasswordView shakeAnimation]; + [self shakeAnimation]; [[SmileAuthenticator sharedInstance] touchID_OR_PasswordAuthFail:_failCount]; @@ -202,26 +293,25 @@ -(void)passwordNotMatch{ _inputCount = _inputCount -2; [self clearText]; - [self.passwordView.smilePasswordView shakeAnimation]; + [self shakeAnimation]; self.descLabel.text = NSLocalizedString(@"SMILE_INPUT_NOT_MATCH", nil); } -(void)reEnterPassword{ + _bufferPassword = _newPassword; [self clearText]; - [self.passwordView.smilePasswordView slideToLeftAnimation]; + [self slideAnimation]; self.descLabel.text = [NSString stringWithFormat:NSLocalizedString(@"SMILE_INPUT_RE-ENTER", nil), (long)[SmileAuthenticator sharedInstance].passcodeDigit]; } -(void)enterNewPassword{ [self clearText]; - - [self.passwordView.smilePasswordView slideToLeftAnimation]; - - self.descLabel.text = [NSString stringWithFormat:NSLocalizedString(@"SMILE_INPUT_THREE_STEP_1", nil), (long)[SmileAuthenticator sharedInstance].passcodeDigit]; + [self slideAnimation]; + self.descLabel.text = [NSString stringWithFormat:NSLocalizedString(@"SMILE_INPUT_THREE_STEP_2_DESCRIPTION", nil), (long)[SmileAuthenticator sharedInstance].passcodeDigit]; } -(void)handleINPUT_TOUCHID{ @@ -235,6 +325,7 @@ -(void)handleINPUT_TOUCHID{ -(void)handleINPUT_ONCE{ if ([SmileAuthenticator isSamePassword:_newPassword]) { + [[SmileAuthenticator sharedInstance] touchID_OR_PasswordTurnOff]; [self passwordCancleComplete]; } else { [self passwordWrong]; @@ -246,6 +337,7 @@ -(void)handleINPUT_TWICE{ [self reEnterPassword]; } else if (_inputCount == 2) { if ([_bufferPassword isEqualToString:_newPassword]) { + [[SmileAuthenticator sharedInstance] touchID_OR_PasswordTurnOn]; [self passwordInputComplete]; } else { [self passwordNotMatch]; @@ -264,6 +356,7 @@ -(void)handleINPUT_THREE{ [self reEnterPassword]; } else if (_inputCount == 3) { if ([_bufferPassword isEqualToString:_newPassword]) { + [[SmileAuthenticator sharedInstance] touchID_OR_PasswordChange]; [self passwordInputComplete]; } else { [self passwordNotMatch]; @@ -327,9 +420,34 @@ -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange return NO; } - return YES; + return !_isAnimating; +} + + +#pragma mark - PrivateMethod - Parallax + +- (void)registerEffectForView:(UIView *)aView depth:(CGFloat)depth; +{ + UIInterpolatingMotionEffect *effectX; + UIInterpolatingMotionEffect *effectY; + effectX = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.x" + type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis]; + effectY = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.y" + type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis]; + + + effectX.maximumRelativeValue = @(depth); + effectX.minimumRelativeValue = @(-depth); + effectY.maximumRelativeValue = @(depth); + effectY.minimumRelativeValue = @(-depth); + + UIMotionEffectGroup *group = [[UIMotionEffectGroup alloc] init]; + group.motionEffects =@[effectX, effectY]; + + [aView addMotionEffect:group] ; } + /* #pragma mark - Navigation diff --git a/SmileTouchID.podspec b/SmileTouchID.podspec index b1832ec..7cc0c62 100644 --- a/SmileTouchID.podspec +++ b/SmileTouchID.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "SmileTouchID" - s.version = "0.0.9" + s.version = "0.1.0" s.summary = "A Library for configure Touch ID & passcode conveniently" s.description = <<-DESC 1. Handle all complicated things about Touch ID & Passcode. You just need to write a few simple code to integrate Touch ID & Passcode to your app.