Rome makes it easy to build a list of frameworks for consumption outside of Xcode, e.g. for a Swift script.
$ gem install cocoapods-rome
Write a simple Podfile like this:
platform :osx, '10.10'
plugin 'cocoapods-rome'
target 'caesar' do
pod 'Alamofire'
end
then run this:
pod install
and you will end up with dynamic frameworks:
$ tree Rome/
Rome/
└── Alamofire.framework
For your production builds, when you want dSYMs created and stored:
platform :osx, '10.10'
plugin 'cocoapods-rome', {
dsym: true,
configuration: 'Release'
}
target 'caesar' do
pod 'Alamofire'
end
Resulting in:
$ tree dSYM/
dSYM/
├── iphoneos
│ └── Alamofire.framework.dSYM
│ └── Contents
│ ├── Info.plist
│ └── Resources
│ └── DWARF
│ └── Alamofire
└── iphonesimulator
└── Alamofire.framework.dSYM
└── Contents
├── Info.plist
└── Resources
└── DWARF
└── Alamofire
The plugin allows you to provides hooks that will be called during the installation process.
This hook allows you to make any last changes to the generated Xcode project before the compilation of frameworks begins.
It receives the Pod::Installer
as its only argument.
Customising the Swift version of all pods
platform :osx, '10.10'
plugin 'cocoapods-rome', :pre_compile => Proc.new { |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '4.0'
end
end
installer.pods_project.save
}
target 'caesar' do
pod 'Alamofire'
end