Carthage | A simple , decentralized dependency manager for Cocoa | DevOps library

 by   Carthage Swift Version: 0.39.0 License: Non-SPDX

kandi X-RAY | Carthage Summary

kandi X-RAY | Carthage Summary

Carthage is a Swift library typically used in Devops, Xcode applications. Carthage has no bugs, it has no vulnerabilities and it has medium support. However Carthage has a Non-SPDX License. You can download it from GitHub.

Carthage is intended to be the simplest way to add frameworks to your Cocoa application. Carthage builds your dependencies and provides you with binary frameworks, but you retain full control over your project structure and setup. Carthage does not automatically modify your project files or your build settings.

            kandi-support Support

              Carthage has a medium active ecosystem.
              It has 14812 star(s) with 1621 fork(s). There are 384 watchers for this library.
              There were 1 major release(s) in the last 12 months.
              There are 176 open issues and 1920 have been closed. On average issues are closed in 200 days. There are 18 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of Carthage is 0.39.0

            kandi-Quality Quality

              Carthage has 0 bugs and 0 code smells.

            kandi-Security Security

              Carthage has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              Carthage code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              Carthage has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              Carthage releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Carthage
            Get all kandi verified functions for this library.

            Carthage Key Features

            No Key Features are available at this moment for Carthage.

            Carthage Examples and Code Snippets

            No Code Snippets are available at this moment for Carthage.

            Community Discussions


            Test Target not compiling on XCode 13
            Asked 2022-Mar-25 at 10:55

            We are trying to migrate our code from XCode 12 to 13. Our code and all dependencies were compiling on XCode 12.

            However, since we moved to XCode 13 our unit test target is not compiling. We are using the following:



            Answered 2021-Nov-23 at 00:26

            Have you set your xcode-select to Xcode 13?



            Bundle asset retrieval broken when app is loaded from Testflight
            Asked 2022-Feb-04 at 12:03

            I'm encountering an issue regarding my iOS SDK and how it retrieves and display images (from the bundle assets) when the app is downloaded from Testflight.

            The SDK can be integrated via SPM, Cocoapods and Carthage. This issue is all about the Cocoapods integration.

            Locally, even as a release build and when run on a device, everything runs fine and the images are being displayed:

            When build locally with "Release" build configuration, the icon shows. And when the exact same app is archived and then downloaded via Testflight, all icons are gone.

            This is how I retrieve the image from the bundle:



            Answered 2022-Feb-04 at 12:02

            I found out that this question has the exact same problem:

            Pod install has required target membership unchecked

            The problem is, that the bundle has the same name as the module. Changing the bundle name to something else fixes the issue, see my answer there:



            Xcode 13.2 command PhaseScriptExecution failed with a nonzero exit code
            Asked 2022-Jan-26 at 17:21

            While building my project, I get this error:



            Answered 2022-Jan-26 at 08:15

            The project is using Carthage, which is likely installed using Homebrew. On M1 Macs, Homebrew links its binaries into /opt/homebrew/bin while on Intel Macs, they are linked into /usr/local/bin.

            This means that on an M1 Mac, Carthage is probably found at /opt/homebrew/bin/cartage.

            Your build script should use something like $(which carthage) or simply carthage instead of relying on an absolute installation path.



            How to add a Swift package manager as a dynamic library in xcode 13?
            Asked 2022-Jan-23 at 16:35

            I am currently working in switching dependency manager of a project from Carthage to Swift Package Manager,

            We have for example realm dependency that used to be a dynamic framework when building with Carthage,

            But in SPM when I try to add realm it by default gives a realm static framework and I could not find a way to switch to dynamic,

            Since we have some submodules in our project dependent on each other trying to link the static library gives duplicate symbols errors.

            I would be much easier if I could download realm directly as dynamic framework as I can get with Carthage,

            No options to choose

            Does anyone knows how to do that?

            Thanks in advance for any help :)



            Answered 2022-Jan-22 at 10:57

            Packages can produce dynamic libraries but they have to explicitly tell Xcode that they want the library to be made into a dynamic library. Realm does not do this. Instead, the folks at Realm go with the default behavior which lets Xcode decide which whether it will construct a static or dynamic library. As far as I know, Xcode always chooses to build a static library.

            To get around this you can create your own package that includes the Realm package as a dependency and explicitly make your library dynamic. You can find plenty of tutorials that show you how to make a package so I won't get into that here.

            If you create a package and load the following content into your Package.swift file, then import the package into your project, you will have solved your problem. I named my package "RealmUmbrella" but you can call yours whatever you like.



            js promise wait until resolved to continue "main"
            Asked 2021-Nov-23 at 05:13

            How can I force a function to resolve a pending promise before using it in JavaScript



            Answered 2021-Nov-23 at 05:13


            Authentication fails with error "unsupported URL" in MongoDB Realm iOS SDK
            Asked 2021-Sep-28 at 21:49

            I am trying to authenticate into my MongoDB Realm app anonymously through the Realm iOS SDK, but I am getting the following error:



            Answered 2021-Sep-28 at 21:49

            I figured out the problem. When creating the realm app like below:



            `carthage bootstrap` command results in `API rate limit exceeded` error in Github Actions workflow
            Asked 2021-Sep-27 at 22:39

            I just moved my Xcode project to use Carthage instead of CocoaPods as my dependency manager, so I am trying to update my GitHub Actions CI workflow to download the dependency binaries.

            However, after running carthage bootstrap --platform iOS --use-xcframeworks in my workflow, it eventually gives the output and error:



            Answered 2021-Sep-27 at 22:39

            I figured it out! It turns out you need to specify the GITHUB_TOKEN as an environment variable when running the carthage bootstrap command. Here's the updated step in my workflow:



            iOS SwiftLint Identifier Name doesn't work
            Asked 2021-Aug-28 at 01:50


            Hello. I recently encountered swiftlint and learned this. But there's a problem. I modified the Identifier Name of swiftlint to maintain the CalmelCase grammar, but it didn't work.

            this is my .swiftlint.yml text.



            Answered 2021-Aug-28 at 01:50

            You have changed the rules for identifiers but the rule that is triggering is for type names.

            Type names should start with an uppercase letter.

            Change your class name to TimeVC



            Resolving third party cocoapod dependencies in Kotlin MPP
            Asked 2021-Aug-10 at 11:23

            I am trying to setup a tracking library written in Kotlin Multiplatform to support all our mobile clients.

            Tests for Android went well (integrating snowplow via gradle).

            I also managed to integrate Snowplow via cocoapods into the MPP.



            Answered 2021-Aug-06 at 11:38


            GitHub Actions: productsign hangs
            Asked 2021-Jul-29 at 14:41

            I am having an issue with GitHub Actions. When I call productsign the job just hangs. When searching the internet it seems that the job tries to ask the user for a password but I do not get any errors or feedback from the logs. The job just hangs for ever. When run on my own computer everything works as expected and the .pkg is signed.

            My step in the workflow is as follows



            Answered 2021-Jul-29 at 14:41

            Ok, we finally figured it out. The solution is to create tmp keychain, set its as default and configure some attributes. This makes sure codesign and productsign can access it without being prompted for a password.

            Setup Tmp Keychain


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install Carthage

            Get Carthage by running brew install carthage or choose another installation method. Create a Cartfile in the same directory where your .xcodeproj or .xcworkspace is.
            Get Carthage by running brew install carthage or choose another installation method
            Create a Cartfile in the same directory where your .xcodeproj or .xcworkspace is
            List the desired dependencies in the Cartfile, for example: github "Alamofire/Alamofire" ~> 4.7.2
            Run carthage update --use-xcframeworks
            A Cartfile.resolved file and a Carthage directory will appear in the same directory where your .xcodeproj or .xcworkspace is
            Drag the built .xcframework bundles from Carthage/Build into the "Frameworks and Libraries" section of your application’s Xcode project.
            If you are using Carthage for an application, select "Embed & Sign", otherwise "Do Not Embed".
            We encourage using XCFrameworks as of version 0.37.0 (January 2021), and require XCFrameworks when building on an Apple Silicon Mac. Switching from discrete framework bundles to XCFrameworks requires a few changes to your project:. Xcode 12+ incompatibility: Multi-architecture platforms are not supported when building framework bundles in Xcode 12 and above. Prefer building with XCFrameworks. If you need to build discrete framework bundles, use a workaround xcconfig file. Along the way, Carthage will have created some build artifacts. The most important of these is the Cartfile.resolved file, which lists the versions that were actually built for each framework. Make sure to commit your Cartfile.resolved, because anyone else using the project will need that file to build the same framework versions. You can add a Run Script phase to automatically warn you when one of your dependencies is out of date. Carthage will check to make sure that downloaded Swift (and mixed Objective-C/Swift) frameworks were built with the same version of Swift that is in use locally. If there is a version mismatch, Carthage will proceed to build the framework from source. If the framework cannot be built from source, Carthage will fail.
            Create a Cartfile that lists the frameworks you’d like to use in your project.
            Run carthage update --use-xcframeworks. This will fetch dependencies into a Carthage/Checkouts folder and build each one or download a pre-compiled XCFramework.
            On your application targets’ General settings tab, in the Frameworks, Libraries, and Embedded Content section, drag and drop each XCFramework you want to use from the Carthage/Build folder on disk.
            On your application targets’ Build Phases settings tab, click the + icon and choose New Run Script Phase. Create a Run Script in which you specify your shell (ex: /bin/sh), add the following contents to the script area below the shell:
            If you encounter build failures in carthage build --no-skip-current, try running xcodebuild -scheme SCHEME -workspace WORKSPACE build or xcodebuild -scheme SCHEME -project PROJECT build (with the actual values) and see if the same failure occurs there. This should hopefully yield enough information to resolve the problem. If you have multiple versions of the Apple developer tools installed (an Xcode beta, for example), use xcode-select to change which version Carthage uses.
            If you embed many dynamic frameworks into your app, its pre-main launch times may be quite slow. Carthage is able to help mitigate this by building your dynamic frameworks as static frameworks instead. Static frameworks can be linked directly into your application or merged together into a larger dynamic framework with a few simple modifications to your workflow, which can result in dramatic reductions in pre-main launch times. Since version 0.30.0 Carthage project rolls out support for statically linked frameworks written in Swift or Objective-C, support for which has been introduced in Xcode 9.4. Please note however that it specifically says frameworks, hence Darwin bundles with .framework extension and statically linked object archives inside. Carthage does not currently support static library schemes, nor are there any plans to introduce their support in the future.
            You still need to tick your Carthage-compliant project's schemes as shared in Product > Scheme > Manage Schemes..., just as with dynamic binaries
            You still need to link against static .frameworks in your project's Build Phases just as with dynamic binaries
            In your Carthage-compliant project's Cocoa Framework target's Build Settings, Linking section, set Mach-O Type to Static Library
            Your statically linked frameworks will be built at ./Carthage/Build/$(PLATFORM_NAME)/Static
            You should not add any of static frameworks as input/output files in carthage copy-frameworks Build Phase
            Swift static frameworks are not officially supported by Apple
            This is an advanced workflow that is not built into Carthage, YMMV


            Carthage only officially supports dynamic frameworks. Dynamic frameworks can be used on any version of OS X, but only on iOS 8 or later. Additionally, since version 0.30.0 Carthage supports static frameworks. Because Carthage has no centralized package list, and no project specification format, most frameworks should build automatically.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular DevOps Libraries


            by ansible


            by bregman-arie


            by dotnet


            by semantic-release


            by Carthage

            Try Top Libraries by Carthage


            by CarthageSwift


            by CarthageSwift


            by CarthageShell


            by CarthageSwift


            by CarthageCSS