Files
orbit/apps/cli/package.json
Gabriel Donadel Dall'Agnol f670bc132a [cli][menu-bar] Add iOS re-signing with a free Apple ID (#377)
* [cli][menu-bar] Add iOS re-signing with a free Apple ID

Re-sign an installed build that fails code-signing so it runs on a personal
device, using a free Apple ID. When an install fails with
APPLE_APP_VERIFICATION_FAILED, Orbit offers to re-sign and install.

- CLI: `resign-ipa` and `apple-id-auth` (sign-in / verify-2fa with SMS
  fallback / sign-out) commands, driven by ipa-resign.
- Menu-bar: the resign offer + determinate progress in the popover, an Apple
  ID sign-in window (6-digit 2FA input, resend, SMS fallback), error-copy
  mapping, first-install "Untrusted Developer" trust instructions, and an
  Apple ID section in Settings (signed-in state + sign out).
- Session expiry is treated as an automatic logout: the stored Apple ID is
  forgotten and every "signed in as" surface updates, with one-tap re-auth.
- Electron/macOS wiring for the ipa-resign native anisette + zsign helpers,
  transient-env-var plumbing to pass the password to the CLI, and the
  APPLE_APP_VERIFICATION_FAILED mapping that triggers the offer.

[email protected].

* [menu-bar] Fix Electron CI: ensure extraResource dirs exist; drop useless return

- forge.config: create ./bin and ./anisette in the generateAssets hook so
  packaging (and Electron E2E, which runs 'yarn package' without
  'build:helpers') does not fail with ENOENT on the missing extraResource
  dirs. build:helpers still populates them for real builds.
- build-helpers: remove a no-useless-return that failed eslint --max-warnings 0.

* Bump ipa-resign to 0.0.13

* Fix CLI error handling

* Update AppleID auth UI

* Fix Apple ID persistance

* Fix Apple connection lost

* Fix opening settings menu

* Support paid developer accounts in resign copy and show the install step

* Detect builds that need resigning before attempting the install

* Add changelog entry
2026-10-08 20:29:13 +02:00

45 lines
1.5 KiB
JSON

{
"name": "expo-orbit-cli",
"private": true,
"version": "0.0.1",
"description": "The command-line tool used internally by Expo Orbit menu bar",
"license": "MIT",
"files": [
"build"
],
"scripts": {
"cli": "node ./build/index.js",
"start": "yarn run prepare && yarn run watch",
"build": "tsc",
"archive": "yarn build && pkg build/index.js --config pkg.config.json -o dist/orbit-cli",
"clean": "rimraf build ./tsconfig.tsbuildinfo",
"prepare": "yarn run clean && yarn run build",
"watch": "tsc --watch --preserveWatchOutput",
"codesign": "codesign --options=runtime --sign \"Developer ID Application: 650 Industries, Inc. (C8D8QTF339)\" --entitlements ./macos/entitlements.plist --force ./dist/orbit-cli-arm64 ./dist/orbit-cli-x64",
"typecheck": "tsc",
"gql": "graphql-codegen --config codegen.ts",
"test": "jest"
},
"dependencies": {
"@types/picomatch": "^4.0.0",
"ipa-resign": "^0.0.16",
"commander": "^10.0.1",
"common-types": "1.0.0",
"eas-shared": "*",
"graphql": "^16.8.0",
"graphql-request": "^6.1.0",
"picomatch": "^4.0.2",
"snack-content": "2.0.0-preview.2",
"strip-ansi": "^6.0.0"
},
"devDependencies": {
"@graphql-codegen/cli": "^5.0.0",
"@graphql-codegen/typescript-graphql-request": "^6.1.0",
"@graphql-codegen/typescript-operations": "^4.0.1",
"@types/jest": "^29.5.14",
"pkg": "^5.8.1",
"ts-jest": "^29.3.4",
"typescript": "~6.0.3"
}
}