Swiftpack.co - Package - artemnovichkov/Carting

Do you use Carthage? Are you feel tired of adding special script and the paths to frameworks (point 4, 5 and 6 in Getting Started guide) manually? Me too. Carting does it for you. It scans Carthage folder and linked frameworks, gets framework names and updates the script.

Using

Run carting update in project folder. That's all.

By default Carting searches a script named Carthage, but you can set a name of your script via command line arguments:

$ carting update -s MyBestScript

If there is no script with the name, Carting will add a new one.

Since Xcode 10 Run Script Phases support declaring input and output files in a .xcfilelist file. This file should contain a newline-separated list of the file paths for the inputs or outputs. Carting uses it by default. If you need to work with your projects in old Xcode versions, use -f file option.

🚨Note: be sure to have no uncommitted changes in project file to prevent project parsing errors 😱.

Run carting --help to see available commands:

OVERVIEW: 🚘 Simple tool for updating Carthage script phase

USAGE: Carting <command> <options>

SUBCOMMANDS:
  info                    Prints Carthage frameworks list with linking description.
  lint                    Lint the project for missing paths.
  update                  Adds a new script with input/output file paths or updates the script named `Carthage`.

Linting

Integrate Carting into an Xcode scheme to get errors displayed in the IDE. Just add a new "Run Script Phase" with:

/usr/local/bin/carting lint

Installing

Homebrew (recommended):

$ brew tap artemnovichkov/projects
$ brew install carting

Mint:

$ mint run artemnovichkov/carting

Make:

$ git clone https://github.com/artemnovichkov/carting.git
$ cd Carting
$ make

Swift Package Manager:

let package = Package(
    dependencies: [
        .Package(url: "https://github.com/artemnovichkov/carting", majorVersion: 2)
    ]
)

Author

Artem Novichkov, novichkoff93@gmail.com

License

Carting is available under the MIT license. See the LICENSE file for more info.

Github

link
Stars: 181

Used By

Total: 0

Releases

Installation -

Fixed:

  • Installation via mint and homebrew. Related to #63.

It's not an error! -

Added:

  • Replace "nothing to update" error with prints. Related to #62.

All about errors -

Added:

  • Error message for no application targets

Arguments -

Added

  • Migrate from SPMUtility to ArgumentParser.

Multiple projects -

Added:

  • Support for multiple projects in one directory. Related to #55.

Fixed:

  • Creating xcfilelists for a new script. Related to #56.

Paths. Again. -

Fixed:

  • Paths to the project file

All about paths -

Fixed:

  • Default path to project file. Related to #54.

Xcodeproj for parsing -

Added:

  • Parsing project files with Xcodeproj
  • Reading enviroment variables

Your path -

Fixed:

  • Wrap filenames via double quote on chmod shell command. Thanks to @getogrand.

🧐 Linting -

Added:

  • Project linting. Closes #16
  • Disable manual editing of xcfilelists. Closes #36

🎯 Target -

Added:

  • A flag for target selection

Fixed

  • messaging for xcfilelists' updates. Closes #38

Brewing -

Have no paths -

Fixed:

  • Remove adding of extra input and output paths. Closes #33.

Do you test? -

Fixed:

  • Exclude unit tests target from update command (#30) via @alphatroya

Fix! Fix! Fix! -

Added:

  • Description of formats in help and README (#24) via @dstranz

Fixed:

  • Fix output paths format for file option (#23)
  • Fix parsing of custom scripts without filelist paths (#29). Thanks @olejnjak for the case!

Up to date -

Added:

  • xcfilelist file support. Closes #19.

🌱 Spearmint -

Added:

  • Mint installation support via @alphatroya

Space oddity -

Fixed:

  • Fix spaces in paths (#17) via @phimage

I know da way -

Added:

  • An option for project path

What's your name? -

Fixed:

  • Removing of scripts with default names. Fixed #14.

🗿 Static or dynamic?.. -

Added:

  • Printing framework information like:
Alamofire.framework		static	armv7, i386, x86_64, arm64
AudioKit.framework		dynamic	i386, x86_64, armv7, arm64

Fixed:

  • Prevent adding paths for static frameworks. Fixed #12.

Breaking Changes:

  • carting command now prints help message. To update projects run carting update.

⏳No more sandbox -

Adds:

  • Disable using the sandbox when executing subprocesses of Swift builds

SPM fixes -

Fixed:

  • Installation via Swift Package Manager

View build details and download artifacts on buddybuild: Carting (iOS, CartingCore - Debug)

Swift Package Manager update -

Added:

  • Update of Swift Package Manager Manifest

Fixed:

  • Warnings related to Swift 4 string API

View build details and download artifacts on buddybuild: Carting (iOS, CartingCore - Debug)

-

Added:

  • Correct messages for errors and script updating logic #6

🍺Homebrew support -

Added:

  • Installation via Homebrew

No more missing parts in Cocoapods scripts -

Added:

  • Mapping of showEnvVarsInLog property to prevent odd project changes

Fixed:

  • Mapping scripts with semicolon in body. Related to #5.

Fix updating of new project -

Fixed:

  • Updating of new project without scripts. Related to #4.

Make installation support -

Added:

  • Installation via Make

Add check of Carthage framework -

Added:

  • Check of linked Carthage frameworks count to prevent adding Carthage script without paths

Fixed:

  • Adding paths for frameworks built not by Carthage. Related to #1. Thanks to @virusman!