Code Monkey home page Code Monkey logo

Comments (10)

AndrewBarba avatar AndrewBarba commented on September 20, 2024

Just use this in your Podfile for now:

pod 'KeychainAccess', :git => 'https://github.com/kishikawakatsumi/KeychainAccess.git', :branch => 'swift-2.0'

But yes, I really want this merged to master as well. Especially since Xcode 7 and Swift 2.0 are officially out.

from keychainaccess.

evermeer avatar evermeer commented on September 20, 2024

That does not work when you have a library with a dependency to KeychainAccess and you are using that library in another library. Then you can only setup the dependency in your .podspec file. In a .podspec file you can only set a specific version as a dependency. not a branch.

In my situation I am using KeychainAccess in my AlamofireOauth2 project. Indeed in the Podfile I have set it up the way you mentioned above. That project builds and compiles fine. But I also have a project called EVWordpressAPI which has AlomifireOauth2 as a dependency. So KeychainAccess is not a direct dependency. Cocoapods will look in the .podspec for the dependencies, It will find KeychainAccess and it will add the version that is specified. The Swift2 branch does not have a cocoapod version yet.

So it does compile, but I can't create a pod. The command 'pod lib lint' will result in an error because the dependency cannot be compiled.

from keychainaccess.

AndrewBarba avatar AndrewBarba commented on September 20, 2024

It does work, I am also creating a Pod that is currently written in Swift 2.0 and it is using KeychainAccess on the swift-2.0 branch. I should have been more specific, it needs to be setup like so...
In your .podspec for your pod you should have some dependencies or sub dependencies like:

s.subspec "Core" do |core|
    core.source_files = 'Source/Core/**/*.swift'
    core.dependency 'Alamofire'
    core.dependency 'KeychainAccess'
    core.dependency 'ObjectMapper'
    core.dependency 'RealmSwift'
    core.dependency 'Starscream'
    core.dependency 'SwiftyJSON'
end

Notice I did not specify a version on any of those dependencies, that is because I am going to specify branches in my Podfile for the example project that is generated by pod lib create. That Podfile looks like this:

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!

target 'Tablelist_Example', :exclusive => true do
  pod "Tablelist", :path => "../"

  pod 'Alamofire', '~> 2.0.0'
  pod 'KeychainAccess', :git => 'https://github.com/kishikawakatsumi/KeychainAccess.git', :branch => 'swift-2.0'
  pod 'ObjectMapper', '~> 0.16'
  pod 'Realm', :git => 'https://github.com/realm/realm-cocoa.git', :branch => 'swift-2.0'
  pod 'RealmSwift', :git => 'https://github.com/realm/realm-cocoa.git', :branch => 'swift-2.0'
  pod 'Starscream', :git => 'https://github.com/daltoniam/Starscream.git', :branch => 'Swift-2.0'
  pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7'
end

target 'Tablelist_Tests', :exclusive => true do
  pod "Tablelist", :path => "../"

  pod 'Alamofire', '~> 2.0.0'
  pod 'KeychainAccess', :git => 'https://github.com/kishikawakatsumi/KeychainAccess.git', :branch => 'swift-2.0'
  pod 'ObjectMapper', '~> 0.16'
  pod 'Realm', :git => 'https://github.com/realm/realm-cocoa.git', :branch => 'swift-2.0'
  pod 'RealmSwift', :git => 'https://github.com/realm/realm-cocoa.git', :branch => 'swift-2.0'
  pod 'Starscream', :git => 'https://github.com/daltoniam/Starscream.git', :branch => 'Swift-2.0'
  pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7'

  pod 'Quick', '~> 0.6.0'
  pod 'Nimble', '2.0.0-rc.3'
end

Now when I run pod update Cocoapods will grab the versions specified in my Podfile. My unit tests even work correctly. I can import the Tablelist module in my tests and access everything as expected. now of course I cannot release my Pod to the trunk like this, otherwise I would have to ask all the users of my Pod to do the same, but for developing this works perfectly, and I can even release an app to the App Store if need be. It will only be a matter of time before those dependencies above have official versions. Lucky for me, I'm a few weeks away from having a stable Pod so this has been working great while I continue to develop and test.

P.S. You'll notice Nimble actually does have a branched version in the trunk: pod 'Nimble', '2.0.0-rc.3 comes from their swift-2.0 branch. It would obviously be ideal if KeychainAccess and all the others above did the same.

from keychainaccess.

AnthonyMDev avatar AnthonyMDev commented on September 20, 2024

+1 I think its now an appropriate time to release a new version with Swift 2.0 support instead of needing to use the branch: tag.

@kishikawakatsumi Since the Xcode 7 GM seed was released, and we can now upload applications for iOS9, can we get an official release of this pod for Swift 2.0 please?

Thank you!

from keychainaccess.

evermeer avatar evermeer commented on September 20, 2024

@AndrewBarba the fact that i cannot release my pod was the point. 'pod lib lint' will fail.

from keychainaccess.

AnthonyMDev avatar AnthonyMDev commented on September 20, 2024

@evermeer Yeah, I am now unable to release my pod as well because it has a dependency on this.

@kishikawakatsumi Can we expect this today? Otherwise I'm going to have to fork the project and create a whole new pod of my own. I'd really rather not do that.

from keychainaccess.

kishikawakatsumi avatar kishikawakatsumi commented on September 20, 2024

@AnthonyMDev I might not have enough time sorry, I would like to release though... 😢

from keychainaccess.

AnthonyMDev avatar AnthonyMDev commented on September 20, 2024

I mad a PR for this #108 today, so it should take long. If you don't have time, I'd be happy to do it for you, but you'd need to make me a contributor on this repository and a "owner" on the Cocoapod.

If you are willing to do that, it's really easy. Just pod trunk add-owner [email protected] and make me an admin on the repo so I can do the edits to the pod spec.

I totally understand being too busy, everyone goes through those times, but you have 865 stars, and according to Cocoapods, 197 people using this pod in applications that can't be updated to use iOS9 currently, so this is pretty necessary.

Thanks for making such a helpful library @kishikawakatsumi . Let me know what you think.

from keychainaccess.

kishikawakatsumi avatar kishikawakatsumi commented on September 20, 2024

I'm working on it.

from keychainaccess.

kishikawakatsumi avatar kishikawakatsumi commented on September 20, 2024

I've released KeychainAccess 2.0.0 with Swift 2.0 support. Thanks for your patience!! 🙇

from keychainaccess.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.