[PR #141] [MERGED] Fix App Store submission by implementing reviewSubmissions API #321

Closed
opened 2026-02-26 21:34:34 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/141
Author: @cameronehrlich
Created: 1/25/2026
Status: Merged
Merged: 1/25/2026
Merged by: @rudrankriyam

Base: mainHead: feature/review-submissions


📝 Commits (1)

  • f70fa60 Add reviewSubmissions API support for App Store submission

📊 Changes

3 files changed (+329 additions, -21 deletions)

View changed files

📝 cmd/submit.go (+39 -21)
internal/asc/client_review_submissions.go (+288 -0)
📝 internal/asc/client_types.go (+2 -0)

📄 Description

Summary

Fixes the broken asc submit create command by implementing support for Apple's new reviewSubmissions API.

Problem: The old appStoreVersionSubmissions endpoint is deprecated and returns:

Error: appStoreVersionSubmissions does not allow CREATE

Solution: Implement the new reviewSubmissions API which uses a 3-step flow:

  1. Create a review submission for the app
  2. Add the app store version as a submission item
  3. Submit for review by setting submitted=true

Production Testing

Successfully submitted Stitch It 3.0.3 for App Store review:

$ asc submit create --app 554594252 --version "3.0.3" --build "fd078cfb..." --confirm
{
  "submissionId": "b5a59d16-376b-4f2b-88eb-409e85fed1ca",
  "versionId": "431ba67a-393f-4a8d-9c4a-1dbe139324dd",
  "buildId": "fd078cfb-3d76-4c4c-a0e3-0d21cc56259e",
  "createdDate": "2026-01-25T07:29:29.485Z"
}

Files Changed

File Purpose
internal/asc/client_review_submissions.go New file - Complete reviewSubmissions API implementation
cmd/submit.go Updated to use new 3-step submission flow
internal/asc/client_types.go Added ResourceTypeReviewSubmissions and ResourceTypeReviewSubmissionItems

API Methods Added

// Create and manage review submissions
CreateReviewSubmission(ctx, appID, platform)
GetReviewSubmission(ctx, submissionID)
SubmitReviewSubmission(ctx, submissionID)
CancelReviewSubmission(ctx, submissionID)

// Manage submission items (versions to submit)
AddReviewSubmissionItem(ctx, submissionID, versionID)
DeleteReviewSubmissionItem(ctx, itemID)

Backwards Compatibility

The submit cancel command tries both APIs:

  • First attempts the old appStoreVersionSubmissions for legacy submissions
  • Falls back to new reviewSubmissions API for newer submissions

Checklist

  • Fixes critical bug preventing App Store submissions
  • Successfully tested in production
  • Maintains backwards compatibility for cancel operation
  • Code follows project patterns

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/141 **Author:** [@cameronehrlich](https://github.com/cameronehrlich) **Created:** 1/25/2026 **Status:** ✅ Merged **Merged:** 1/25/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `feature/review-submissions` --- ### 📝 Commits (1) - [`f70fa60`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/f70fa6012c32bb90ee6cee92cdbcab0741d9438e) Add reviewSubmissions API support for App Store submission ### 📊 Changes **3 files changed** (+329 additions, -21 deletions) <details> <summary>View changed files</summary> 📝 `cmd/submit.go` (+39 -21) ➕ `internal/asc/client_review_submissions.go` (+288 -0) 📝 `internal/asc/client_types.go` (+2 -0) </details> ### 📄 Description ## Summary Fixes the broken `asc submit create` command by implementing support for Apple's new `reviewSubmissions` API. **Problem:** The old `appStoreVersionSubmissions` endpoint is deprecated and returns: ``` Error: appStoreVersionSubmissions does not allow CREATE ``` **Solution:** Implement the new `reviewSubmissions` API which uses a 3-step flow: 1. Create a review submission for the app 2. Add the app store version as a submission item 3. Submit for review by setting `submitted=true` ## Production Testing ✅ Successfully submitted Stitch It 3.0.3 for App Store review: ```bash $ asc submit create --app 554594252 --version "3.0.3" --build "fd078cfb..." --confirm { "submissionId": "b5a59d16-376b-4f2b-88eb-409e85fed1ca", "versionId": "431ba67a-393f-4a8d-9c4a-1dbe139324dd", "buildId": "fd078cfb-3d76-4c4c-a0e3-0d21cc56259e", "createdDate": "2026-01-25T07:29:29.485Z" } ``` ## Files Changed | File | Purpose | |------|---------| | `internal/asc/client_review_submissions.go` | **New file** - Complete reviewSubmissions API implementation | | `cmd/submit.go` | Updated to use new 3-step submission flow | | `internal/asc/client_types.go` | Added ResourceTypeReviewSubmissions and ResourceTypeReviewSubmissionItems | ## API Methods Added ```go // Create and manage review submissions CreateReviewSubmission(ctx, appID, platform) GetReviewSubmission(ctx, submissionID) SubmitReviewSubmission(ctx, submissionID) CancelReviewSubmission(ctx, submissionID) // Manage submission items (versions to submit) AddReviewSubmissionItem(ctx, submissionID, versionID) DeleteReviewSubmissionItem(ctx, itemID) ``` ## Backwards Compatibility The `submit cancel` command tries both APIs: - First attempts the old `appStoreVersionSubmissions` for legacy submissions - Falls back to new `reviewSubmissions` API for newer submissions ## Checklist - [x] Fixes critical bug preventing App Store submissions - [x] Successfully tested in production - [x] Maintains backwards compatibility for cancel operation - [x] Code follows project patterns --- 🤖 Generated with [Claude Code](https://claude.ai/code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 21:34:34 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/App-Store-Connect-CLI#321
No description provided.