A command line interface to make a project for iOS Single View App.
brew install manicmaniac/tap/xcnew
Firstly you need to setup local repository.
git clone https://github.com/manicmaniac/ports.git
Then add the repository to MacPorts sources.
sudo ruby -pi -e 'puts "file://#{Dir.pwd}/ports" if /^rsync:/' /opt/local/etc/macports/sources.conf
Now you can install xcnew from ports.
sudo port install xcnew
Make sure you set a developer directory to Xcode.
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Then download the latest package.
curl -LO https://github.com/manicmaniac/releases/latest/download/xcnew.pkg
And install it to /usr/local/bin/xcnew.
sudo installer -pkg xcnew.pkg -target /
git clone https://github.com/manicmaniac/xcnew.git
sudo make -C xcnew install
You can change the install location by setting $PREFIX environment variable.
sudo make -C xcnew install PREFIX="/opt/local"
xcnew - A command line interface to make a project for iOS Single View App.
Usage: xcnew [-h|v] [-i <ORG_ID>] [-tcCosS] <PRODUCT_NAME> [OUTPUT_DIR]
Options:
-h, --help Show help and exit
-v, --version Show version and exit
-i <ORG_ID>, --organization-identifier <ORG_ID>
Specify organization's identifier
-t, --has-tests Enable unit and UI tests
-c, --use-core-data Enable Core Data template
-C, --use-cloud-kit Enable Core Data with CloudKit template (overrides -c option)
-o, --objc Use Objective-C instead of Swift (overridden by -s and -S options)
-s, --swift-ui Use Swift UI instead of Storyboard
-S, --swift-ui-lifecycle Use Swift UI lifecycle (overrides -s option)
Arguments:
<PRODUCT_NAME> Required TARGET_NAME of project.pbxproj
[OUTPUT_DIR] Optional directory name of the project
Xcode >= 12.5 && Xcode <= 14.3.1.
Just by reverse engineering and utilizing Xcode private frameworks, IDEFoundation and Xcode3Core.
Simply too difficult to implement this kind of magic in Swift.
This program is distributed under the MIT license. See LICENSE for the detail.