← Plugin catalog
Developer Tools

Codex TestFlight Release

Michal Cilek v0.1.3

Automate TestFlight releases

Create a free account to save this plugin.

From the developer

Declared capabilities

  • Build
  • Release
  • Automation

Not specified in the available declarations: limitations, pricing & account requirements.

Onboarding example

Create a new TestFlight build.
Sources & dates

Developer declarations; not independently tested. Listing last checked Nov 6, 2026. Package observed Nov 6, 2026.

View package source →

Description

From the marketplace listing

Automates the repeatable iOS release path: bump build number, archive, upload to App Store Connect, verify processing state, and update TestFlight notes without opening Xcode.

Language: English · Automatically detected from descriptions.

Matches for “app code”

Exact text from the indicated source. A mention alone does not establish support for your task.

Publisher keywords · listing

codex ios testflight xcode app-store-connect

Publisher description

Automate iOS TestFlight releases from Codex using xcodebuild and the App Store Connect API.

Publisher full description

Automates the repeatable iOS release path: bump build number, archive, upload to App Store Connect, verify processing state, and update TestFlight notes without opening Xcode.

Plugin name

Codex TestFlight Release

Package name

codex-testflight-release

What changed

· 3 observations

Positioning & listing

Developer name changed from “Astroblaster LTD” to “Michal Cilek”. Logo url dark removed: “https://files.openai.com/content?id=file_00000000d4b881f4a5eed481cad4378d”. Privacy policy url added: “https://astroblasterltd.com/plugins/privacy/”. Short description changed from “iOS releases to TestFlight” to “Automate...

View comparison →
Technical updates · 1

Package or technical metadata updated

View technical comparison →
Earlier changes · 3 more observation days on this page

Keywords

Files & skills

File archives

Plugin package11 files · 929 KBBrowse files →
Skill instructions
codex-ios-api-build4.05 KB

View saved version →

---
name: codex-ios-api-build
description: Build and upload iOS TestFlight builds from Codex using xcodebuild archive/export and App Store Connect API authentication. Use when the user asks to create a new TestFlight build, bump an iOS build number, archive an iOS app, upload via API key, set no-encryption export compliance, or automate TestFlight What to Test notes.
license: MIT
compatibility: Requires macOS with Xcode and xcodebuild, Node.js, Python 3, App Store Connect API credentials stored outside the repository, and network access.
---

# Codex iOS API Build

## Purpose

Create repeatable iOS TestFlight builds without opening Xcode UI:

1. bump `CURRENT_PROJECT_VERSION`,
2. archive for generic iOS device,
3. export/upload with `xcodebuild -exportArchive`,
4. authenticate using a local App Store Connect API key,
5. verify App Store Connect sees the build,
6. set TestFlight "What to Test" through App Store Connect API.

## Security Rules

- Never print `.p8` private key content.
- Keep App Store Connect API keys outside repos and outside synced folders.
- Use a local env file such as `$HOME/.private_keys/appstoreconnect.env`.
- Do not commit archives, exported IPA files, API keys, `.p8` files, or Xcode distribution logs.
- Treat App Store Connect `Key ID`, `Issuer ID`, Team ID, and key path as sensitive operational data.

Expected local env shape:

```bash
ASC_KEY_ID=YOUR_KEY_ID
ASC_ISSUER_ID=YOUR_ISSUER_ID
ASC_KEY_PATH=/absolute/path/to/AuthKey_YOUR_KEY_ID.p8
```

## Standard Workflow

Run from your iOS project repository root:

```bash
PROJECT_PATH=ios/MyApp/MyApp.xcodeproj \
SCHEME=MyApp \
EXPORT_OPTIONS=build/ExportOptions-TestFlight.plist \
/path/to/codex-testflight-release/skills/codex-ios-api-build/scripts/build_testflight_api.sh 123
```

Required environment variables for a public project:

- `PROJECT_PATH`: path to the `.xcodeproj`
- `SCHEME`: Xcode scheme to archive
- `EXPORT_OPTIONS`: export options plist for App Store/TestFlight upload

Archive output defaults to `build/<scheme>-<build>.xcarchive`.
Export output defaults to `build/<scheme>-<build>-export`.

## No Encryption

When the app only uses exempt standard encryption, add this generated Info.plist build setting before archiving:

```text
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
```

Verify the archived app:

```bash
/usr/libexec/PlistBuddy -c 'Print :ITSAppUsesNonExemptEncryption' build/MyApp-123.xcarchive/Products/Applications/MyApp.app/Info.plist
```

Expected value: `false`.

## What to Test

After upload, set TestFlight "What to Test":

```bash
/path/to/codex-testflight-release/skills/codex-ios-api-build/scripts/set_testflight_whats_new.js \
  com.example.myapp \
  123 \
  en-US \
  "Test sign-in, main workflow, sync, and the new release changes."
```

The helper uses App Store Connect API `betaBuildLocalizations`: it finds the app by bundle ID, finds the build by build number, then creates or updates the build localization.

## External TestFlight groups

Set `ASC_BETA_GROUP` to the exact external group name and optionally set `ASC_SUBMIT_BETA_REVIEW=true`. The metadata helper assigns the processed build to that group and submits it for Beta App Review when required.

The export options plist must set `testFlightInternalTestingOnly` to `false` or omit it. An internal-only build is permanently ineligible for external groups, so the build helper validates this before archiving.

## Verification

Always verify:

1. Archive succeeded: output includes `** ARCHIVE SUCCEEDED **`.
2. Upload succeeded: output includes `Uploaded package is processing`, `Upload succeeded`, and `** EXPORT SUCCEEDED **`.
3. API sees the expected build number and processing state.
4. Info.plist includes `ITSAppUsesNonExemptEncryption = false` when no-encryption compliance is expected.
5. `set_testflight_whats_new.js` reports `Updated What to Test` or `Created What to Test`.
6. When `ASC_BETA_GROUP` is configured, the helper confirms assignment to the named external group and reports the Beta App Review state.

Acceptable processing states include `PROCESSING` shortly after upload and `VALID` once Apple finishes.

Referenced files: 4 — file references are metadata, not package contents.

Release notes

Added a dedicated privacy policy for Astroblaster plugins with explicit local-data controls, service recipients and support retention. Release scripts are unchanged.

Declared in the saved package. Remote tools may change independently.

Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package license
MIT
Package author
Michal Cilek
Keywords
See keywords

Declared capabilities

  • Build
  • Release
  • Automation

Package observed Nov 6, 2026.

Technical details
First seen
Sep 30, 2026 · 22:02 UTC
Last seen
Nov 6, 2026 · 00:00 UTC
Latest observed change
Nov 2, 2026 · 06:11 UTC
Collection status
Collected

plugins_6a74bf6c6a148191bb93d50aff08090f

Download plugin data (JSON)