-
-
Notifications
You must be signed in to change notification settings - Fork 57
Romefile prior 0.17.x.x
The Romefile has three purposes:
- Specifies what caches to use -
[Cache]
section. This section is required. - Allows to use custom name mappings between repository names and framework names -
[RepositoryMap]
section. This section is optional and can be omitted. - Allows to ignore certain framework names -
[IgnoreMap]
section. This section is optional and can be omitted.
A Romefile looks like this:
[Cache]
S3-Bucket = ios-dev-bucket
local = ~/Library/Caches/Rome/
[RepositoryMap]
HockeySDK-iOS = HockeySDK
awesome-framework-for-cat-names = CatFramework
better-dog-names = DogFramework
[IgnoreMap]
xcconfigs = xcconfigs
The Romefile is in the INI format
This section must contain at least one between:
- the name of the S3 Bucket to upload/download to/from. The key
S3-Bucket
is optional since Rome0.11.0.x
. - the path to local directory to use as an additional cache. The key
local
is optional.
This contains the mappings of git repository names with framework names. This is particularly useful in case you are not using github and the "Organization/FrameworkName" convention.
Example:
Suppose you have the following in your Cartfile
github "Alamofire/Alamofire" ~> 4.3.0
github "bitstadium/HockeySDK-iOS" "3.8.6"
git "http://stash.myAnimalStartup.com/scm/iossdk/awesome-framework-for-cat-names.git" ~> 3.3.1
git "http://stash.myAnimalStartup.com/scm/iossdk/better-dog-names.git" ~> 0.4.4
which translates to the following Cartfile.resolved
github "Alamofire/Alamofire" "4.3.0"
github "bitstadium/HockeySDK-iOS" "3.8.6"
git "http://stash.myAnimalStartup.com/scm/iossdk/awesome-framework-for-cat-names.git" "3.3.1"
git "http://stash.myAnimalStartup.com/scm/iossdk/better-dog-names.git" "0.4.4"
but your framework names are actually HockeySDK
, CatFramework
and DogFramework
as opposed to HockeySDK-iOS
, awesome-framework-for-cat-names
and better-dog-names
.
simply add a [RepositoryMap]
section to your Romefile
and specify the following mapping:
[Cache]
S3-Bucket = ios-dev-bucket
[RepositoryMap]
HockeySDK-iOS = HockeySDK
awesome-framework-for-cat-names = CatFramework
better-dog-names = DogFramework
This contains the mappings of git repository names and framework names should be ignored.
This is particularly useful in case not all your Cartfile.resolved
entries produce a framework.
Some repositories use Carthage as a simple mechanism to include other git repositories that do not produce frameworks. Even Carthage itself does this, to include xcconfigs.
Example:
Suppose you have the following in your Cartfile
github "Quick/Nimble"
github "jspahrsummers/xcconfigs"
xcconfigs
can be ignored by Rome by adding an IgnoreMap
section in the Romefile
[IgnoreMap]
xcconfigs = xcconfigs
Since version 0.6.0.10
Rome supports multiple aliases for one map entry.
Suppose you have a framework Framework
that builds two targets, t1
and t2
,
Rome can handle both targets by specifying
[RepositoryMap]
Framework = t1, t2
If ANY of the aliases is missing on S3, the entire entry will be reported as missing
when running rome list [--missing]
Multiple aliases are supported in [IgnoreMap]
too
Since version 0.30.1 Carthage has support for Static Frameworks. To indicate that one of the aliases is a Static Framework, modify the RepositoryMap like so:
[RepositoryMap]
Framework = static/t1, t2
If left unspecified, an alias is a Dynamic Framework by default.