[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7942":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":19,"defaultBranch":20,"hasWiki":18,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":15,"starSnapshotCount":15,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},7942,"cupertino","nomad-cli\u002Fcupertino","nomad-cli","CLI for the Apple Dev Center","",null,"Ruby",2624,185,1,0,58.81,"MIT License",true,false,"master",[],"2026-06-12 04:00:36","![Cupertino](https:\u002F\u002Fraw.github.com\u002Fnomad\u002Fnomad.github.io\u002Fassets\u002Fcupertino-banner.png)\n\n**Note:** Cupertino stopped working due to a recent change on the Apple Developer Portal. A maintained alternative is to use [spaceship](https:\u002F\u002Fspaceship.airforce) to communicate with Apple's Developer back-end, or use any of the [fastlane tools](https:\u002F\u002Ffastlane.tools), like [match](https:\u002F\u002Fgithub.com\u002Ffastlane\u002Ffastlane\u002Ftree\u002Fmaster\u002Fmatch) or [sigh](https:\u002F\u002Fgithub.com\u002Ffastlane\u002Ffastlane\u002Ftree\u002Fmaster\u002Fsigh).\n\n------\n\nAutomate 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!\n\n> Cupertino is named after [Cupertino, CA](http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCupertino,_California): home to Apple, Inc.'s world headquarters.\n> It's part of a series of world-class command-line utilities for iOS development, which includes [Shenzhen](https:\u002F\u002Fgithub.com\u002Fmattt\u002Fshenzhen) (Building & Distribution), [Houston](https:\u002F\u002Fgithub.com\u002Fmattt\u002Fhouston) (Push Notifications), [Venice](https:\u002F\u002Fgithub.com\u002Fmattt\u002Fvenice) (In-App Purchase Receipt Verification), [Dubai](https:\u002F\u002Fgithub.com\u002Fmattt\u002Fdubai) (Passbook pass generation), and [Nashville](https:\u002F\u002Fgithub.com\u002Fnomad\u002Fnashville) (iTunes Store API).\n\n## Requirements\n\nCupertino requires the [Xcode Command Line Tools](https:\u002F\u002Fdeveloper.apple.com\u002Fxcode\u002F), which can be installed with the following command:\n\n```\n$ xcode-select --install\n```\n\n## Installation\n\n```\n$ gem install cupertino\n```\n\n## Usage\n\n### Authentication\n\n```\n$ ios login\n```\n\n_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)_\n\nAlternatively, username and password can also be provided by setting the\n`IOS_USERNAME` and `IOS_PASSWORD` environment variables respectively.\n\n### Devices\n\n```\n$ ios devices:list\n\n+------------------------------+---------------------------------------+\n|       Listing 2 devices. You can register 98 additional devices.     |\n+---------------------------+------------------------------------------+\n| Device Name               | Device Identifier                        |\n+---------------------------+------------------------------------------+\n| Johnny Appleseed iPad     | 0123456789012345678901234567890123abcdef |\n| Johnny Appleseed iPhone   | abcdef0123456789012345678901234567890123 |\n+---------------------------+------------------------------------------+\n\n$ ios devices:add \"iPad 1\"=abc123\n$ ios devices:add \"iPad 2\"=def456 \"iPad 3\"=ghi789 ...\n```\n\n### Provisioning Profiles\n\n```\n$ ios profiles:list\n\n+----------------------------------+--------------+---------+\n| Profile                          | App ID       | Status  |\n+----------------------------------+--------------+---------+\n| iOS Team Provisioning Profile: * | ABCDEFG123.* | Valid   |\n+----------------------------------+--------------+---------+\n```\n\n---\n\n```\n$ ios profiles:manage:devices\n```\n\n_Opens an editor with a list of devices, each of which can be commented \u002F uncommented to turn them off \u002F on for that provisioning profile._\n\n```\n# Comment \u002F Uncomment Devices to Turn Off \u002F On for Provisioning Profile\nJohnny Appleseed iPad 0123456789012345678901234567890123abcdef\n# Johnny Appleseed iPhone abcdef0123456789012345678901234567890123\n```\n\n```\n$ ios profiles:devices:add MyApp_Development_Profile \"Johnny Appleseed iPad\"=0123456789012345678901234567890123abcdef \"Johnny Appleseed iPhone\"=abcdef0123456789012345678901234567890123\n```\n\n_Adds (without an editor) a list of devices to a provisioning profile_\n\n```\n$ ios profiles:devices:remove MyApp_Development_Profile \"Johnny Old iPad\"=0123456789012345678901234567890123abcdef \"Johnny Old iPhone\"=abcdef0123456789012345678901234567890123\n```\n\n_Removes (without an editor) a list of devices from a provisioning profile_\n\n---\n\n```\n$ ios profiles:devices:list MyApp_Development_Profile\n\n+--------------------------+------------------------------------------+--------+\n|         Listing devices for provisioning profile MyApp_Development_Profile   |\n+--------------------------+------------------------------------------+--------+\n| Device Name              | Device Identifier                        | Active |\n+--------------------------+------------------------------------------+--------+\n| Person's iPhone 5        | 888888883e48a3e0458aab2691d565a8a63f7888 |   Y    |\n+--------------------------+------------------------------------------+--------+\n\n```\n\n### App IDs\n\n```\n$ ios app_ids:list\n\n+-----------------------------+------------------------+-------------------+-------------------+\n| Bundle Seed ID              | Description            | Development       | Distribution      |\n+-----------------------------+------------------------+-------------------+-------------------+\n| 123ABCDEFG.com.mattt.bundle | App Bundle Description | Passes            | Passes            |\n|                             |                        | Data Protection   | Data Protection   |\n|                             |                        | iCloud            | iCloud            |\n|                             |                        | In-App Purchase   | In-App Purchase   |\n|                             |                        | Game Center       | Game Center       |\n|                             |                        | Push Notification | Push Notification |\n+-----------------------------+------------------------+-------------------+-------------------+\n```\n\n```\n$ ios app_ids:add \"App Bundle Description\"=123ABCDEFG.com.mattt.bundle\n```\n\n### Certificates\n\n```\n$ ios certificates:list\n\n+------------------+----------------------------------+-----------------+--------+\n| Name             | Provisioning Profiles            | Expiration Date | Status |\n+------------------+----------------------------------+-----------------+--------+\n| Johnny Appleseed | iOS Team Provisioning Profile: * | Dec 23, 2012    | Issued |\n+------------------+----------------------------------+-----------------+--------+\n```\n\n```\n$ ios certificates:download\n$ ios certificates:download --type distribution\n$ ios certificates:download NAME\n```\n\n## CSV Output\n\nThe following commands will format their output as [comma-separated values](http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FComma-separated_values) when the `--format csv` argument is passed:\n\n- `app_ids:list`\n- `devices:list`\n- `profiles:list`\n- `profiles:manage:devices:list`\n\n## Commands\n\n- `login`\n- `logout`\n- `devices:add`\n- `devices:list`\n- `profiles:list`\n- `profiles:manage:devices`\n- `profiles:manage:devices:add`\n- `profiles:manage:devices:remove`\n- `profiles:download`\n- `profiles:download:all`\n- `profiles:devices:list`\n- `certificates:list`\n- `certificates:download`\n- `app_ids:list`\n\n## Options\n\nGlobal options:\n\n- `-u` : Username\n- `-p` : Password\n- `--team` : Team Identifier\n- `--info` : Set log level to INFO\n- `--debug` : Set log level to DEBUG\n- `--format` : Output options are `table` or `csv` \n\nSpecific options for certain commands:\n\n- `--type` : Options are `development` or `distribution`\n\n## Proxies\n\nCupertino 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`.\n\n## License\n\nCupertino is released under an MIT license. See LICENSE for more information.\n","Cupertino 是一个用于苹果开发者中心的命令行工具，旨在自动化通常需要通过苹果开发者网站手动完成的管理任务。它主要使用 Ruby 语言开发，支持设备标识符管理和配置文件操作等核心功能，显著提高了 iOS 开发者的工作效率。Cupertino 支持通过命令行进行设备列表查看、添加以及配置文件的创建与管理等功能，特别适合需要频繁与苹果开发者后台交互的场景，如设备UDID注册、证书和配置文件管理等。不过需要注意的是，由于苹果开发者门户最近的变化，该项目已不再维护；建议用户转向 spaceship 或 fastlane 系列工具以获得持续支持。",2,"2026-06-11 03:15:10","top_language"]