- Dependencies have been updated to their most recent versions to avoid
running into
SIGABORT
when trying to create projects with Xcode 9. - Oliver Halligon
- Bumped dependencies to their most recent versions to reduce warnings/collisions - Gordon Fontenot
- Bundler is now listed as a dependency manager like CocoaPods and Carthage. This means you can enable or disable it the same way you would other dependency managers. It's still enabled by default. - Edward Loveall
- Bumped dependency versions to reduce warnings/collisions - Sabatino Masala
- Now compatible with CocoaPods 1.0 - Mason Phillips
- Add Carthage support. You can now set the
dependency_managers
to one or more dependency management systems. Right now, this supportscocoapods
andcarthage
. This also adds a--dependency-managers
flag to the cli options. The--[no-]cocoapods
option will be removed in a future version of Liftoff, and so should not be used going forward. Theuse_cocoapods
liftoffrc
key has also been removed. You will now see a deprecation warning if you try to set this key. - Jake Craige - Define custom build configurations. You can now set a
build_configurations
key in yourliftoffrc
to define custom build configurations that can be used elsewhere in yourliftoffrc
. These configurations need to be copies of either therelease
ordebug
schemes. See theliftoffrc
man page for more info. - Marcelo Fabri (Thanks to Mark Adams) - Define custom schemes in your
liftoffrc.
By default, this isn't set, but if you setschemes
in yourliftoffrc
, Liftoff will generate a scheme with the specified actions. See theliftoffrc
man page for more info. - Marcelo Fabri
bundle_version
now usesgit rev-list --count
instead ofgit rev-list | wc -l | tr -d ' '
- Giovanni Lodi- The default
TODO
andFIXME
script now ignores Carthage source files in addition to CocoaPods source files. - Josh Steiner - Improve test target detection. We were previously just matching against the word "Tests" instead of checking against the user-defined test target name. - Gordon Fontenot (Thanks to Oliver Halligon)
- Unset
INSTALL_PATH
for projects. We previously had this set to nothing, which caused problems where archiving an app would try to create a generic archive instead of an iOS app archive - Marcelo Fabri (Thanks to Jake Craige) - Storyboards and XIBs are now properly treated as resources. Previously, they were added to Compile Sources, which could lead to crashes in some versions of Xcode. - Marcelo Fabri
- Let users add arbitrary configuration to test targets. You can now add a
extra_test_config
key to yourliftoffrc
and have Liftoff perform custom configuration for the test target. - Gordon Fontenot (Thanks to Olivier Halligon) - Allow custom ordering of script phases. This adds an optional index to script phases that Liftoff will use to determine where it should insert the phase. This index defaults to -1. Note that this changes the format of the run script build phases key and so is a breaking change from 1.4. - Juan Pablo Civile (Thanks to Lode Vanhove)
- Add the ability to provide a custom path from the command line. Liftoff will now use this path as the root project folder if provided, defaulting to the project name if it isn't provided. - Juan Pablo Civile (Thanks to Tony DiPasquale)
- Add new run script build phase to automatically update version and bundle number using Git - Reda Lemeden
- Users can now customize the deployment target in their
liftoffrc
- Lode Vanhove - Liftoff will now automatically generate a settings bundle by default. If you
are using CocoaPods, it will also automatically add the acknowledgements
from your included pods. This can be disabled in your liftoffrc with the
enable_settings
key, or on the command line with the--[no]-settings
flag - Lode Vanhove - Customize the test target name with the new
test_target_name
key in yourliftoffrc
. This can also be set on the command line with the--test-target-name
flag - Matt Oakes (Thanks to Dal Rupnik)
- The format of the
run_script_phases
key has changed. If you have overridden this key, you'll need to update to the new format. - Juan Pablo Civile - The default
AppDelegate
template for Swift now has a standard header comment. This keeps Liftoff's behavior in line with Xcode's. - Gordon Fontenot - The default TODO and FIXME script will now find these comments in Swift files - Kevin Xu
- The
Resources
folder for the defaultobjc
template is now properly nested in the main target directory - Gordon Fontenot - You can now use Liftoff's templating features with Podfiles - Lode Vanhove
- The default Podfile has been updated for CocoaPods 0.34.x - Keith Smiley
- The default
gitattributes
file has been updated so that*.strings
files are now treated as text instead of as binary data - Lode Vanhove
- Force UTF-8 encoding when normalizing company name. This fixes a possible crash when using other locales. - Gordon Fontenot (Thanks to Dal Rupnik)
- Liftoff no longer prints the path to CocoaPods when checking to see if it's installed - Lode Vanhove
- Now using an updated version of Xcodeproj to fix some segfaults reported by CocoaPods users.
- Add the ability to define multiple project templates. This feature allows
you to created named project templates inside your liftoffrc and then use
them by defining them as the default inside your liftoffrc, or by passing
their name on the command line. Be sure to check out
liftoff(1)
andliftoffrc(5)
for more info. By default, Liftoff comes with templates for Objective-C (objc
) and Swift (swift
) projects. - Gordon Fontenot - Add arbitrary configuration settings to liftoffrc. This lets you define an arbitrary dictionary structure inside your liftoffrc to create default configuration settings for projects. - Gordon Fontenot (Thanks to Marshall Huss, Juan Pablo Civile, and Keith Smiley)
- Add default storyboard file. Liftoff will now generate an empty storyboard file for use in the project. - Gordon Fontenot
- Add support for the new Launch Screen xib files. Liftoff will now generate
an empty
LaunchScreen.xib
file and use it as the default launch screen option. - Gordon Fontenot (lol recruiters) - Let users customize Xcode open command. This lets you override the default command used to launch Xcode inside your liftoffrc. This means you can default to opening Vim, AppCode, beta versions of Xcode, or even disable the feature completely. - Gordon Fontenot (Thanks to @asmod3us)
- Update objc default project template - Gordon Fontenot
- Simplify the status output. Liftoff no longer prints every file/directory it touches. Instead, it confirms that it's using the designated template. - Gordon Fontenot
- Rename Info.plist template. This is to keep Liftoff's defaults in line with
Xcode's. This template is now simply named
Info.plist
- Gordon Fontenot - Bump deployment target to 8.0. Welcome to the future. - Gordon Fontenot
- OS 10.10 support. - Gordon Fontenot
- Install arbitrary template files in the project directory. You can use the
new
templates
key in.liftoffrc
to define arbitrary templates that should be installed in the project directory. Liftoff will install these templates relative to the project's root. - Gordon Fontenot (Thanks to James Frost) - Add Travis configuration by default. Liftoff will now generate the template files required for Travis to work out of the box. This can be disabled by overriding the templates we install by default - Gordon Fontenot
- Add
setup
,test
, andREADME
templates to the project. - Gordon Fontenot
- Generated scheme is now shared. Previously, Xcode was creating a private scheme after the project was opened for the first time. We are now creating this scheme ourselves, and making it shared. - Gordon Fontenot (Thanks to Mark Adams)
- Add OHHTTPStubs as a default testing dependency - Gordon Fontenot
- Add documentation hint to default Podfile. This is intended to solve some confusion about where to add new pods after initial installation - Gordon Fontenot (Thanks to Mark Flowers)
- Don't skip installation for app targets. Previously, we were setting
SKIP_INSTALLATION
toYES
, which caused the Archive action to fail silently. This change brings us back in line with Xcode's default behavior.
- Add command line flags. You can now pass a set of flags to the
liftoff
executable to override specific configurations at run time - JP Simard - Add
strict_prompts
option. This configuration option and the corresponding--[no-]strict-prompts
command line flag tellliftoff
to only prompt you for options that don't have default values set. This allows you to set values at run time and skip the prompt altogether. - JP Simard - Add configuration for setting up Run Script phases. This replaces the
install_todo_script
configuration key with a much more flexiblerun_script_phases
key. By overriding this key, you can install any arbitrary script phases as long as you're providing a template for them. - Reluctantly allow the use of tabs for indentation. Even though my conscience
protested, we've added a
use_tabs
key to the configuration. Enabling this will configure the project to use tabs instead of spaces. Note that this doesn't change the spacing in the default templates, so if you override this you will probably want to override those as well. - Gordon Fontenot (Thanks to Magnus Ottosson)
- Enable some more warnings by default. - Gordon Fontenot
- Handle key deprecations a bit more gracefully. - Gordon Fontenot
- Stop treating all plists as though they are the Info.plist. Previously, any plist that was added as a template was being treated as though it was the Info.plist for that target. We're now being more explicit about matching that file, and linking all other plists properly. - Gordon Fontenot (Thanks to @mattyohe)
- Set the deployment target at the project level. This mimics the behavior when creating a new project with Xcode. - Gordon Fontenot
- Remove
OTHER_LDFLAGS
setting from app target. This was being set to a blank string, which caused it to override any xcconfig files added to the target. - Gordon Fontenot (Thanks to @frosty) - Prevent RubyGems from loading. In some installs, users were seeing crashes due to the wrong Xcodeproj native C extensions being loaded. Current theory is that RVM is doing some loadpath stuff for gems that is overriding our loadpaths. The simple fix that seems to solve the issue is to completely disable RubyGems while running Liftoff. - Gordon Fontenot (Thanks to @iOSDevil, Jim Rutherford, and @endoze)
- Allow users to override templates. Now users can create templates inside
.liftoff/templates
at the local or user level in order to add custom templates, or override the default templates. - Gordon Fontenot - Add support for CocoaPods. By default, Liftoff will generate a default
podfile, and run
pod install
inside the project directory. This can be disabled inside the.liftoffrc
. - JP Simard - Add default pods for test target. By default, Liftoff will install
Specta
,Expecta
, andOCMock
for the test target. This can be overridden by using a custom template for thePodfile
- Gordon Fontenot - Add
company_identifier
property to configuration. We will now prompt for the company identifier on new project creation. The default for this prompt is generated by normalizing the provided company name, unless there is a default set by the.liftoffrc
- Gordon Fontenot (Thanks to Tony DiPasquale) - Open new projects after creation - Mark Adams
- Application target defaults to portrait orientation only. - Mark Adams
- Automatically default to the current user's name. We no longer prompt for
the user's name, instead defaulting to the name provided by the system. This
can still be overridden by a
.liftoffrc
- Gordon Fontenot (Thanks to Mike Burns) - Remove explicit framework linking. Since modules are enabled, we don't need to manually link frameworks anymore. - Gordon Fontenot
- Prefer new @import over #import - Mark Adams
- Install ruby files into rubylib instead of lib. Previously, Homebrew was
linking these into /usr/local/lib, which caused warnings when running
brew audit
- Gordon Fontenot (Thanks to Ashton Williams) - Use
https
for GitHub URL in homebrew formula. This was causing warnings when runningbrew audit
- Gordon Fontenot (Thanks to Ashton Williams) - Print a nicer error if the directory exists. Previously, this was throwing an ugly ruby stack trace. - Gordon Fontenot (Thanks to Mark Adams)
- Trap interrupt during option input. Previously, this was throwing an ugly ruby stack trace. - Gordon Fontenot (Thanks to George Brocklehurst)
- Set SDKROOT at the project level - Gordon Fontenot (Thanks to Tony DiPasquale)
Initial 1.0 release. See blog post for details.