devxoul / cocoaseeds Goto Github PK
View Code? Open in Web Editor NEWGit Submodule Alternative for Cocoa.
License: MIT License
Git Submodule Alternative for Cocoa.
License: MIT License
Another key features which could be useful is to add (or not) arc flags if the library doesn't handle but the project does. I think mainly of SKMediaTap
, a useful library for OSX which doesn't use arc.
In action, just add the -fno-objc-arc
flags to the library concerned.
I'm using Xcode 7.1, but I get this:
Xcode 7.1 bug?
Anaylizing dependencies
Installing ReactiveCocoa swift2 (was )
Configuring CoverPages.xcodeproj
/Users/mgray/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.5.0/lib/cocoaseeds/core.rb:510:in block in configure_phase': undefined method
sources_build_phase' for #Xcodeproj::Project::Object::PBXAggregateTarget:0x007f93bb8498f0 (NoMethodError)
from /Users/mgray/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.5.0/lib/cocoaseeds/core.rb:509:in each' from /Users/mgray/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.5.0/lib/cocoaseeds/core.rb:509:in
configure_phase'
from /Users/mgray/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.5.0/lib/cocoaseeds/core.rb:108:in install' from /Users/mgray/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.5.0/lib/cocoaseeds/command.rb:11:in
run'
from /Users/mgray/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.5.0/bin/seed:5:in <top (required)>' from /Users/mgray/.rbenv/versions/2.2.0/bin/seed:23:in
load'
from /Users/mgray/.rbenv/versions/2.2.0/bin/seed:23:in `
My Seedfile:
target :CoverPages do
github "ReactiveCocoa/ReactiveCocoa", "swift2", :files => "ReactiveCocoa/Swift/**.{swift,h,m}"
end
Hi devxoul:
I am using cocoaseeds in one of my projects. When added Cosmos to my project and use it in a storyboard, interface builder builds my main target but also the unit and UI tests targets. Without using Cosmos it only builds the main target (what I think is the right thing). I leave you here the steps to reproduce the problem.
First I added this line to my seedsfile:
github "marketplacer/Cosmos", "ios-7-support", :files => "Cosmos/**/*.swift"
Then I updated the seeds with seed install (similar to pod install).
After that I created a view in my storyboard and added the CosmosView class.
Then I clicked on Editor->Refresh all views.
The result was that interface builder was building the project and also the unit and UI tests. Without using the CosmosView in the storyboard it is just building the project target, not the tests targets (the right thing, why do we need tests at this point??). To avoid building the tests I removed the cosmos files from the "Compile sources" section in my test targets (inside project -> Build Phases). I think they where added there automatically when seed install.
there is a small discussion about this here. I am not sure if it is an issue or a bad configuration of my project.
Thanks!
Hi !
When I use Seeds on other branch than master, the script always get me back to master.
I think this is an issue.
With Love,
Damien
Storyboard, xib will be added as compile source after running seeds install.
they should be added as copy bundle resources.
Any workaround??
CocoaSeeds officially supports tags only. Using branch instead of tag also works, but CocoaSeeds don't ensure that the source files are up-to-date. It'll be great if CocoaSeeds supports both tags and branches.
Seedfile:
github 'PavelKatunin/DownloadButton', :commit=>'ff7e3f7', :files=>'Pod/Classes/*.{h,m}', :exclude_files=>'Pod/Classes/*.{h,m}'
I expect Cocoa Seeds import nothing into the XCode project. Instead, the :exclude_files
is silently ignored.
As the arc featured, a warnings handler featured would be awesome. Once again, I'm using SKMediaTap
library which has some warnings, useless for the project. A way to disable warnings for a seed, or all of them would be great!
In action, just add the -w
flag to the library concerned.
We use CocoaPods alongside CocoaSeeds but it is not possible for us to update to [email protected] because the xcodeproj
version dependency conflicts.
Could you please update CocoaSeeds to depend on the latest version?
Is there a any way with CocoaSeeds to specify a build configuration for imported sources ?
This will allow to edit the source code of the project and make a pull request from your own project. (When using swift_seedname_prefix the names of the files are changed and pull request from the project is not possible, I think)
Thanks!
Doesn't just throwing the Swift files into the project flatten namespaces? This would break a lot of libraries..
Is it possible to set a specific path for the xcodeproj?
That could be useful when the xcodeproj isn't in the main directory of the project (by using workspace...)
Hi there,
do you have any ideas, how to handle dependencies? Given I want to add github "thoughtbot/Argo", "2.1", :files => "Argo/*/*.swift"
it does not compile, because it has imports like import Runes
and the compiler says No such module: Runes
.
Seedfile...
local "Listen", "~/Conway\ Corp/Projects/Listen/", :files => "Listen/*.{swift,h}"
"Listen" (where the source files are) and "ListenCocoaSeed" are directories that are right beside each other in the Projects directory
sudo seed install gives me...
Anaylizing dependencies
Installing local seed: Listen
/Users/<username>/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.8.0/lib/cocoaseeds/core.rb:539:in `mkdir': No such file or directory @ dir_s_mkdir - /Users/<username>/Conway\ Corp/Projects/ListenCocoaSeed/Seeds/Listen (Errno::ENOENT)
from /Users/<username>/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.8.0/lib/cocoaseeds/core.rb:539:in `install_local_seed'
from /Users/<username>/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.8.0/lib/cocoaseeds/core.rb:416:in `block in install_seeds'
from /Users/<username>/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.8.0/lib/cocoaseeds/core.rb:413:in `each'
from /Users/<username>/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.8.0/lib/cocoaseeds/core.rb:413:in `install_seeds'
from /Users/<username>/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.8.0/lib/cocoaseeds/core.rb:106:in `install'
from /Users/<username>/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.8.0/lib/cocoaseeds/command.rb:11:in `run'
from /Users/<username>/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/cocoaseeds-0.8.0/bin/seed:5:in `<top (required)>'
from /Users/<username>/.rvm/rubies/ruby-2.2.2/bin/seed:23:in `load'
from /Users/<username>/.rvm/rubies/ruby-2.2.2/bin/seed:23:in `<main>'
from /Users/<username>/.rvm/gems/ruby-2.2.2@global/bin/ruby_executable_hooks:15:in `eval'
from /Users/<username>/.rvm/gems/ruby-2.2.2@global/bin/ruby_executable_hooks:15:in `<main>'
Any idea what i'm doing wrong? Thanks.
Similar to CocoaPods, does CocoaSeeds have any capacity for pre or post install scripts? I'm using Argo, and it uses import Runes
in several locations. I'd like to be able to use a post install script to filter those out.
This is my Seedfile:
github "Alamofire/Alamofire", "1.2.1", :files => "Source/*.{swift,h}"
github "devxoul/JLToast", "1.2.2", :files => "JLToast/*.{swift,h}"
github "SwiftyJSON", "2.2", :files => "Source/SwiftyJSON.swift"
I run "seed install", and I get this:
Anaylizing dependencies
/Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.0.7/lib/cocoaseeds/core.rb:239:in sort': comparison of Array with Array failed (ArgumentError) from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.0.7/lib/cocoaseeds/core.rb:239:in
install_seeds'
from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.0.7/lib/cocoaseeds/core.rb:100:in install' from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.0.7/lib/cocoaseeds/command.rb:7:in
run'
from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.0.7/bin/seed:5:in <top (required)>' from /usr/bin/seed:23:in
load'
from /usr/bin/seed:23:in `
In my case, I can't use the useful syntax src/*.{swift,m,h}, but I need to specify two different path of files. Is it Possible an option such as:
:files => "path1/*{h,m},path2/*{h,m}"
Seedfile:
github "Alamofire/Alamofire", "swift-2.0", :files => "Source/*.swift"
github "thoughtbot/Argo", "td-swift-2", :files => "Argo/*/*.swift"
github "thoughtbot/Runes", "swift-2.0", :files => "Source/*.swift"
I'm attempting to integrate the Swift 2 versions of several libraries and a few issues have cropped up. First and foremost, it seems like at least some of the source files are included more than once, so I get this error:
error: filename "Operators.swift" used twice: '/Users/jshier/Desktop/project/Seeds/Runes/Source/Operators.swift' and '/Users/jshier/Desktop/project/Seeds/Runes/Source/Operators.swift'
Second, it looks like all of the source files are included in all of my targets. Is there any way to have them included in only my actual app target?
Also, is that the proper syntax for targeting a branch instead of a tag? It seems to work but I wasn't sure.
Sorry to start a new thread, but the other one was an issue, and this one is only a question.
I've succesfully installed Alamofire, JLToast and SwiftyJson. All three with CocoaSeeds (seed install
)
I open mi project and go check the usage of these three (invokations), and this is what I see:
When I'm using JLToast.makeText(...)
, thats fine, no errors.
When I'm using JSON
(which is a struct from SwiftyJson), eg:
static func fromJSON(json: JSON) -> Place {
var place:Place = Place()
place.placeId = json["placeId"].intValue // <-- SwiftyJson method
...etc
Thats fine too. No errors.
When I'm using Alamofire.request(.GET, "http://....", parameters: ....)
, there is this error:
Use of unresolved identifier 'Alamofire'
So... with SwiftyJson is more clear to see that there arent errors because SwiftyJson just declares a type that I'm later using. But how come JLToast isn't throwing any errors too?
The real question, though, is:
How can I use Alamofire? I've read that I should wrap it in a struct to simulate a namespace, but what do you recommend? I ask because in the README you've put Alamofire as a seed example so you must have use it (I guess)
Thanks!
by the way, I really appreciate that this is the only project out there trying to solve the "pods + IOS7" problem.
There are complex projects out there, like Typhoon. In order to easily use this projects with CocoaSeeds, it would be helpful to have an "exclude_files" pattern, that removes specific files from the project that have been previously matched by the "files" pattern.
For instance, if you take a look at the Typhoon pod spec (https://github.com/CocoaPods/Specs/blob/master/Specs/Typhoon/3.3.3/Typhoon.podspec.json), you'll see that when building for iOS, they exclude the OS X directory and vice versa. I guess that's rather hard to do in Typhoon at the moment.
Seedfile
swift_seedname_prefix!
github 'devxoul/SwiftyImage', '0.1.0', :files => 'SwiftyImage/SwiftyImage.swift'
swift_seedname_prefix
makes SwiftyImage/SwiftyImage.swift
to SwiftyImage/SwiftyImage_SwiftyImage.swift
, so this file is not being added to project.
I'm not able to install seeds, when I run seed install
, I get the following error :
% seed install
Anaylizing dependencies
/Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.6.0/lib/cocoaseeds/core.rb:315:in `eval': undefined local variable or method `“master”' for #<Seeds::Core:0x007fa2ebc20f98> (NameError)
from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.6.0/lib/cocoaseeds/core.rb:315:in `eval'
from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.6.0/lib/cocoaseeds/core.rb:315:in `execute_seedfile'
from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.6.0/lib/cocoaseeds/core.rb:104:in `install'
from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.6.0/lib/cocoaseeds/command.rb:11:in `run'
from /Library/Ruby/Gems/2.0.0/gems/cocoaseeds-0.6.0/bin/seed:5:in `<top (required)>'
from /usr/local/bin/seed:23:in `load'
from /usr/local/bin/seed:23:in `<main>'
%
There are authors on GitHub who don't like to tag their code releases. That makes it quite cumbersome to use their code from CocoaSeeds.
Can we get a little more flexible with the "tag" required, e.g. allowing for "HEAD", or a specific commit hash would be awesome.
Thanks for considering.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.