The Cocoa Dependency Manager.

Overview

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
Build Status CocoaPods.app A full-featured and standalone installation of CocoaPods. info
Master Repo Master repository of specifications. guides
Comments
  • CocoaPods compatibility with Apple DTK (Apple Silicon)

    CocoaPods compatibility with Apple DTK (Apple Silicon)

    Currently, libffi +Ruby v2.6.0 seems to have some issues with Apple's DTK. Multiple development tools, including Homebrew (ref homebrew/brew#7857) seem to have issues working. Some have workarounds, but the core seems to be hidden somewhere in libffi (ref libffi/libffi#571)

    I will make sure to keep this issue up to date with fixes from libffi and anything else i can find.

    I received my DTK yesterday, and will try to create a fork of libffi and get it to build. As mentioned in the linked ffi issue, support for arm64 already exists, and may just need to be fixed to apply to DTK/macOS devices. Assuming I can get it to work, I will also create a fork for CP with the working version of libffi and try to get it to build.

    I believe this issue is also related to #9896 & #9890 edit: add related issue

    AppleSilicon 
    opened by MatrixSenpai 146
  • appex contains disallowed file 'Frameworks' (cocoapods 0.39.0.beta.4)

    appex contains disallowed file 'Frameworks' (cocoapods 0.39.0.beta.4)

    The iTunes Connect gave this error message to me when I wanted to upload an ipa file to. Several days I used to have a trouble with that. I found out that it was caused by cocoapods 0.39.0.beta.4. To be more accurate this problem appears when I'm adding some dependencies to a watch extension target. That is the empty folder 'Frameworks' is being created into the appex directory which causes the current issue. Downgrade to 0.38.2 have solved this problem though.

    The same behavior is for such combinations Xcode 6 + watch os 1 Xcode 7 + watch os 1 Xcode 7 + watch os 2

    Thanks.

    s3:detailed d3:hard 
    opened by mikehouse 128
  • Intermittent CDN issues

    Intermittent CDN issues

    Edit 1: ~8:30am EST

    Quick Fix

    Based on this from @d11wtq, simply changing the source in Podfile works for us in our CI (which clean installs all pods every time):

    # From:
    - source 'https://cdn.cocoapods.org/'
    
    # To:
    + source 'https://cocoapods-cdn.netlify.app/'
    # Or, go back to the pre-CDN way
    + source 'https://github.com/CocoaPods/Specs.git'
    

    Note that you should probably move this back in a few days time.

    Edit 2: ~9:00am EST

    We think it might be some custom DNS work on the CP netlify account. We've reached out in a few different routes.

    Edit 3: 3:30pm EST

    We've got in touch

    Edit 4: 8:30pm EST

    Configured DNS to proxy through Cloudflare, which provides general stability.


    Report

    What did you do?

    1. Run pod install which is currently failing because the CDN is not happy about something (500)
    Analyzing dependencies
    /usr/local/Cellar/cocoapods/1.9.3/libexec/gems/cocoapods-core-1.9.3/lib/cocoapods-core/cdn_source.rb:342: warning: URI.escape is obsolete
    [!] CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/CocoaPods-version.yml Response: 500 
    <html>
    <head>
    <title>Fastly error: unknown domain cdn.cocoapods.org</title>
    </head>
    <body>
    <p>Fastly error: unknown domain: cdn.cocoapods.org. Please check that this domain has been added to a service.</p>
    <p>Details: cache-fra19127-FRA</p></body></html>
    
    1. Check the status page at https://status.cocoapods.org/

    What did you expect to happen?

    The CDN should be monitored and listed, and should currently show as not operational.

    What happened instead?

    Everything shows as operational, but the CDN is not listed. "Trunk" is listed, but it has a different host name (trunk.cocoapods.org) so it's not really clear if this is the same thing or not, and also this shows as operational, so it makes me think this is something else.

    s7:workaround available 
    opened by j-h-a 112
  • App Icons not included in build from Xcode 9

    App Icons not included in build from Xcode 9

    Report

    What did you do?

    Run project on device from Xcode 9 Beta 6

    What did you expect to happen?

    Install on device and show included app icon

    What happened instead?

    Installed on device but app icon was the default as if you had not set any app icons

    Note: If project is run from Xcode 8.3.3 the correct app icon is visible. If project is run without CocoaPods the correct app icon is visible.

    CocoaPods Environment

    Stack

       CocoaPods : 1.3.1
            Ruby : ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
        RubyGems : 2.0.14.1
            Host : Mac OS X 10.12.6 (16G29)
           Xcode : 8.3.3 (8E3004b)
             Git : git version 2.11.0 (Apple Git-81)
    Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib
    Repositories : master - https://github.com/CocoaPods/Specs.git @ 349acd3cdb79892c96f2a0dcba3e187244680d3f
    

    Installation Source

    Executable Path: /usr/local/bin/pod
    

    Plugins

    cocoapods-deintegrate : 1.0.1
    cocoapods-plugins     : 1.0.0
    cocoapods-search      : 1.0.0
    cocoapods-stats       : 1.0.0
    cocoapods-trunk       : 1.2.0
    cocoapods-try         : 1.1.0
    

    Podfile

    # Uncomment the next line to define a global platform for your project
    # platform :ios, '9.0'
    
    target 'IconTest' do
      # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
      # use_frameworks!
    
      # Pods for IconTest
      pod "DBCamera"
    end
    

    Project that demonstrates the issue

    https://github.com/harlenn/IconTest

    opened by harlenn 101
  • Error during pod install: Encountered an unknown error (783: unexpected token at

    Error during pod install: Encountered an unknown error (783: unexpected token at

    TEMPORARY WORKAROUND

    A fix will ship with CocoaPods 1.9.2. However, even if you upgrade you might still have a corrupt CocoaPods cache from before. Upgrading to 1.9.2 will ensure you wont see this issue again hopefully.

    To resolve corrupt cache part then remove the CocoaPods repo cache:

    sudo rm -rf ~/.cocoapods/repos If this does not work you are having a different issue and should file a new issue.


    Report

    What did you do?

    pod spec lint MyPodSpec.podspec --verbose --allow-warnings

    What did you expect to happen?

    ℹ Validate my podspec.

    What happened instead?

    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/cdn_source.rb:337: warning: URI.escape is obsolete
      CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo update
        MyProject (1.17.0) - Analyzing on iOS 13.0 platform.
    /usr/local/lib/ruby/gems/2.7.0/gems/nanaimo-0.2.6/lib/nanaimo/writer/pbxproj.rb:13: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
    /usr/local/lib/ruby/gems/2.7.0/gems/nanaimo-0.2.6/lib/nanaimo/writer.rb:35: warning: The called method `initialize' is defined here
      Preparing
    
    Analyzing dependencies
    
    Inspecting targets to integrate
      Using `ARCHS` setting to build architectures of target `Pods-App`: (``)
    
    Fetching external sources
    -> Fetching podspec for `MyProject` from `/Users/user/Development/server/myrepo/MyProject-swift5/MyProject.podspec`
    
    Resolving dependencies of 
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/cdn_source.rb:337: warning: URI.escape is obsolete
      CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo update
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/cdn_source.rb:337: warning: URI.escape is obsolete
      CDN: trunk Relative path: all_pods_versions_d_a_2.txt exists! Returning local because checking is only perfomed in repo update
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/cdn_source.rb:337: warning: URI.escape is obsolete
      CDN: trunk Relative path: Specs/d/a/2/Alamofire/5.0.2/Alamofire.podspec.json exists! Returning local because checking is only perfomed in repo update
     -> MyProject (1.17.0)
        - ERROR | [iOS] unknown: Encountered an unknown error (783: unexpected token at ''
    /usr/local/Cellar/ruby/2.7.0/lib/ruby/2.7.0/json/common.rb:156:in `parse'
    /usr/local/Cellar/ruby/2.7.0/lib/ruby/2.7.0/json/common.rb:156:in `parse'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification/json.rb:61:in `from_json'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification.rb:742:in `from_string'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification.rb:716:in `from_file'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/source.rb:186:in `specification'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification/set.rb:58:in `block in specification_name'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification/set.rb:56:in `each'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/specification/set.rb:56:in `specification_name'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/cdn_source.rb:216:in `search'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/source/aggregate.rb:83:in `block in search'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/source/aggregate.rb:83:in `select'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/source/aggregate.rb:83:in `search'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:416:in `create_set_from_sources'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:385:in `find_cached_set'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:360:in `specifications_for_dependency'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:165:in `search_for'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:274:in `block in sort_dependencies'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:267:in `each'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:267:in `sort_by'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:267:in `sort_dependencies'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:53:in `block in sort_dependencies'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:70:in `with_no_such_dependency_error_handling'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/delegates/specification_provider.rb:52:in `sort_dependencies'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:754:in `push_state_for_requirements'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:746:in `require_nested_dependencies_for'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:729:in `activate_new_spec'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:686:in `attempt_to_activate'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:254:in `process_topmost_state'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
    /usr/local/lib/ruby/gems/2.7.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/resolver.rb:94:in `resolve'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/installer/analyzer.rb:1065:in `block in resolve_dependencies'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/user_interface.rb:64:in `section'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/installer/analyzer.rb:1063:in `resolve_dependencies'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/installer.rb:410:in `analyze'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/installer.rb:235:in `block in resolve_dependencies'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/user_interface.rb:64:in `section'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/installer.rb:234:in `resolve_dependencies'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/validator.rb:565:in `block in download_pod'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/validator.rb:565:in `each'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/validator.rb:565:in `download_pod'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/validator.rb:389:in `block in perform_extensive_analysis'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/validator.rb:383:in `each'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/validator.rb:383:in `perform_extensive_analysis'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/validator.rb:130:in `validate'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/command/spec/lint.rb:78:in `block in run'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/command/spec/lint.rb:63:in `each'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/command/spec/lint.rb:63:in `run'
    /usr/local/lib/ruby/gems/2.7.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/command.rb:52:in `run'
    /usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/bin/pod:55:in `<top (required)>'
    /usr/local/bin/pod:23:in `load'
    /usr/local/bin/pod:23:in `<main>'
    ) during validation.
    

    CocoaPods Environment

       CocoaPods : 1.9.1
            Ruby : ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19]
        RubyGems : 3.1.2
            Host : Mac OS X 10.15.4 (19E266)
           Xcode : 11.4 (11E146)
             Git : git version 2.24.1 (Apple Git-126)
    Ruby lib dir : /usr/local/Cellar/ruby/2.7.0/lib
    

    Additional notes

    I've tried to fallback to previous versions of cocoapods, unsuccessfully, until I reached 1.7.5: pod _1.7.5_ spec lint MyPodSpec.podspec --verbose --allow-warnings This worked like a charm.

    MyPodSpec

    Pod::Spec.new do |s|
      s.name = 'MyPodSpec'
      s.platform = :ios, "13.0"
      s.ios.deployment_target = "13.0"
      s.swift_version         = "5.0"
      s.version = '1.17.0'
      s.source = { :git => 'https://gitlab.mycompany.it/mobile/myrepo.git', :tag => s.version.to_s }
      s.authors = { 'Me' => '[email protected]' }
      s.license = { :type => 'MIT', :file => 'LICENSE' }
      s.homepage = 'https://www.mycompanywebsite.it/'
      s.summary = 'MyPodSpec'
      s.source_files = 'MyPodSpec-swift5/MyPodSpec/Classes/OpenAPIs/**/*.swift'
      s.dependency 'Alamofire', '~> 5.0.2'
    end
    

    What am I doing wrong?

    Thanks for your help, Alessandro

    help wanted s7:workaround available 
    opened by wolfAle 100
  • XCode 7.1 - Include of non-modular header inside framework

    XCode 7.1 - Include of non-modular header inside framework

    I have a project that was building fine that suddenly stopped building in xcode 7.1

    The project has a development pod and also includes the GPUImage pod. The development pod used to be able to reference GPUImage via:

    #import <GPUImage/GPUImage.h>
    

    But that now gives a compile error of "Include of non-modular header inside framework module"

    I've tried setting the flag:

    CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = 'YES'
    

    but that makes no difference.

    I tried to import GPUImage via:

    @import GPUImage;
    

    but that won't compile. Is this a know issue ?

    opened by solomon23 98
  • Distribute via Homebrew

    Distribute via Homebrew

    It seems like we should start distributing CocoaPods via homebrew. Distributing via RubyGems is really just an implementation detail. I'm not suggesting we try to have updates reviewed each time we want to release, instead I'm suggesting we create our own homebrew tap and distribute our own formula there. An example of how this can be done, and scripted, for a Ruby based project can be found here.

    This would also help us with dealing with issues around Ruby installations, system Ruby and sudo or not.

    t3:discussion 
    opened by keith 98
  • [!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`.

    [!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`.

    localhost:~ J$ pod install Updating local specs repositories Creating shallow clone of spec repo master from https://github.com/CocoaPods/Specs.git [!] Unable to add a source with url https://github.com/CocoaPods/Specs.git named master. You can try adding it manually in ~/.cocoapods/repos or via pod repo add. localhost:~ J$

    i do not know how to resolve it

    opened by ghost 96
  • Problems with 64-bit Builds and Xcode 5 GM

    Problems with 64-bit Builds and Xcode 5 GM

    Pods was rejected as an implicit dependency for 'libPods.a' because its architectures 'armv7 armv7s' didn't contain all required architectures 'armv7 armv7s arm64'
    

    I can try and update it myself, but in the future, Cocoapods should add the arm64 architecture to the pods when detected

    opened by coneybeare 88
  • Pods copy resource script overrides default xcasset bahaviour

    Pods copy resource script overrides default xcasset bahaviour

    I have a project with different "themes" that are used for different xcode targets. For the themes I have two xcasset catalogs, one with red graphics and one with green graphics. Inside the bundles the files are named the same (so that I can simply use background.png as image name and get the correct color). Which xcasset that get copied is determined by the target membership (and ultimately by the build step "copy bundle resources"). Since cocoa pods version 0.27 I've noticed that there is a new entry in the copy pods resource script. That will cause my red graphics copied by the standard xcode build step to be replaced with the green graphics copied by the cocoa pods copy resources build step.

    t2:defect s2:confirmed d2:moderate 
    opened by barksten 85
  • Crash when reading Xcode project during intergration

    Crash when reading Xcode project during intergration

    This is a reproducible issue, which doesn't happen every time, but it happens often enough when running pod install --no-repo-update. The issue appears to be something wrong with the garbage collector in Apple's Ruby in this specific context.

    This is only reproducible on system ruby. I compiled this version of Ruby myself with debug symbols and it doesn't exhibit the same issue.

    Myself and @alloy have tried creating a smaller version of this code to reproduce with no success. Calling the following works fine:

    Xcodeproj::PlistHelper.read('/Users/kylef/Projects/cocode/palaver/Palaver.xcodeproj/project.pbxproj')
    

    However it's the exact thing that is called during the CocoaPods integration. We have then saved the output of this method to Marshal'ed to disk and then stubbed out Xcodeproj::PlistHelper.read to return the marshal'ed version and it also works.

    Specifically, it's calling load_xml_str on CFPropertyList::List which seems to trigger the process of crashing. To be clear, it's not necessarily something that CFPropertyList is doing. But somehow the ruby process is getting into a state where it is crashing in this code path.

    $ ruby --version
    ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
    
    Users/kylef/gems/gems/xcodeproj-0.19.1/lib/xcodeproj/project.rb:175:in `initialize_from_file'
    /Users/kylef/gems/gems/xcodeproj-0.19.1/lib/xcodeproj/project.rb:92:in `open'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/target/aggregate_target.rb:50:in `user_targets'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/installer/user_project_integrator.rb:141:in `block in warn_about_xcconfig_overrides'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/installer/user_project_integrator.rb:140:in `each'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/installer/user_project_integrator.rb:140:in `warn_about_xcconfig_overrides'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/installer/user_project_integrator.rb:63:in `integrate!'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/installer.rb:496:in `block in integrate_user_project'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/user_interface.rb:49:in `section'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/installer.rb:493:in `integrate_user_project'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/installer.rb:93:in `install!'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/command/project.rb:71:in `run_install_with_update'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/command/project.rb:101:in `run'
    /Users/kylef/gems/gems/claide-0.7.0/lib/claide/command.rb:271:in `run'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/lib/cocoapods/command.rb:48:in `run'
    /Users/kylef/gems/gems/cocoapods-0.34.0.rc2/bin/pod:33:in `<top (required)>'
    
    (lldb) bt all
    * thread #1: tid = 0x2ddee, 0x0000000100049ce9 libruby.2.0.0.dylib`___lldb_unnamed_function877$$libruby.2.0.0.dylib + 178, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
      * frame #0: 0x0000000100049ce9 libruby.2.0.0.dylib`___lldb_unnamed_function877$$libruby.2.0.0.dylib + 178
        frame #1: 0x0000000100044d42 libruby.2.0.0.dylib`rb_gc_finalize_deferred + 74
        frame #2: 0x000000010013a868 libruby.2.0.0.dylib`rb_threadptr_execute_interrupts + 852
        frame #3: 0x0000000100123436 libruby.2.0.0.dylib`___lldb_unnamed_function2527$$libruby.2.0.0.dylib + 15017
        frame #4: 0x000000010012d062 libruby.2.0.0.dylib`___lldb_unnamed_function2579$$libruby.2.0.0.dylib + 139
        frame #5: 0x000000010013265f libruby.2.0.0.dylib`___lldb_unnamed_function2627$$libruby.2.0.0.dylib + 713
        frame #6: 0x0000000100127b5b libruby.2.0.0.dylib`rb_funcall2 + 337
        frame #7: 0x0000000100075b41 libruby.2.0.0.dylib`rb_class_new_instance + 41
        frame #8: 0x0000000100135376 libruby.2.0.0.dylib`___lldb_unnamed_function2664$$libruby.2.0.0.dylib + 814
        frame #9: 0x0000000100122577 libruby.2.0.0.dylib`___lldb_unnamed_function2527$$libruby.2.0.0.dylib + 11242
        frame #10: 0x000000010012d062 libruby.2.0.0.dylib`___lldb_unnamed_function2579$$libruby.2.0.0.dylib + 139
        frame #11: 0x000000010012a86d libruby.2.0.0.dylib`rb_yield + 216
        frame #12: 0x000000010000b38f libruby.2.0.0.dylib`rb_ary_each + 72
        frame #13: 0x0000000100135376 libruby.2.0.0.dylib`___lldb_unnamed_function2664$$libruby.2.0.0.dylib + 814
        frame #14: 0x0000000100134d55 libruby.2.0.0.dylib`___lldb_unnamed_function2663$$libruby.2.0.0.dylib + 614
        frame #15: 0x00000001001224c9 libruby.2.0.0.dylib`___lldb_unnamed_function2527$$libruby.2.0.0.dylib + 11068
        frame #16: 0x000000010012d062 libruby.2.0.0.dylib`___lldb_unnamed_function2579$$libruby.2.0.0.dylib + 139
        frame #17: 0x000000010012cfc4 libruby.2.0.0.dylib`rb_iseq_eval + 366
        frame #18: 0x00000001000384fc libruby.2.0.0.dylib`___lldb_unnamed_function600$$libruby.2.0.0.dylib + 317
        frame #19: 0x000000010003936d libruby.2.0.0.dylib`___lldb_unnamed_function605$$libruby.2.0.0.dylib + 177
        frame #20: 0x0000000100135376 libruby.2.0.0.dylib`___lldb_unnamed_function2664$$libruby.2.0.0.dylib + 814
        frame #21: 0x0000000100134d55 libruby.2.0.0.dylib`___lldb_unnamed_function2663$$libruby.2.0.0.dylib + 614
        frame #22: 0x0000000100122577 libruby.2.0.0.dylib`___lldb_unnamed_function2527$$libruby.2.0.0.dylib + 11242
        frame #23: 0x000000010012d062 libruby.2.0.0.dylib`___lldb_unnamed_function2579$$libruby.2.0.0.dylib + 139
        frame #24: 0x000000010012dbe2 libruby.2.0.0.dylib`rb_iseq_eval_main + 138
        frame #25: 0x00000001000353fc libruby.2.0.0.dylib`___lldb_unnamed_function568$$libruby.2.0.0.dylib + 128
        frame #26: 0x000000010003534d libruby.2.0.0.dylib`ruby_run_node + 78
        frame #27: 0x0000000100000e5a ruby`main + 91
        frame #28: 0x00007fff8b1055c9 libdyld.dylib`start + 1
        frame #29: 0x00007fff8b1055c9 libdyld.dylib`start + 1
    
    t2:defect s2:confirmed d3:hard 
    opened by kylef 76
  • Install stalled for Lottie 4.0.1

    Install stalled for Lottie 4.0.1

    trying to update to 4.0.1 and it never installs/downloads

    this Is on a M1.. have not tested with intel

    stuck at:

    -> Installing lottie-ios 4.0.1 (was 3.5.0)
     > Git download
     > Git download
         $ /usr/bin/git clone https://github.com/airbnb/lottie-ios.git
         /var/folders/ck/j34wj3q54js1p0vlgvr2rkch0000gn/T/d20230105-85079-vo7hjm --template= --single-branch --depth 1 --branch
         4.0.1
         Cloning into '/var/folders/ck/j34wj3q54js1p0vlgvr2rkch0000gn/T/d20230105-85079-vo7hjm'...
    

    There is no more output after this...

    if I control-c to kill it then I get:

    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/executable.rb:180:in `value': Interrupt
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/executable.rb:180:in `block in popen3'
    	from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/open3.rb:219:in `popen_run'
    	from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/open3.rb:101:in `popen3'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/executable.rb:175:in `popen3'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/executable.rb:67:in `execute_command'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader.rb:142:in `execute_command'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-downloader-1.6.3/lib/cocoapods-downloader/base.rb:175:in `block in executable'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-downloader-1.6.3/lib/cocoapods-downloader/git.rb:107:in `block in clone'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader.rb:175:in `block in ui_sub_action'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader.rb:174:in `ui_sub_action'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-downloader-1.6.3/lib/cocoapods-downloader/git.rb:105:in `clone'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-downloader-1.6.3/lib/cocoapods-downloader/git.rb:73:in `download!'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-downloader-1.6.3/lib/cocoapods-downloader/base.rb:83:in `block in download'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader.rb:159:in `block in ui_action'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader.rb:158:in `ui_action'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-downloader-1.6.3/lib/cocoapods-downloader/base.rb:81:in `download'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader.rb:110:in `download_source'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader.rb:77:in `download_request'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader/cache.rb:256:in `download'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader/cache.rb:239:in `block in uncached_pod'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader/cache.rb:266:in `in_tmpdir'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader/cache.rb:238:in `uncached_pod'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader/cache.rb:33:in `download_pod'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/downloader.rb:42:in `download'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/pod_source_installer.rb:118:in `download_source'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/pod_source_installer.rb:69:in `install!'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:563:in `install_source_of_pod'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:514:in `block (2 levels) in install_pod_sources'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:86:in `titled_section'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:513:in `block in install_pod_sources'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:496:in `each'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:496:in `install_pod_sources'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:255:in `block in download_dependencies'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:254:in `download_dependencies'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:162:in `install!'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/command/update.rb:63:in `run'
    	from /Library/Ruby/Gems/2.6.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/command.rb:52:in `run'
    	from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/bin/pod:55:in `<top (required)>'
    	from /usr/local/bin/pod:23:in `load'
    	from /usr/local/bin/pod:23:in `<main>'
    
    opened by khoogheem 0
  • configuration not work for HEADER_SEARCH_PATHS

    configuration not work for HEADER_SEARCH_PATHS

    Report

    I want to introduce DebugPod only in debug configuration, so I made the following configuration,

    pod 'DebugPod', :git =>'xxxx', :configurations => ['Debug']

    But I found that in the HEADER_SEARCH_PATHS of example.release.xcconfig, the DebugPod header file path is still included

    What did you do?

    pod install

    What did you expect to happen?

    example.release.xcconfig HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FMDB" 'DebugPod' should be removed in LIBRARY_SEARCH_PATHS and HEADER_SEARCH_PATHS

    What happened instead?

    example.release.xcconfig HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/DebugPod" // should be removed DebugPod still exist in HEADER_SEARCH_PATHS

    CocoaPods Environment

    CocoaPods : 1.11.2 Ruby : ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin22] RubyGems : 3.1.4 Host : macOS 13.0.1 (22A400) Xcode : 14.2 (14C18)

    Project that demonstrates the issue

    ℹ Please link to a project we can download that reproduces the issue. You can delete this section if your issue is unrelated to build problems, i.e. it's only an issue with CocoaPods the tool.

    opened by yFeii 0
  • pod install failure

    pod install failure

    Report

    What did you do?

    Run pod install

    What did you expect to happen?

    Installation failure, an error occurred.

    Command

    /usr/local/Cellar/cocoapods/1.11.3/libexec/bin/pod install
    

    Report

    • What did you do?

    • What did you expect to happen?

    • What happened instead?

    Stack

       CocoaPods : 1.11.3
            Ruby : ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin22]
        RubyGems : 3.0.3.1
            Host : macOS 13.0.1 (22A400)
           Xcode : 14.2 (14C18)
             Git : git version 2.37.1 (Apple Git-137.1)
    Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib
    Repositories : trunk - CDN - https://cdn.cocoapods.org/
    

    Plugins

    cocoapods-deintegrate : 1.0.5
    cocoapods-plugins     : 1.0.0
    cocoapods-search      : 1.0.1
    cocoapods-trunk       : 1.6.0
    cocoapods-try         : 1.2.0
    

    Podfile

    platform :ios, '15.0'
    use_frameworks!
    
    target 'ProjectTest' do
      pod 'WechatOpenSDK', '1.9.9'
      pod 'SnapKit'
    end
    

    Error

    LoadError - incompatible library version - /Users/wuyueyang/.rvm/gems/ruby-3.0.0/gems/ffi-1.15.5/lib/ffi_c.bundle
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /Users/wuyueyang/.rvm/gems/ruby-3.0.0/gems/ffi-1.15.5/lib/ffi.rb:5:in `rescue in <top (required)>'
    /Users/wuyueyang/.rvm/gems/ruby-3.0.0/gems/ffi-1.15.5/lib/ffi.rb:2:in `<top (required)>'
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/ethon-0.16.0/lib/ethon.rb:3:in `<top (required)>'
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/typhoeus-1.4.0/lib/typhoeus.rb:2:in `<top (required)>'
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/cdn_source.rb:440:in `download_typhoeus_impl_async'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/cdn_source.rb:372:in `download_and_save_with_retries_async'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/cdn_source.rb:365:in `download_file_async'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/cdn_source.rb:338:in `download_file'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/cdn_source.rb:284:in `ensure_versions_file_loaded'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/cdn_source.rb:208:in `search'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/source/aggregate.rb:83:in `block in search'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/source/aggregate.rb:83:in `select'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-core-1.11.3/lib/cocoapods-core/source/aggregate.rb:83:in `search'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:416:in `create_set_from_sources'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:385:in `find_cached_set'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:360:in `specifications_for_dependency'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:165:in `search_for'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:274:in `block in sort_dependencies'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:267:in `each'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:267:in `sort_by'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:267:in `sort_by!'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:267:in `sort_dependencies'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:60:in `block in sort_dependencies'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:77:in `with_no_such_dependency_error_handling'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:59:in `sort_dependencies'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:754:in `push_state_for_requirements'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:288:in `push_initial_state'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:210:in `start_resolution'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:168:in `resolve'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/molinillo-0.8.0/lib/molinillo/resolver.rb:43:in `resolve'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:94:in `resolve'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:1078:in `block in resolve_dependencies'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:1076:in `resolve_dependencies'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:416:in `analyze'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:241:in `block in resolve_dependencies'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:240:in `resolve_dependencies'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:161:in `install!'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/command/install.rb:52:in `run'
    /Users/wuyueyang/.rvm/gems/ruby-3.0.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/lib/cocoapods/command.rb:52:in `run'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/gems/cocoapods-1.11.3/bin/pod:55:in `<top (required)>'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/bin/pod:23:in `load'
    /usr/local/Cellar/cocoapods/1.11.3/libexec/bin/pod:23:in `<main>'
    
    opened by Sadow32 0
  • No such file or directory

    No such file or directory

    Report

    What did you do?

    ℹ Please replace these two lines with what you did.
    Run pod repo push MySpecs XXX.podspec --sources=https://www.github.com/PrivatePods/MySpecs.git --skip-import-validation --use-libraries --allow-warnings --swift-version=5 --verbose

    What did you expect to happen?

    ℹ Please replace these two lines with what you expected to happen.
    push my spec file to private pod

    What happened instead?

    Encountered an unknown error.

    Note: I can run the command directly on my own machine, but not through the jenkins machine. The version of cocoapods is 1.10.1

    ℹ Please replace these two lines with of what happened instead.

    Logs

    • Running pre install hooks -> XXX (0.0.1) ...
      • ERROR | [XXX/XXXSubSpec and more...] unknown: Encountered an unknown error (No such file or directory @ rb_sysopen - /private/var/folders/2t/hzb086x5425b5f8zzdr_bjrr0000gp/T/CocoaPods-Lint-20230103-92664-9fo82z-XXX/Pods/Local Podspecs/XXX.podspec.json /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-core-1.10.1/lib/cocoapods-core/specification.rb:673:in read' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-core-1.10.1/lib/cocoapods-core/specification.rb:673:inchecksum' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-core-1.10.1/lib/cocoapods-core/specification.rb:678:in checksum' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-core-1.10.1/lib/cocoapods-core/lockfile.rb:533:inblock in generate_checksums' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-core-1.10.1/lib/cocoapods-core/lockfile.rb:532:in each' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-core-1.10.1/lib/cocoapods-core/lockfile.rb:532:ingenerate_checksums' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-core-1.10.1/lib/cocoapods-core/lockfile.rb:428:in generate' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:783:ingenerate_lockfile' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:791:in write_lockfiles' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:577:inblock in download_pod' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:577:in each' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:577:indownload_pod' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:399:in block in perform_extensive_analysis' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:393:ineach' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:393:in perform_extensive_analysis' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:426:inblock in perform_extensive_subspec_analysis' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:424:in each' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:424:inperform_extensive_subspec_analysis' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:413:in perform_extensive_analysis' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/validator.rb:130:invalidate' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command/repo/push.rb:145:in block in validate_podspec_files' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command/repo/push.rb:135:ineach' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command/repo/push.rb:135:in validate_podspec_files' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command/repo/push.rb:76:inrun' /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in run' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command.rb:52:inrun' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/bin/pod:55:in <top (required)>' /usr/local/Cellar/cocoapods/1.10.1/libexec/bin/pod:23:inload' /usr/local/Cellar/cocoapods/1.10.1/libexec/bin/pod:23:in `
        ' ) during validation.

    [!] The XXX.podspec specification does not validate.

    /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command/repo/push.rb:150:in block in validate_podspec_files' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command/repo/push.rb:135:ineach' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command/repo/push.rb:135:in validate_podspec_files' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command/repo/push.rb:76:inrun' /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in run' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/lib/cocoapods/command.rb:52:inrun' /usr/local/Cellar/cocoapods/1.10.1/libexec/gems/cocoapods-1.10.1/bin/pod:55:in <top (required)>' /usr/local/Cellar/cocoapods/1.10.1/libexec/bin/pod:23:inload' /usr/local/Cellar/cocoapods/1.10.1/libexec/bin/pod:23:in `

    '

    CocoaPods Environment

    ℹ Please replace these two lines with the output of pod env.

    Stack

       CocoaPods : 1.11.3
            Ruby : ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin22]
        RubyGems : 3.0.3.1
            Host : macOS 13.0.1 (22A400)
           Xcode : 14.0 (14A309)
             Git : git version 2.37.0 (Apple Git-136)
    Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib
    Repositories :  xxx private specs...
    

    Installation Source

    Executable Path: /usr/local/bin/pod
    

    Plugins

    claide-plugins                        : 0.9.2
    cocoapods-binary-flutter              : 0.0.3
    cocoapods-deintegrate                 : 1.0.5
    cocoapods-dependencies                : 1.0.0.beta.1
    cocoapods-disable-podfile-validations : 0.1.1
    cocoapods-generate                    : 2.0.1
    cocoapods-plugins                     : 1.0.0
    cocoapods-pod-sign                    : 1.2.2
    cocoapods-search                      : 1.0.1
    cocoapods-swordfish                   : 1.0.0
    cocoapods-trunk                       : 1.6.0
    cocoapods-try                         : 1.2.0
    cocoapods_debug                       : 0.1.0
    

    Project that demonstrates the issue

    sorry, can't provide

    opened by codwam 0
  • `PodTargetInstaller.add_test_app_host_targets` should inherit `info_plist_entries` from `TestSpecification`

    `PodTargetInstaller.add_test_app_host_targets` should inherit `info_plist_entries` from `TestSpecification`

    Report

    What did you do?

    ℹ Please replace these two lines with what you did.

    Run pod install

    What did you expect to happen?

    ℹ Please replace these two lines with what you expected to happen.
    e.g. Install all pod dependencies correctly.

    I set info_plist in test_spec like this:

      s.test_spec 'Tests' do |spec|
        spec.requires_app_host = true
        spec.info_plist = {
          'NSPhotoLibraryUsageDescription' => 'Require Test Permission',
        }
        spec.source_files = 'Sample/UnitTests/**/*.{h,hpp,c,cc,cpp,m,mm}'
      end
    

    NORMALLY, I think this Info.plist will also set in the AppHost-Sample-Unit-Test-Info.

    What happened instead?

    ACTUALLY, only Sample-Unit-Tests-Info set these entries properly.

    image image

    Eventually, AppHost will crash When I try to request permission.

    So I try to fix this by a ruby extension like this:

    module Pod
      class Installer
        class Xcode
          class PodsProjectGenerator
            class PodTargetInstaller
              def add_test_app_host_targets
                target.test_spec_consumers.reject(&:requires_app_host?).select(&:app_host_name).each do |test_spec_consumer|
                  raise Informative, "`#{target.label}-#{test_spec_consumer.test_type}-Tests` manually specifies an app host but has not specified `requires_app_host = true`."
                end
            
                target.test_spec_consumers.select(&:requires_app_host?).reject(&:app_host_name).group_by { |consumer| target.app_host_target_label(consumer.spec) }.
                  map do |(_, target_name), consumer| # expose consumer to the block 
                  info_plist_entries = consumer.map(&:info_plist).reduce
                  UI.puts("Overwrite app_host_info_plist : #{info_plist_entries}") if info_plist_entries.count > 0
                  AppHostInstaller.new(sandbox, project, target.platform, target_name, target.pod_name, target_name, :info_plist_entries => info_plist_entries).install!
                end
              end
            end
          end
        end
      end  
    end
    

    Finally the AppHost Info.plist set those privacy keys properly.

    image

    CocoaPods Environment

    Stack

       CocoaPods : 1.11.3
            Ruby : ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin20]
        RubyGems : 3.1.4
            Host : macOS 13.1 (22C65)
           Xcode : 14.1 (14B47b)
             Git : git version 2.38.1
    Ruby lib dir : /Users/xxx/.rbenv/versions/2.7.2/lib
    Repositories : 
                   trunk - CDN - https://cdn.cocoapods.org/
    

    Installation Source

    Executable Path: /Users/xxx/.rbenv/versions/2.7.2/bin/pod
    

    Plugins

    cocoapods-deintegrate  : 1.0.5
    cocoapods-open         : 0.0.8
    cocoapods-plugins      : 1.0.0
    cocoapods-project-hmap : 0.0.10
    cocoapods-query        : 1.0.1
    cocoapods-search       : 1.0.1
    cocoapods-stats        : 1.1.0
    cocoapods-trunk        : 1.6.0
    cocoapods-try          : 1.2.0
    

    Podfile

    $LOAD_PATH << "."
    # require 'cocoapods_extensions'
    
    use_frameworks! :linkage => :static
    
    ENV["COCOAPODS_DISABLE_STATS"] = "true"
    install! "cocoapods", :deterministic_uuids => false
    
    platform :ios, '11.0'
    
    target 'BKPodSample_Example' do
      pod 'BKPodSample', :path => '../', :testspecs => ["Tests"]
    
      target 'BKPodSample_Tests' do
        inherit! :search_paths
    
        
      end
    end
    #
    
    opened by blastmann 0
  • Pod::StandardError - [Bug] Unable to find the specification for ` (from `../node_modules/expo-modules-core/ios`)`.

    Pod::StandardError - [Bug] Unable to find the specification for ` (from `../node_modules/expo-modules-core/ios`)`.

    Report

    What did you do?

    Run pod install --repo-update

    What did you expect to happen?

    Install all pod dependencies correctly.

    What happened instead?

    Pod::StandardError - [Bug] Unable to find the specification for ` (from `../node_modules/expo-modules-core/ios`)`.
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:380:in `find_cached_set'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:360:in `specifications_for_dependency'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:165:in `search_for'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:274:in `block in sort_dependencies'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:267:in `each'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:267:in `sort_by'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:267:in `sort_by!'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:267:in `sort_dependencies'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:60:in `block in sort_dependencies'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:77:in `with_no_such_dependency_error_handling'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:59:in `sort_dependencies'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:754:in `push_state_for_requirements'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:288:in `push_initial_state'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:210:in `start_resolution'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:168:in `resolve'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/molinillo-0.8.0/lib/molinillo/resolver.rb:43:in `resolve'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/resolver.rb:94:in `resolve'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:1078:in `block in resolve_dependencies'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:1076:in `resolve_dependencies'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:416:in `analyze'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:241:in `block in resolve_dependencies'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:240:in `resolve_dependencies'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:161:in `install!'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/command/install.rb:52:in `run'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/lib/cocoapods/command.rb:52:in `run'
    /Users/kk48/.rvm/gems/ruby-3.0.0/gems/cocoapods-1.11.3/bin/pod:55:in `<top (required)>'
    /usr/local/bin/pod:23:in `load'
    /usr/local/bin/pod:23:in `<main>'
    

    Stack

       CocoaPods : 1.11.3
            Ruby : ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin21]
        RubyGems : 3.2.3
            Host : macOS 12.4 (21F79)
           Xcode : 13.4 (13F17a)
             Git : git version 2.36.1
    Ruby lib dir : /Users/kk48/.rvm/rubies/ruby-3.0.0/lib
    Repositories : trunk - CDN - https://cdn.cocoapods.org/
    

    Plugins

    cocoapods-deintegrate : 1.0.5
    cocoapods-plugins     : 1.0.0
    cocoapods-search      : 1.0.1
    cocoapods-trunk       : 1.6.0
    cocoapods-try         : 1.2.0
    

    Podfile

    require_relative '../node_modules/react-native/scripts/react_native_pods'
    require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
    require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
    
    platform :ios, '11.0'
    
    target 'lightawake' do
      use_unimodules!
      config = use_native_modules!
    
      use_react_native!(
        :path => config[:reactNativePath],
        :flipper_configuration => FlipperConfiguration.enabled(["Debug"], { 'Flipper' => '0.176.1.0' }),
        )
      
      pod 'RNSound', :path => '../node_modules/react-native-sound'
      pod 'UMPermissionsInterface', :path => '../node_modules/unimodules-permissions-interface/ios'
      pod 'react-native-geolocation', :path => '../node_modules/@react-native-community/geolocation'
      pod 'RNWifi', :path => '../node_modules/react-native-wifi-reborn'
      pod "TuyaSmartHomeKit"
      pod 'GoogleSignIn', '~> 6.1.0'
    
      pod 'react-native-background-timer', :path => '../node_modules/react-native-background-timer'
    
      pod 'RNIap', :path => '../node_modules/react-native-iap'
    
      pod 'react-native-blob-util', :path => '../node_modules/react-native-blob-util'
    
      target 'lightawakeTests' do
        inherit! :complete
        # Pods for testing
      end
    end
    
    target 'lightawake-tvOS' do
      # Pods for lightawake-tvOS
    
      target 'lightawake-tvOSTests' do
        inherit! :search_paths
        # Pods for testing
      end
    end
    
    opened by Gnash-Obial 4
Releases(1.11.3)
Owner
A Swift & Objective C Dependency Manager
null
A dependency manager driven by SwiftPM that works for iOS/tvOS/watchOS/macOS projects.

Installation • Usage • Supporting Accio • Contributing • License ⚠️ Deprecation Notice ⚠️ With the release of Xcode 12 which includes Swift 5.3, we fe

Jamit Labs 647 Dec 25, 2022
Git Submodule Alternative for Cocoa.

CocoaSeeds Git Submodule Alternative for Cocoa. Inspired by CocoaPods. Why? iOS 7 projects do not support the use of Swift libraries from CocoaPods or

Suyeol Jeon 342 Jul 20, 2022
A package manager that installs and runs executable Swift packages

Mint ?? A package manager that installs and runs Swift command line tool packages. $ mint run realm/[email protected] This would install and run SwiftL

Yonas Kolb 2k Jan 7, 2023
The Package Manager for the Swift Programming Language

Swift Package Manager Project The Swift Package Manager is a tool for managing distribution of source code, aimed at making it easy to share your code

Apple 9.1k Dec 29, 2022
Swift Modules, a swift module (or package) manager

Swift Modules The Swift Modules manager similar to the JavaScript world's npm and bower

Jan Kuča 60 Jun 3, 2021
The Cocoa Dependency Manager.

CocoaPods: The Cocoa dependency manager CocoaPods manages dependencies for your Xcode projects. You specify the dependencies for your project in a sim

null 13.9k Jan 8, 2023
The Cocoa Dependency Manager.

CocoaPods: The Cocoa dependency manager CocoaPods manages dependencies for your Xcode projects. You specify the dependencies for your project in a sim

null 13.9k Dec 30, 2022
A simple, decentralized dependency manager for Cocoa

Carthage Carthage is intended to be the simplest way to add frameworks to your Cocoa application. Carthage builds your dependencies and provides you w

Carthage 14.7k Dec 29, 2022
Model framework for Cocoa and Cocoa Touch

Mantle Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application. The Typical Model Object What's wrong with the wa

null 11.3k Dec 31, 2022
Adding ruby style each iterator to Cocoa/Cocoa touch Swift Array and Range classes, And Int.times{} to Int class

Collection-Each Adding ruby style each iterator to Cocoa/Cocoa touch Swift Array, Dictionary and Range classes, and Int.times ###Why? Array/Dictionary

Omar Abdelhafith 65 Jun 9, 2018
Typhoon Powerful dependency injection for Cocoa and CocoaTouch.

Typhoon Powerful dependency injection for Cocoa and CocoaTouch. Lightweight, yet full-featured and super-easy to use. Pilgrim is a pure Swift successo

AppsQuick.ly 2.7k Dec 14, 2022
RavynOS File manager built in Cocoa/Appkit and ObjC

Filer A file manager and re-implementation of macOS's Finder. A key component of ravynOS, Filer is the first application you see after you start ravyn

RavynSoft 8 Oct 3, 2022
A dependency manager driven by SwiftPM that works for iOS/tvOS/watchOS/macOS projects.

Installation • Usage • Supporting Accio • Contributing • License ⚠️ Deprecation Notice ⚠️ With the release of Xcode 12 which includes Swift 5.3, we fe

Jamit Labs 647 Dec 25, 2022
Task-Manager - Task Manager App With Swift

Task-Manager It's typical task manager where user can assign the importance, def

Andrey Buchevskiy 1 Jan 10, 2022
Reactive extensions to Cocoa frameworks, built on top of ReactiveSwift.

ReactiveSwift offers composable, declarative and flexible primitives that are built around the grand concept of streams of values over time. These primitives can be used to uniformly represent common Cocoa and generic programming patterns that are fundamentally an act of observation.

null 20k Jan 3, 2023
Sugar is a sweetener for your Cocoa implementations.

Sugar is a sweetener for your Cocoa implementations. Table of Contents iOS Application Screen Simulator Keyboard Observer iOS Extensions UIView

HyperRedink 1.1k Dec 29, 2022
Demonstration of how to integrate AppleScript/Cocoa scripting into a Catalyst app

CatalystAppleScript Trivial demonstration showing how to build support for AppleScript into a Catalyst app. Showcases multiple commands and variables

Steven Troughton-Smith 47 Aug 11, 2022
A Cocoa NSFormatter subclass to convert dates to and from ISO-8601-formatted strings. Supports calendar, week, and ordinal formats.

ISO 8601: The only date format worth using Obligatory relevant xkcd: How to use this code in your program Add the source files to your project. Parsin

Peter Hosey 601 Sep 4, 2022
A "time ago", "time since", "relative date", or "fuzzy date" category for NSDate and iOS, Objective-C, Cocoa Touch, iPhone, iPad

Migration 2014.04.12 NSDate+TimeAgo has merged with DateTools. DateTools is the parent project and Matthew York is the project head. This project is n

Kevin Lawler 1.8k Dec 2, 2022
A Cocoa / Objective-C wrapper around SQLite

FMDB v2.7 This is an Objective-C wrapper around SQLite. The FMDB Mailing List: https://groups.google.com/group/fmdb Read the SQLite FAQ: https://www.s

August 13.7k Dec 28, 2022