All Projects → nomad → Cupertino

nomad / Cupertino

Licence: mit
CLI for the Apple Dev Center

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Cupertino

Venice
Ruby Gem for In-App Purchase Receipt Verification
Stars: ✭ 578 (-78.3%)
Mutual labels:  cli, nomad
Shenzhen
CLI for Building & Distributing iOS Apps (.ipa Files)
Stars: ✭ 4,668 (+75.23%)
Mutual labels:  cli, nomad
Houston
Apple Push Notifications; No Dirigible Required
Stars: ✭ 2,973 (+11.6%)
Mutual labels:  cli, nomad
Nomadctld
ssh server with ability to exec/attach/logs/tail/stop/restart hashicorp nomad containers
Stars: ✭ 47 (-98.24%)
Mutual labels:  cli, nomad
Microservices Demo
Deployment scripts & config for Sock Shop
Stars: ✭ 2,939 (+10.32%)
Mutual labels:  nomad
Kb
A minimalist command line knowledge base manager
Stars: ✭ 2,789 (+4.69%)
Mutual labels:  cli
Trello Cli
Command line client for Trello
Stars: ✭ 242 (-90.92%)
Mutual labels:  cli
Pychubby
Automated face warping tool.
Stars: ✭ 240 (-90.99%)
Mutual labels:  cli
Npm Upgrade
Interactive CLI utility to easily update outdated NPM dependencies
Stars: ✭ 245 (-90.8%)
Mutual labels:  cli
Oauth
A library for performing OAuth Device flow and Web application flow in Go client apps.
Stars: ✭ 244 (-90.84%)
Mutual labels:  cli
Covid19 Tracker Cli
A curl-based command line tracker for Novel Coronavirus or COVID-19 pandemic. It Supports terminal for linux and macos, command prompt for windows, and termux for android with real-time updates.
Stars: ✭ 244 (-90.84%)
Mutual labels:  cli
Home Assistant Cli
💻 Command-line tool for Home Assistant
Stars: ✭ 243 (-90.88%)
Mutual labels:  cli
Hiper
🚀 A statistical analysis tool for performance testing
Stars: ✭ 2,667 (+0.11%)
Mutual labels:  cli
Laravel Zero
A PHP framework for console artisans
Stars: ✭ 2,821 (+5.89%)
Mutual labels:  cli
Favicon Emoji
🖼 Generate an emoji-favicon in your terminal
Stars: ✭ 247 (-90.73%)
Mutual labels:  cli
Imagecli
A command line image processing tool
Stars: ✭ 242 (-90.92%)
Mutual labels:  cli
3llo
3llo - Trello interactive CLI aplication
Stars: ✭ 245 (-90.8%)
Mutual labels:  cli
Jenkins Cli
Jenkins CLI allows you manage your Jenkins as an easy way
Stars: ✭ 245 (-90.8%)
Mutual labels:  cli
Fui
Add CLI & form interface to your program. Docs: https://docs.rs/fui
Stars: ✭ 244 (-90.84%)
Mutual labels:  cli
Lyra
A simple to use, composable, command line parser for C++ 11 and beyond
Stars: ✭ 238 (-91.07%)
Mutual labels:  cli

Cupertino

Note: Cupertino stopped working due to a recent change on the Apple Developer Portal. A maintained alternative is to use spaceship to communicate with Apple's Developer back-end, or use any of the fastlane tools, like match or 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: 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 (Building & Distribution), Houston (Push Notifications), Venice (In-App Purchase Receipt Verification), Dubai (Passbook pass generation), and Nashville (iTunes Store API).

Requirements

Cupertino requires the Xcode Command Line Tools, 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 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].