jrendel / SwiftKeychainWrapper

A simple wrapper for the iOS Keychain to allow you to use it in a similar fashion to User Defaults. Written in Swift.
MIT License
1.59k stars 340 forks source link

Is there still iOS 7 support? #41

Closed moonvader closed 8 years ago

moonvader commented 8 years ago

Hello, after last update - i realized that code is not compiling for iOS7

jrendel commented 8 years ago

I have not actively been testing on iOS7. Nothing was intentionally removed, but I've been keeping the project up to date with the latest Swift and Xcode releases, so something may have inadvertently been broken. I would have to redownload an Xcode 7 simulator to test it out.

Do you know what is failing to compile?

moonvader commented 8 years ago

I receive many warnings if I set Deployment Target to 7.0 with last version of your code. Xcode suggest to set available tags - maybe you can check it?

jrendel commented 8 years ago

I pushed some changes to correct this so it should still properly support iOS 7. Changes are in dev branch.

calhouncole commented 8 years ago

I'm trying to build from the most recent commit in the developer branch. When I have my deployment target set as 7.0 Xcode -- it's saying that the minimum deployment target for SwiftKeychainWrapper is 8.0?

jrendel commented 8 years ago

Are you trying to build the keychain project directly? Everything looks like it checks out for me on that build.

Now if you're using cocoa pods to pull down the framework, thats still pulling the master branch version that is set to 8.0 and up. I still need to get things merged into master.

If you're doing something else, let me know and I'll see if I can test the same scenario.

jrendel commented 8 years ago

I just realized I don't think dynamic frameworks are supported on iOS 7? Only iOS 8 and up I believe.

moonvader commented 8 years ago

I just added Swift file manually in my project and it works fine. What happened that i can't now use it on iOS7?

jrendel commented 8 years ago

As a framework I'm only supporting iOS 8 and up, since dynamic frameworks do not work in iOS 7.

It is possible like you said to manually put the files into a project and use them that way. In that case they work with iOS 7 fine except I removed part of the code allowing for this usage without thinking.

KeychainOptions.swift has a check at the end for a value that only exists in iOS 8 and up. I will reverse the code for now to allow the files to be used in iOS 7, however, this generates a warning for the project since I'm putting an availability check for iOS 8 and up when the project's minimum supported version is iOS 8 in the first place. I'm not quite sure what the best solution will be here in regards to the warning, but it will otherwise work fine.