Skip to main content

iTunes Connect App Statuses

See Apple Managing Your Apps

Table 9-1  iTunes Connect app statuses
Status
Status Name
Description
Editable
../Art/status_yellow.pngPrepare For UploadAppears as the first status for your app. This status means that you should enter or edit metadata, screenshots, pricing, In-App Purchases, Game Center, iAd Network settings, and so on, to prepare your app for upload to the App Store.X
../Art/status_yellow.pngWaiting For UploadAppears when you’ve completed entering your metadata and indicated that you are ready to submit your binary, however, you have not finished uploading your binary through Application Loader. Your app must be Waiting For Upload for you to be able to deliver your binary through Application Loader.X
../Art/status_yellow.pngWaiting For ReviewAppears after you submit a new app or update and before the app is reviewed by Apple. This status means that your app has been added to the app review queue but has not yet started the review process. Because it takes time to review binaries, keep in mind that this state does not indicate that your app is currently being reviewed.
While your app is waiting for review, you can:
  • Reject your binary to remove it from the Apple review queue
  • Edit certain app information
X
../Art/status_yellow.pngIn ReviewAppears when Apple is currently reviewing your app before the app is rejected or approved. Note that it takes time to review binaries. We appreciate your patience and ask that you allow sufficient time for the processing of your app.
../Art/status_yellow.pngPending ContractAppears when your app has been reviewed and is ready for sale but your contracts are not yet in effect. You can check the progress of your contracts in the Contracts, Tax & Banking module. See“Managing Contracts, Taxes, and Banking.”
../Art/status_yellow.pngWaiting For Export ComplianceAppears when your CCATS file is in review with Export Compliance.X
../Art/status_yellow.pngUpload ReceivedAppears when your binary has been received through Application Loader but has not yet completed processing into the iTunes Connect system. If your app has been in the Upload Received status for more than 24 hours, you should contact iTunes Connect Support through the iTunes Connect Contact Us module.X
../Art/status_yellow.pngPending Developer ReleaseAppears when your app version has been approved by Apple and you have chosen to set your version release control. Release it to the App Store when you are ready. To release your app to the App Store, click the Release This Version button on the app’s Version Details page within Manage Your Apps.
../Art/status_yellow.pngProcessing for App StoreAppears when your binary is being processed and will be ready for sale within 24 hours.
../Art/status_yellow.pngPending Apple ReleaseAppears when your app version will be held by Apple until the corresponding Apple iOS or OS version is released to the public.
../Art/status_green.pngReady For SaleAppears after the binary has been approved and the app is posted to the App Store. When your app is in this state, you have the option to remove it from the store by going to the “Rights and Pricing” page and removing all App Store territories. See “Removing an App from Sale.”
../Art/status_red.pngRejectedAppears when the binary has not passed review. You receive a communication from App Review in the Resolution Center regarding the reason for the rejection.X
../Art/status_red.pngMetadata RejectedAppears when specific metadata items aside from your binary have not passed review. To resolve the issue, edit the metadata in iTunes Connect and your existing binary is then reused for the review process. You receive a communication from App Review in the Resolution Center regarding the reason for the metadata rejection.X
../Art/status_red.pngRemoved From SaleAppears when your app has been removed from the App Store.
../Art/status_red.pngDeveloper RejectedAppears when you’ve rejected the binary from the review process. Choosing the Developer Rejected status removes your app from the review queue. After you resubmit your binary, the app review process starts over from the beginning.X
../Art/status_red.pngDeveloper Removed From SaleAppears when you’ve removed the app from the App Store. See“Removing an App from Sale” and “Putting an App Back on Sale.”
../Art/status_red.pngInvalid BinaryAppears when your binary has been received through Application Loader but did not meet all requirements for upload. You receive an email detailing the issue with your binary and showing how to resolve it. To resend the resolved binary, go into iTunes Connect and click Ready to Upload Binary again. This action sets your app back to the Waiting For Upload state so that you can resend the binary through Application Loader.X
../Art/status_red.pngMissing ScreenshotAvailable for iOS apps only. Appears when your app is missing a required screenshot for iPhone and iPod touch or iPad for your default language app or for your added localizations. At least one screenshot is required for both iPhone and iPod touch, and for iPad if you are submitting a universal app.
Click the number next to the status to view a list of the territories in which a screenshot is missing.
X

Comments

Most Favorite Posts

Server-driven UI (SDUI): Meet Zalandos AppCraft and AirBnB Lona

A short WTF: Joe Birch:  SERVER DRIVEN UI, PART 1: THE CONCEPT Zalando seems to follow the SDUI principle as well - defining a common design language and construct the screens on the backend while displaying them natively on the clients. They even go one step further; they implemented a mighty toolset to enable non-technical stakeholders to define their own native app screens Compass: Web tooling to create screens and bind data Beetroot: Backend service that combines the screen layout definition with the data Lapis/Golem: iOS/Android UI render engines Crazy cool! Good job, guys (when you do an open-source release?) To even move faster a Flutter based UI render engine implementation was great! See also AirBnB Lona SDUI approach Building a Visual Language Why Dropbox sunsetted its universal C++ mobile project and AirBnB its React Native implementation

Employee Development ...by Cards ...by Lego Brick Boards

Employee Development by using Skill Cards The goal is to build a hand of cards that make up that person’s most relevant personal growth areas. To do this, both the people leader and team member start with a deck of the same skill cards each. In private, each goes through this deck and sorts these cards into three stacks: not relevant, good enough, and to improve. By discussing why each card was placed where, with particular focus on those that do not match, a real, structured, and to-the-point conversation occurs. By focusing on reasoning—what led you to place this card here?—both can develop a shared understanding of the other's views. The main event, however, comes in focusing on those cards in “to improve”. To create focus and drive actual impact, these cards are discussed and prioritized. With a clear priority and a shared understanding of the individual aspects of each, tangible actions are crafted that can be taken to grow one’s career. LinkedIn Rob Sawyer mobi...

Speed up your unit tests! Swap out your App Delegate for testing.

Faster, please One thing that can slow our tests down is if our App performs expensive tasks on startup and it is not unusual to place code that synchronizes with a server in our implementation of UIAppDelegate. Luckily for us there is a way to change the production App Delegate with a fake that does nothing. Objective-C class FakeAppDelegate: UIResponder, UIApplicationDelegate {   var window: UIWindow?   func application(application: UIApplication,     didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {     self.window?.rootViewController = UIViewController()     return true   } } let isRunningTests = NSClassFromString("XCTestCase") != nil if isRunningTests {   UIApplicationMain(Process.argc, Process.unsafeArgv, nil,     NSStringFromClass(FakeAppDelegate)) } else {   UIApplicationMain(Process.argc, Process.unsafeArgv, nil,     NSStringFromClass(AppDelegate)) ...

Microservice Micro-Feature architecture for mobile Apps

RIBs is the cross-platform architecture framework behind many mobile apps at Uber. The name RIBs is short for Router, Interactor and Builder, which are core components of this architecture. This framework is designed for mobile apps with a large number of engineers and nested states. The RIBs architecture provides: Shared architecture across iOS and Android. Build cross-platform apps that have similar architecture, enabling iOS and Android teams to cross-review business logic code. Testability and Isolation. Classes must be easy to unit test and reason about in isolation. Individual RIB classes have distinct responsibilities like: routing, business, view logic, creation. Plus, most RIB logic is decoupled from child RIB logic. This makes RIB classes easy to test and reason about independently. Tooling for developer productivity. RIBs come with IDE tooling around code generation, memory leak detection, static analysis and runtime integrations - all which improve developer product...

Dark Theme (Dark Mode) in Android WebViews, WKWebViews and CSS

So your apps just implemented a shiny new dark theme and it’s looking 👌 There are lots of benefits to having a dark theme in your application, and having it consistent throughout your application allows for a great user experience. But what happens when the the user runs into a WebView in your app? Support: if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { ... } Set: WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON) Current setting: val forceDarkMode = WebSettingsCompat.getForceDark(webView.settings) Joe Birch Assuming your question is asking how to change the colors of the HTML content you are displaying in a WKWebView based on whether light or dark mode is in effect, there is nothing you do in your app's code. All changes need to be in the CSS being used by your HTML content. CSS dark mode via :root variables, explicit colors and @media query: :root {     color-scheme: light dark;      ...

FlatBuffers instead of JSON (or Protocol Buffers)

FlatBuffers is an efficient cross platform serialization library for C++, Java, C#, Go, Python and JavaScript (C, PHP & Ruby in progress). It was originally created at Google for game development and other performance-critical applications. Why use FlatBuffers? Access to serialized data without parsing/unpacking - What sets FlatBuffers apart is that it represents hierarchical data in a flat binary buffer in such a way that it can still be accessed directly without parsing/unpacking, while also still supporting data structure evolution (forwards/backwards compatibility). Memory efficiency and speed - The only memory needed to access your data is that of the buffer. It requires 0 additional allocations (in C++, other languages may vary). FlatBuffers is also very suitable for use with mmap (or streaming), requiring only part of the buffer to be in memory. Access is close to the speed of raw struct access with only one extra indirection (a kind of vtable) to allow for format ev...

CouchDB for iOS

A build of Apache CouchDB optimized for iPad, iPhone, and iPod Touch iOS-Couchbase CouchDB - Key Features Documents Views Schema-Free Distributed CouchDB is a peer based distributed database system. Any number of CouchDB hosts (servers and offline-clients) can have independent “replica copies” of the same database, where applications have full database interactivity (query, add, edit, delete). When back online or on a schedule, database changes are replicated bi-directionally. CouchDB has built-in conflict detection and management and the replication process is incremental and fast, copying only documents and individual fields changed since the previous replication. Most applications require no special planning to take advantage of distributed updates and replication. CouchDB