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
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
  • 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
  • GCC_PREPROCESSOR_DEFINITIONS[config=Debug] it not supported for merging

    GCC_PREPROCESSOR_DEFINITIONS[config=Debug] it not supported for merging

    Report

    podspec supports merging of PLURAL_SETTINGS,but GCC_PREPROCESSOR_DEFINITIONS[config=Debug] is not supported.

    I found a similar issue, but it is closed due to inactivity https://github.com/CocoaPods/CocoaPods/issues/10704

    What did you do?

    I have different subspecs with different GCC_PREPROCESSOR_DEFINITIONS[config=Debug] configuration,but when i run pod install, warning occurs ,'Can't merge pod_target_xcconfig for pod targets["aaa", "bbb"] Singular build setting GCC_PREPROCESSOR_DEFINITIONS[config=Debug] has different values'.

    What did you expect to happen?

    Install all pod dependencies correctly. why GCC_PREPROCESSOR_DEFINITIONS is supported but GCC_PREPROCESSOR_DEFINITIONS[config=Debug] is not.

    What happened instead?

    GCC_PREPROCESSOR_DEFINITIONS[config=Debug] is not configured correctly
    CocoaPods : 1.11.3 Ruby : ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin21]

    RubyGems : 3.1.4
    
        Host : macOS 12.5.1 (21G83)
    
       Xcode : 14.1 (14B47b)
    
         Git : git version 2.37.1 (Apple Git-137.1)
    
    opened by ozonelmy 0
Releases(1.11.3)
Owner
A Swift & Objective C Dependency Manager
null
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
Cleanse is a dependency injection framework for Swift.

Cleanse - Swift Dependency Injection Cleanse is a dependency injection framework for Swift. It is designed from the ground-up with developer experienc

Square 1.7k Dec 16, 2022
Corridor A Coreader-like Dependency Injection μFramework

Corridor A Coreader-like Dependency Injection μFramework Table of Contents Why | Examples | Usage | Installation | Credits & License | Why In order to

symentis GmbH 60 Nov 1, 2022
Deli is an easy-to-use Dependency Injection Container that creates DI containers

Deli is an easy-to-use Dependency Injection Container that creates DI containers with all required registrations and corresponding factories.

Jungwon An 134 Aug 10, 2022
DIKit Dependency Injection Framework for Swift, inspired by KOIN.

DIKit Dependency Injection Framework for Swift, inspired by KOIN. Basically an implementation of service-locator pattern, living within the applicatio

null 95 Dec 22, 2022
Dip is a simple Dependency Injection Container.

Dip is a simple Dependency Injection Container. It's aimed to be as simple as possible yet p

Olivier Halligon 949 Jan 3, 2023
Tranquillity is a lightweight but powerful dependency injection library for swift.

DITranquillity Tranquillity is a lightweight but powerful dependency injection library for swift. The name "Tranquillity" laid the foundation in the b

Ivlev Alexander 393 Dec 24, 2022
Swinject is a lightweight dependency injection framework for Swift.

Swinject Swinject is a lightweight dependency injection framework for Swift. Dependency injection (DI) is a software design pattern that implements In

null 5.6k Dec 31, 2022
Dependency Injection framework for Swift (iOS/macOS/Linux)

Declarative, easy-to-use and safe Dependency Injection framework for Swift (iOS/macOS/Linux) Features Dependency declaration via property wrappers or

Scribd 684 Dec 12, 2022
Framework-level dependency graph generator for Xcode projects - with support for custom graphing

XCGrapher xcgrapher is, by default, a framework-level dependency graph generator for Xcode projects. It works by reading local clones of the source, s

Max Chuquimia 74 Dec 14, 2022
Swift Ultralight Dependency Injection / Service Locator framework

Swift Ultralight Dependency Injection / Service Locator framework

Michael Long 1.9k Jan 6, 2023
DIContainer Swift is an ultra-light dependency injection container made to help developers to handle dependencies easily. It works with Swift 5.1 or above.

?? DIContainer Swift It is an ultra-light dependency injection container made to help developers to handle dependencies easily. We know that handle wi

Victor Carvalho Tavernari 10 Nov 23, 2022
A simple way to handle dependency injection using property wrappers

Injektion Introduction A simple way to handle dependency injection using propert

Andrew McGee 2 May 31, 2022
Reliant - Nonintrusive Objective-C Dependency Injection

Reliant Reliant is a Dependency Injection (DI) framework for Objective-C, both for OS X and iOS. Its goal is to make its use as simple as possible, wh

AppFoundry 52 Oct 14, 2022
Kraken - Simple Dependency Injection container for Swift. Use protocols to resolve dependencies with easy-to-use syntax!

Kraken Photo courtesy of www.krakenstudios.blogspot.com Introduction Kraken is a simple Dependency Injection Container. It's aimed to be as simple as

Syed Sabir Salman-Al-Musawi 1 Oct 9, 2020
Pilgrim - Dependency injection for Swift (iOS, OSX, Linux). Strongly typed, pure Swift successor to Typhoon.

pilgrim.ph Pilgrim is a dependency injection library for Swift with the following features: Minimal runtime-only library that works with pure Swift (s

AppsQuick.ly 60 Oct 24, 2022
Perform - Easy dependency injection for storyboard segues

Perform Easy dependency injection for storyboard segues. import Perform // ... func tableView(_ tableView: UITableView, didSelectRowAt indexPath: NS

thoughtbot, inc. 280 Feb 6, 2022
Guise - An elegant, flexible, type-safe dependency resolution framework for Swift

Guise is an elegant, flexible, type-safe dependency resolution framework for Swift. Flexible dependency resolution, with optional caching Elegant, str

null 52 Oct 3, 2022
StoryboardBuilder - Simple dependency injection for generating views from storyboard.

StoryboardBuilder Simple dependency injection for generating views from storyboard. Description StoryboardBuilder is framework to help simply and easi

null 5 Jun 13, 2019