Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nomad-cli/cupertino
CLI for the Apple Dev Center
https://github.com/nomad-cli/cupertino
Last synced: 3 months ago
JSON representation
CLI for the Apple Dev Center
- Host: GitHub
- URL: https://github.com/nomad-cli/cupertino
- Owner: nomad-cli
- License: mit
- Archived: true
- Created: 2012-07-05T19:23:31.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2021-06-20T10:18:12.000Z (over 3 years ago)
- Last Synced: 2024-09-21T16:49:31.009Z (3 months ago)
- Language: Ruby
- Homepage:
- Size: 202 KB
- Stars: 2,636
- Watchers: 72
- Forks: 191
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Cupertino](https://raw.github.com/nomad/nomad.github.io/assets/cupertino-banner.png)
**Note:** Cupertino stopped working due to a recent change on the Apple Developer Portal. A maintained alternative is to use [spaceship](https://spaceship.airforce) to communicate with Apple's Developer back-end, or use any of the [fastlane tools](https://fastlane.tools), like [match](https://github.com/fastlane/fastlane/tree/master/match) or [sigh](https://github.com/fastlane/fastlane/tree/master/sigh).
------
Automate administrative tasks that you would normally have to do through the Apple Dev Center websites. Life's too short to manage device identifiers by hand!
> Cupertino is named after [Cupertino, CA](http://en.wikipedia.org/wiki/Cupertino,_California): home to Apple, Inc.'s world headquarters.
> It's part of a series of world-class command-line utilities for iOS development, which includes [Shenzhen](https://github.com/mattt/shenzhen) (Building & Distribution), [Houston](https://github.com/mattt/houston) (Push Notifications), [Venice](https://github.com/mattt/venice) (In-App Purchase Receipt Verification), [Dubai](https://github.com/mattt/dubai) (Passbook pass generation), and [Nashville](https://github.com/nomad/nashville) (iTunes Store API).## Requirements
Cupertino requires the [Xcode Command Line Tools](https://developer.apple.com/xcode/), which can be installed with the following command:
```
$ xcode-select --install
```## Installation
```
$ gem install cupertino
```## Usage
### Authentication
```
$ ios login
```_Credentials are saved in the Keychain. You will not be prompted for your username or password by commands while you are logged in. (Mac only)_
Alternatively, username and password can also be provided by setting the
`IOS_USERNAME` and `IOS_PASSWORD` environment variables respectively.### Devices
```
$ ios devices:list+------------------------------+---------------------------------------+
| Listing 2 devices. You can register 98 additional devices. |
+---------------------------+------------------------------------------+
| Device Name | Device Identifier |
+---------------------------+------------------------------------------+
| Johnny Appleseed iPad | 0123456789012345678901234567890123abcdef |
| Johnny Appleseed iPhone | abcdef0123456789012345678901234567890123 |
+---------------------------+------------------------------------------+$ ios devices:add "iPad 1"=abc123
$ ios devices:add "iPad 2"=def456 "iPad 3"=ghi789 ...
```### Provisioning Profiles
```
$ ios profiles:list+----------------------------------+--------------+---------+
| Profile | App ID | Status |
+----------------------------------+--------------+---------+
| iOS Team Provisioning Profile: * | ABCDEFG123.* | Valid |
+----------------------------------+--------------+---------+
```---
```
$ ios profiles:manage:devices
```_Opens an editor with a list of devices, each of which can be commented / uncommented to turn them off / on for that provisioning profile._
```
# Comment / Uncomment Devices to Turn Off / On for Provisioning Profile
Johnny Appleseed iPad 0123456789012345678901234567890123abcdef
# Johnny Appleseed iPhone abcdef0123456789012345678901234567890123
``````
$ ios profiles:devices:add MyApp_Development_Profile "Johnny Appleseed iPad"=0123456789012345678901234567890123abcdef "Johnny Appleseed iPhone"=abcdef0123456789012345678901234567890123
```_Adds (without an editor) a list of devices to a provisioning profile_
```
$ ios profiles:devices:remove MyApp_Development_Profile "Johnny Old iPad"=0123456789012345678901234567890123abcdef "Johnny Old iPhone"=abcdef0123456789012345678901234567890123
```_Removes (without an editor) a list of devices from a provisioning profile_
---
```
$ ios profiles:devices:list MyApp_Development_Profile+--------------------------+------------------------------------------+--------+
| Listing devices for provisioning profile MyApp_Development_Profile |
+--------------------------+------------------------------------------+--------+
| Device Name | Device Identifier | Active |
+--------------------------+------------------------------------------+--------+
| Person's iPhone 5 | 888888883e48a3e0458aab2691d565a8a63f7888 | Y |
+--------------------------+------------------------------------------+--------+```
### App IDs
```
$ ios app_ids:list+-----------------------------+------------------------+-------------------+-------------------+
| Bundle Seed ID | Description | Development | Distribution |
+-----------------------------+------------------------+-------------------+-------------------+
| 123ABCDEFG.com.mattt.bundle | App Bundle Description | Passes | Passes |
| | | Data Protection | Data Protection |
| | | iCloud | iCloud |
| | | In-App Purchase | In-App Purchase |
| | | Game Center | Game Center |
| | | Push Notification | Push Notification |
+-----------------------------+------------------------+-------------------+-------------------+
``````
$ ios app_ids:add "App Bundle Description"=123ABCDEFG.com.mattt.bundle
```### Certificates
```
$ ios certificates:list+------------------+----------------------------------+-----------------+--------+
| Name | Provisioning Profiles | Expiration Date | Status |
+------------------+----------------------------------+-----------------+--------+
| Johnny Appleseed | iOS Team Provisioning Profile: * | Dec 23, 2012 | Issued |
+------------------+----------------------------------+-----------------+--------+
``````
$ ios certificates:download
$ ios certificates:download --type distribution
$ ios certificates:download NAME
```## CSV Output
The following commands will format their output as [comma-separated values](http://en.wikipedia.org/wiki/Comma-separated_values) when the `--format csv` argument is passed:
- `app_ids:list`
- `devices:list`
- `profiles:list`
- `profiles:manage:devices:list`## Commands
- `login`
- `logout`
- `devices:add`
- `devices:list`
- `profiles:list`
- `profiles:manage:devices`
- `profiles:manage:devices:add`
- `profiles:manage:devices:remove`
- `profiles:download`
- `profiles:download:all`
- `profiles:devices:list`
- `certificates:list`
- `certificates:download`
- `app_ids:list`## Options
Global options:
- `-u` : Username
- `-p` : Password
- `--team` : Team Identifier
- `--info` : Set log level to INFO
- `--debug` : Set log level to DEBUG
- `--format` : Output options are `table` or `csv`Specific options for certain commands:
- `--type` : Options are `development` or `distribution`
## Proxies
Cupertino will access the provisioning portal through a proxy if the `HTTP_PROXY` environment variable is set, with optional credentials `HTTP_PROXY_USER` and `HTTP_PROXY_PASSWORD`.
## License
Cupertino is released under an MIT license. See LICENSE for more information.