65

I'm looking into cartfile. Can't wait to "simply create a cartfile" like all the instructions say to do.

Only... how do you "simply" create a Cartfile?

I've created a plain text document, named it cartfile and copied some dependencies in it.

Ran carthage update inside my root project directory

Get this error: "No such file in directory"

Downloaded an example carthage project and the Cartfile is actually an executable.. So how do I "simply create" a Cartfile, cause there aren't any instructions on how to

YichenBman
  • 5,011
  • 8
  • 46
  • 65

5 Answers5

70

From the command line, navigate to your project directory.

touch Cartfile

Now the Cartfile is created, make it executable with:

chmod +x [YourDirectory/Cartfile]

You can open it with any text editor. Then insert whatever library and source you want (Example: github "SwiftyJSON/SwiftyJSON" >= 2.1.2)

BenJammin
  • 1,479
  • 13
  • 18
55

Carthage Tutorial: Getting Started is a must read. It explains things much better than the Carthage documentation does.

Steps

  1. In a Terminal, cd to the root directory of the project that you want to add the framework to. This should be the same directory as your *.xcodeproj file.

    cd ~/Path/To/Your/Project/
    
  2. Create an empty file called Cartfile like this:

    touch Cartfile
    
  3. Open that file with Xcode:

    open -a Xcode Cartfile
    
  4. Paste the framework info that you need into the Cartfile. For example:

    github "stephencelis/SQLite.swift" ~> 0.10.1
    
  5. Close the file in Xcode and in Terminal run the following command to make Carthage update the dependencies in your project. (You should still be in the same directory as your Cartfile.)

    carthage update --platform iOS
    

Notes

  • Using the method above, there is no need to change the execution permissions of the Cartfile.
  • You will still need to add the framework link to your project before you can use it. See the tutorial I linked to at the top for more information.
palaniraja
  • 10,432
  • 5
  • 43
  • 76
Suragch
  • 484,302
  • 314
  • 1,365
  • 1,393
1

Install by running below command if carthage is not installed.

brew install carthage

chanduthedev
  • 356
  • 2
  • 9
1

if you are using for the first time carthage

download the package first

Download the latest Carthage pkg and of course run it to install it.

and follow above steps

2 In a Terminal, cd to the root directory of the project that you want to add the framework to. This should be the same directory as your *.xcodeproj file.

cd ~/Path/To/Your/Project/

  1. Create an empty file called Cartfile like this:

touch Cartfile

4.Open that file with Xcode:

open -a Xcode Cartfile

5.Paste the framework info that you need into the Cartfile. For example:

github "stephencelis/SQLite.swift" ~> 0.10.1

6.Close the file in Xcode and in Terminal run the following command to make Carthage update the dependencies in your project. (You should still be in the same directory as your Cartfile.)

carthage update --platform iOS

Kapil Bansal
  • 326
  • 2
  • 10
0

Cartfile is a usual text file without any extensions. You can create it using any possibilities like command line or any applications. This file is case sensitive.

If you create cartfile(from lower case) or Cartfile.txt(with extension) and run carthage update you get something like this:

2021-04-23 17:00:27.692 carthage[94911:3694738] INFO: fetch-response is unable to open the file /Users/alex/Library/Caches/carthage/fsCachedData/F1841822-AACC-4E8A-ACB0-D801D3C72063. Errno: 2
Failed to read file or folder at <some_path>/Cartfile: Error Domain=NSCocoaErrorDomain Code=260 "The file “Cartfile” couldn’t be opened because there is no such file." UserInfo={NSFilePath=<some_path>/Cartfile, NSUnderlyingError=0x7ff8f7727240 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

To check extension

Right click on Cartfile -> Get Info -> [Name & Extension:]
//you are able to remove the extension here
yoAlex5
  • 29,217
  • 8
  • 193
  • 205