Skip to content

Seem's the owner of Carthage not accept the pr, I've decided to run my own branch. Keep syncing with main repository.

Notifications You must be signed in to change notification settings

CodeEagle/Carthage

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Official Carthage README

Installtion

Checkout this branch and then applay to carthage master branch, then make install.

#First the stats:
git apply --stat pathces/0.30.1.patch

#Then a dry run to detect errors:
git apply --check pathces/0.30.1.patch

#Finally, you can use git am to apply your patch: it allows you to sign off an applied patch.
#This can be useful for later reference.
git am --signoff < 0.30.1.patch

Features

  • config build options in Carthage.private
  • speed up you app's launching by using generate-fast-boot-xcconfig
  • can override repo to local project
  • show cost time

Motivation

  • Quit typing config for Carthage every time you build your dependencies
  • Manual manager dependencies repositories by using override feature

Example

Cartfile

github "Tencent/WCDB"

Checkout WCDB and it's submodules

git clone https://github.com/Tencent/wcdb.git

cd wcdb

git submodule update --init --recursive

The Cartfile.private looks like, overriding submodule url.

⚠️ Can not override submodule outside main repo, because copy repo need info in folder .git/modules/{name}.

#cache-builds: true

#configuration: Release

#new-resolver: true

#platforms: iOS

#override: wcdb, /path/to/wcdb

#override: openssl, /path/to/wcdb/openssl

#override: sqlcipher, /path/to/wcdb/sqlcipher

You also can skip building certain scheme in repo

#skip: wcdb, WCDB.xcworkspace, WCDB
#skip: wcdb, WCDB.xcworkspace, sqlcipher.swift
#skip: wcdb, WCDB.xcworkspace, sqliterk.swift

Usage

Configuration Template(write in Cartfile.private)

#cache-builds: true #default false
#verbose: false #default false
#configuration: Release #Debug or other
#new-resolver: true #default false
#use-ssh: false #default false
#use-submodules: false #default false
#platforms: iOS #macOS, watchOS, tvOS ,remove for all platform
#skip: Alamofire, Alamofire.xcworkspace, Alamofire iOS
#override: Alamofire, ../Alamofire
#generate-fast-boot-xcconfig: false #default false, for iOS
#exclude-path: #string, exclude xcconfig arch o file path contain this string

skip

Can just config Name parameter , all build of the Dependency will being skipped.

  • Name: first parameter, Dependency's property name, when using local path for repo address, last component will treat as name, such as /path/to/{name}, https://github.com/xx/{name}.git
  • ProjectName: second parameter, using with third parameter, the name of project
  • SchemeName: third parameter, the scheme name

override

can override dependency or git submodule

  • Name: see above
  • Address: new git address for the Dependency, can be local or remote

generate-fast-boot-xcconfig

Integrated Carthage/FastBoot/Carthage.xcconfig to your project

For detail see RocketBoot

exclude-path

Exclude some path that you can manually integrate framework, not merging their compiled files.

Such as Realm

#exclude-path: Realm.build/Objects-normal

Directly include compiled files for Objective-C target Realm will crash at launch.(finding out why)

You must integrate the Realm.framework to your project.

But you can left compiled files generated by scheme RealmSwift

About

Seem's the owner of Carthage not accept the pr, I've decided to run my own branch. Keep syncing with main repository.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 93.3%
  • C 3.0%
  • Shell 2.8%
  • Other 0.9%