https://github.com/dmrschmidt/ios-toolchain
common tools for iOS development
https://github.com/dmrschmidt/ios-toolchain
developer-tools ios ios-toolchain tool tools toolset
Last synced: 10 months ago
JSON representation
common tools for iOS development
- Host: GitHub
- URL: https://github.com/dmrschmidt/ios-toolchain
- Owner: dmrschmidt
- License: mit
- Created: 2017-01-30T14:05:33.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2021-02-20T08:44:37.000Z (almost 5 years ago)
- Last Synced: 2025-03-01T18:48:26.982Z (11 months ago)
- Topics: developer-tools, ios, ios-toolchain, tool, tools, toolset
- Language: Ruby
- Size: 63.5 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# iOS Toolchain
[](https://travis-ci.org/dmrschmidt/ios-toolchain/)
A collection of `rake` tasks that help you keep a clean codebase and ease some of the daily pains when working in teams, like handling provisioning certificates.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'ios_toolchain'
```
Next, you need to make the included rake tasks available to your environment.
Add the following line to your `Rakefile`:
```ruby
require 'ios_toolchain/tasks'
```
Once this is done, verify that the tasks are now available by checking the output of `rake -T`.
Finally, most tasks require some configuration, e.g. to know where your Xcode project is located and what schemes and tasks exist. This configuration is read from a `.ios_toolchain.yml` file, which still needs to be created. Run
```shell
$ rake toolchain:bootstrap
```
You should now have an automatically configured `.ios_toolchain.yml`, which you can open in the editor of your choice if you need any further customization.
**Important Note:** For the above auto configuration, it is assumed that your `*.xcodeproj` file is in the root of your repository, which is also where the `.ios_toolchain.yml` *has* to be located. If your project structure differs, you can pass the path to your Xcode project file as an optional paramater to the above command.
## Usage
### Tasks
This is the full list of available tasks, as output by `rake -T`:
rake git:check_for_uncommitted_changes # Checks for uncommitted changes and aborts if any are found
rake git:push_origin # Pushes the current branch to origin
rake ios:build:acceptance # Builds the app with Acceptance configuration
rake ios:build:beta # Builds the app with Beta configuration
rake ios:build:default # Builds the app with Default configuration
rake ios:build:with[output_path,configuration] # Builds the app with specified Configuration to output path
rake ios:carthage:fetch # Fetches our Carthage dependencies to the locked in versions
rake ios:carthage:update # updates our Carthage dependencies to the latest version
rake ios:clean # Cleans the build & resets simulator
rake ios:clean:build # Cleans the build
rake ios:clean:simulator # Resets the simulator
rake ios:export:archive[xcarchive_path,ipa_path] # builds the app
rake ios:provisioning:copy # copies provisioning profiles from the repo to the appropriate system location
rake ios:specs # Run all the tests: unit and UI, 32bit and 64bit
rake ios:specs:slim # Run 64bit unit tests only
rake ios:specs:ui[skip_32bit] # Run the UI tests (optionally skip 32 bit devices)
rake ios:specs:unit[skip_32bit] # Run the unit tests (optionally skip 32 bit devices)
rake ios:tidy # Reports and attempts to tidy up common cleanliness problems with the codebase
rake ios:tidy:lint # Runs swiftlint
rake ios:tidy:project_file # Sorts the project file
rake ios:tidy:specs # Unfocusses any focussed Quick specs
rake ios:tidy:whitespace # Removes trailing whitespace from code files
rake shipit # Checks that we're ready to push, and then pushes the current branch to origin
rake toolchain:bootstrap[project_root] # Bootstraps iOS Toolchain configuration (project_root optional)
rake validate # Checks you if you need to do any cleanup of the code before you push
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/dmrschmidt/ios_toolchain. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`.