Giter VIP home page Giter VIP logo

cocoapods-plugins's Introduction

CocoaPods Logo

CocoaPods: The Cocoa dependency manager

Build Status Gem Version Maintainability Test Coverage

CocoaPods manages dependencies for your Xcode projects.

You specify the dependencies for your project in a simple text file: your Podfile. CocoaPods recursively resolves dependencies between libraries, fetches source code for all dependencies, and creates and maintains an Xcode workspace to build your project. The latest released Xcode versions and the prior version are supported.

Installing and updating CocoaPods is very easy. Don't miss the Installation guide and the Getting Started guide.

Project Goals

CocoaPods aims to improve the engagement with, and discoverability of, third party open-source Cocoa libraries. These project goals influence and drive the design of CocoaPods:

  • Create and share libraries, and use them in your own projects, without creating extra work for library authors. Integrate non-CocoaPods libraries and hack on your own fork of any CocoaPods library with a simple transparent Podspec standard.
  • Allow library authors to structure their libraries however they like.
  • Save time for library authors by automating a lot of Xcode work not related to their libraries' functionality.
  • Support any source management system. (Currently supported are git, svn, mercurial, bazaar, and various types of archives downloaded over HTTP.)
  • Promote a culture of distributed collaboration on pods, but also provide features only possible with a centralised solution to foster a community.
  • Build tools on top of the core Cocoa development system, including those typically deployed to other operating systems, such as web-services.
  • Provide opinionated and automated integration, but make it completely optional. You may manually integrate your CocoaPods dependencies into your Xcode project as you see fit, with or without a workspace.
  • Solve everyday problems for Cocoa and Xcode developers.

Sponsors

Lovingly sponsored by a collection of companies, see the footer of CocoaPods.org for an up-to-date list.

Collaborate

All CocoaPods development happens on GitHub. Contributions make for good karma and we welcome new contributors with joy. We take contributors seriously, and thus have a contributor code of conduct.

Links

Link Description
CocoaPods.org Homepage and search for Pods.
@CocoaPods Follow CocoaPods on Twitter to stay up to date.
Blog The CocoaPods blog.
Mailing List Feel free to ask any kind of question.
Guides Everything you want to know about CocoaPods.
Changelog See the changes introduced in each CocoaPods version.
New Pods RSS Don't miss any new Pods.
Code of Conduct Find out the standards we hold ourselves to.

Projects

CocoaPods is composed of the following projects:

Status Project Description Info
Build Status CocoaPods The CocoaPods command line tool. guides
Build Status CocoaPods Core Support for working with specifications and podfiles. docs
Build Status CocoaPods Downloader Downloaders for various source types. docs
Build Status Xcodeproj Create and modify Xcode projects from Ruby. docs
Build Status CLAide A small command-line interface framework. docs
Build Status Molinillo A powerful generic dependency resolver. docs
Master Repo Master repository of specifications. guides

cocoapods-plugins's People

Contributors

alisoftware avatar alloy avatar amorde avatar ashton-w avatar biocross avatar dbgrandi avatar dnkoutso avatar dtorres avatar esttorhe avatar fabiopelosin avatar fjbelchi avatar floere avatar flovilmart avatar frugghi avatar igor-makarov avatar joncardasis avatar jtreanor avatar keith avatar kylef avatar marcelofabri avatar mdiiorio avatar neonichu avatar orta avatar pbendersky avatar segiddins avatar supern avatar thii avatar vladkorzun avatar vocaro avatar zhzhy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cocoapods-plugins's Issues

Refactor `plugins.rb` into one command class per file

Right now we have 3 commands (or 1 command and 2 subcommands) in a single file. We should separate this into separate files, with 1 command class per file.

It may also make sense to separate out the specs once we do this.

[Idea] Pod release

  • Tags
  • Pushes
  • Makes a binary release and does a github release
  • Creates a zip of all src and backs it up on S3

Improve output layout

I think that the layout of the output could be improved:

โŠ™  pod plugins
Downloading Plugins list...
Available CocoaPods Plugins

Name: Pod Dependencies
Gem: cocoapods-dependencies
URL: https://github.com/segiddins/cocoapods-dependencies

Shows a project's CocoaPod dependency graph.

Name: Pod browser
Gem: cocoapods-browser
URL: https://github.com/dealforest/cocoapods-browser

Open a pod's homepage in the browser.

I vote for something similar to pod search (but I'm biased ๐Ÿ˜‰)

โŠ™  pod search rest

-> AFAbstractRESTClient (1.0)
   AFAbstractRESTClient is simple abstract solution to deal with REST webservices using AFNetworking.
   pod 'AFAbstractRESTClient', '~> 1.0'
   - Homepage: https://github.com/burczyk/AFAbstractRESTClient
   - Source:   https://github.com/burczyk/AFAbstractRESTClient.git
   - Versions: 1.0 [master repo]

[plugins.json] Add cocoapods-readonly

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-readonly",
  "name": "CocoaPods Readonly",
  "author": "Mason Glidden",
  "url": "https://github.com/Yelp/cocoapods-readonly",
  "description": "Developers switching from submodules are used to modifying library source files from within Xcode. This locks those files as needed so Xcode warns you when attempting to edit them."
}

pod plugins installed

A list of all found cocoapods plugins on the users computer, similar to what we have in the crash report.

[plugins.json] Add cocoapods-thumbs

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-thumbs",
  "name": "CocoaPods Thumbs",
  "author": "Pablo Bendersky",
  "url": "https://github.com/quadion/cocoapods-thumbs",
  "description": "CocoaPods plugin which allows to see peer votes of a Podfile or single Podspec."
}

[plugins.json] Add cocoapods-last_word

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-last_word",
  "name": "CocoaPods Last_word",
  "author": "Dmitry Bespalov",
  "url": "https://github.com/zalando/cocoapods-last_word",
  "description": "Add real post-install hooks that execute after all cocoapods actions finish."
}

[plugins.json] Add cocoapods-mangle

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-mangle",
  "name": "CocoaPods Mangle",
  "author": "James Treanor",
  "url": "https://github.com/intercom/cocoapods-mangle",
  "description": "Mangling your dependencies symbols allows more than one copy of a dependency to exist without errors. This plugin mangles your dependencies to make this possible."
}

post_install hook not being executed

With the following code in the cocoapods_plugin.rb file, the block is never being executed despite the fact that (I am almost positive) it is registered correctly.

Plugin code:

Pod::HooksManager.register('myplugin', :post_install) do |installer_context|
  puts 'hello world'
end

Print-out from a break point:

$ pod install                                                                                                                                                                                                                                                                                                          master

[1, 10] in /Users/dohayon/Code/ProximityManager/Podfile
    1: platform :ios, '8.0'
    2: inhibit_all_warnings!
    3: 
    4: plugin 'cocoapods-myplugin'
    5: byebug
=>  6: target 'ProximityManager' do
    7:   pod 'AFNetworking'
    8: end
    9: 
   10: target 'ProximityManagerTests' do
(byebug) Pod::HooksManager.registrations
{:post_install=>[#<Pod::HooksManager::Hook:0x007fc60c979490 @name=:post_install, @plugin_name="myplugin", @block=#<Proc:0x007fc60c979508@/usr/local/opt/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cocoapods-myplugin-0.0.1/lib/cocoapods_plugin.rb:4>>]}
(byebug) c
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.5.4)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `ProximityManager.xcworkspace` for this project from now on.

Is there any effective way to debug what's going on here that is preventing that hook from being ran? Am I missing something totally obvious here?

For reference, I was aiming to follow the pattern that is used in https://github.com/venmo/slather and https://github.com/marcelofabri/cocoapods-clang-format-hook.

Update CHANGELOG format to be like other CP repos.

As far as I can tell, the only remaining change is to link to issues in the same we do in other repos.

From my point of view, the CHANGELOG should be considered to be readable as plain text and so copy-passable links are nice.

Repo ownership transfer?

Make CocoaPods/cocoapods-plugins the main repo and not a fork of dbgrandi/cocoapods-plugins (which can maybe be totally deleted?) /c @dbgrandi

[plugins.json] Add cocoapods-update-if-you-dare

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-update-if-you-dare",
  "name": "CocoaPods Update If You Dare",
  "author": "Ashton Williams",
  "url": "https://github.com/Ashton-W/cocoapods-update-if-you-dare",
  "description": "update ... if you dare (warns users before updating all pods at once)"
}

[plugins.json] Add cocoapods-check

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-check",
  "name": "CocoaPods Check",
  "author": "Matt Di Iorio",
  "url": "https://github.com/square/cocoapods-check",
  "description": "Displays differences between locked and installed Pods"
}

[Idea] Podfile.local

Take this pattern:

# Allows per-dev overrides
local_podfile = "Podfile.local"
eval(File.open(local_podfile).read) if File.exist? local_podfile

And make it systematic.

[plugins.json] Add cocoapods-foundation-headers

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-foundation-headers",
  "name": "CocoaPods Foundation Headers",
  "author": "Keith Smiley",
  "url": "https://github.com/keith/cocoapods-foundation-headers",
  "description": "A CocoaPods plugin for using Foundation instead of UIKit/Cocoa in generated headers"
}

[plugins.json] Add cocoapods-acknowledgements

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-acknowledgements",
  "name": "CocoaPods Acknowledgements",
  "author": "Fabio Pelosin, Orta Therox, Marcelo Fabri",
  "url": "https://github.com/CocoaPods/cocoapods-acknowledgements",
  "description": "CocoaPods plugin that generates an acknowledgements plist to make it easy to create tools to use in apps."
}

[plugins.json] Add cocoapods-art

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-art",
  "name": "CocoaPods Artifactory Plugin",
  "author": "Dan Feldman",
  "url": "https://github.com/JFrogDev/cocoapods-art",
  "description": "Artifactory support for CocoaPods"
}

[plugins.json] Add cocoapods-archive

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-archive",
  "name": "CocoaPods Archive",
  "author": "fjbelchi, alexito4",
  "url": "https://github.com/fjbelchi/cocoapods-archive",
  "description": "cocoapods-archive plugin that archive your project"
}

xcodeproj show command return error??

hi ,
first , I use gem install xcodeproject command to install xcodeproject. then i used command " xcodeproj show NBAOL-X1.xcodeproj", but it returns some error .cloud you help me to find out why this happend?
error's:Unable to read plist data from

`"/Users/nba2k_builder/Documents/NBAOLXClient/Client/Source/NBAOL-X/proj.ios/NBAOL-X1.xcodeproj/project.pbxproj"': Cannot parse a NULL or zero-length data
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/project.rb:172:in `read_plist'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/project.rb:172:in `initialize_from_file'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/project.rb:93:in `send'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/project.rb:93:in `open'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/command.rb:133:in `xcodeproj'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/command/show.rb:47:in `run'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/command.rb:66:in `run'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/bin/xcodeproj:13
/usr/bin/xcodeproj:19:in `load'
/usr/bin/xcodeproj:19

[plugins.json] Add cocoapods-superdeintegrate

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-superdeintegrate",
  "name": "CocoaPods Superdeintegrate",
  "author": "Ash Furrow",
  "url": "https://github.com/ashfurrow/cocoapods-superdeintegrate",
  "description": "Deletes the CocoaPods cache, your derived data folder, and makes sure that your Pods directory is gone."
}

Add cocoapods-links to plugins repo

Details:

 {
   "gem":"cocoapods-links",
   "name":"Pod links",
   "author":"Mike Owens",
   "social_media_url":"https://twitter.com/mikejowens",
   "url":"https://github.com/mowens/cocoapods-links",
   "description":"A CocoaPods plugin to manage local development pods"
}

Template should setup and configure specs

We should generate the file structure and the test for the command that's created, along with a .travis.yml and a Rakefile.

โ”œโ”€โ”€ spec
โ”‚ย ย  โ”œโ”€โ”€ command
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ appledoc_spec.rb
โ”‚ย ย  โ””โ”€โ”€ spec_helper.rb

Development workflow

I'm trying to get started with a new CocoaPods plugin. I installed cocoapods-plugins and created a new one.

Now what? :) I mean:

What's the recommended way of having cocoapods pick my plugin during development, so I can quickly iterate on the code and test it from the cocoapods command line.

xcodeproj show command return error??

hi ,
first , I use gem install xcodeproject command to install xcodeproject. then i used command " xcodeproj show NBAOL-X1.xcodeproj", but it returns some error .cloud you help me to find out why this happend?
error's:Unable to read plist data from "/Users/nba2k_builder/Documents/NBAOLXClient/Client/Source/NBAOL-X/proj.ios/NBAOL-X1.xcodeproj/project.pbxproj"': Cannot parse a NULL or zero-length data /Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/project.rb:172:inread_plist'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/project.rb:172:in initialize_from_file' /Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/project.rb:93:insend'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/project.rb:93:in open' /Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/command.rb:133:inxcodeproj'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/command/show.rb:47:in run' /Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/lib/xcodeproj/command.rb:66:inrun'
/Library/Ruby/Gems/1.8/gems/xcodeproj-0.16.1/bin/xcodeproj:13
/usr/bin/xcodeproj:19:in `load'
/usr/bin/xcodeproj:19

[plugins.json] Add cocoapods-mix-frameworks

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-mix-frameworks",
  "name": "CocoaPods Mix Frameworks",
  "author": "Florent Vilmart",
  "url": "https://github.com/flovilmart/cocoapods-mix-frameworks",
  "description": "Mix use_framework! targets with static targets through a surrogate Framework target."
}

Get rid of GemHelper

gem_helper.rb and gem_index_cache.rb should be nuked

  • First because we want to get rid of "Helpers"
  • Next because we can do everything done here directly using CLAide::Command::PluginManager.specifications now โ€” to know if a plugin is already installed or not, which was the whole point if those helpers if I'm not mistaken.

Compatibility with Ruby 1.8.7

CocoaPods is supported on Ruby 1.8.7 and thus this plugin should be supported as well on that Ruby. Currently there are 9 errors on 1.8.7:

25 specifications (29 requirements), 0 failures, 9 errors

[plugins.json] Add cocoapods-prune-localizations

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-prune-localizations",
  "name": "CocoaPods Prune Localizations",
  "author": "Diego Torres",
  "url": "https://github.com/dtorres/cocoapods-prune-localizations",
  "description": "Upon running pod install, this plugin will remove unused localizations by your project"
}

Installed shows the same version for each version of a plugin

See this output:

$ pod plugins installed

Installed CocoaPods Plugins:
    - cocoapods-plugins      : 0.4.2
    - cocoapods-try          : 0.4.5
    - cocoapods-trunk        : 0.6.1
    - cocoapods-deintegrate  : 0.2.1
    - cocoapods-deintegrate  : 0.2.1
    - cocoapods-dependencies : 0.4.1
    - cocoapods-dependencies : 0.4.1
    - cocoapods-plugins      : 0.4.2
    - cocoapods-plugins      : 0.4.2
    - cocoapods-plugins      : 0.4.2
    - cocoapods-rome         : 0.0.4 (post_install hook)
    - cocoapods-rome         : 0.0.4 (post_install hook)
    - cocoapods-trunk        : 0.6.1
    - cocoapods-trunk        : 0.6.1
    - cocoapods-trunk        : 0.6.1
    - cocoapods-trunk        : 0.6.1
    - cocoapods-trunk        : 0.3.1
    - cocoapods-try          : 0.4.5
    - cocoapods-try          : 0.4.5
    - cocoapods-try          : 0.4.5
    - cocoapods-xcodify      : 0.0.1

Note how cocoapods-deintegrate is listed twice as 0.2.1.

$ gem list | grep cocoapods-deintegrate
cocoapods-deintegrate (0.2.1, 0.1.1)

These are 0.2.1 and 0.1.1.

[plugins.json] Add cocoapods-generator

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-generator",
  "name": "CocoaPods Generator",
  "author": "ไปŽๆƒ",
  "url": "https://github.com/zhzhy/cocoapods-generator",
  "description": "add files to empty target from *.podspec, such as souce files, libraries, frameworks, resources and so on."
}

--verbose should print gem versions too

When the --verbose flag is used, it would be nice to print out all available versions of the gem for each plugin (quite like pod search list all versions of each pod).

We could even highlight the currently installed version in .green, if any.

Could not download plugins list from cocoapod.org

When I tried to get plugins list, below messages were shown.

$ pod plugins
Downloading Plugins list...
[!] Could not download plugins list from cocoapods.org: #<REST::Response:0x007ff15282bf18 @status_code=404, @headers={"date"=>["Sun, 19 Oct 2014 12:45:26 GMT"], "server"=>["Apache"], "access-control-allow-origin"=>["https://render.githubusercontent.com"], "content-security-policy"=>["default-src 'none'"], "x-xss-protection"=>["1; mode=block"], "x-frame-options"=>["deny"], "x-content-type-options"=>["nosniff"], "strict-transport-security"=>["max-age=31536000"], "content-length"=>["9"], "accept-ranges"=>["bytes"], "via"=>["1.1 varnish"], "x-served-by"=>["cache-ty66-TYO"], "x-cache"=>["MISS"], "x-cache-hits"=>["0"], "vary"=>["Authorization,Accept-Encoding"], "expires"=>["Sun, 19 Oct 2014 12:50:26 GMT"], "source-age"=>["0"]}, @body="Not Found">

My environment is following.

  • Ruby: 2.1.2p95
  • cocoapods: 0.34.4
  • OS: OS X 10.9.5

Make `search` the default subcommand

With @AliSoftware adding the search subcommand we could make that the default and change the behavior of search to list all the plugins unless you pass in an optional regex to search with.

pod plugins would list out all the plugins

and

pod plugins neonichu would list any plugins that @neonichu authors.

Thoughts?

[plugins.json] Add cocoapods-Uploader

Please add the following entry to the plugins.json file:

{
  "gem": "cocoapods-uploader",
  "name": "CocoaPods uploader",
  "author": "supern_lee",
  "url": "https://github.com/alibaba/cocoapods-uploader",
  "description": "Upload file/dir to remote storage."
}

[Idea] Centralise all grouped pod declarations

Say you work on a bunch of projects with a similar set of pods, you could create a plugin that adds the same ones to the resolver each time so all projects can update at the same time.

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.