unresolvedBetaGroups property

int unresolvedBetaGroups
final

How many attached groups Apple named and did not send, normally 0.

A third reading of an empty betaGroups, and the one that is about the response rather than the build. null is this read did not ask, [] with this at 0 is Apple says the build is attached to nothing, and [] with this above 0 is Apple named attachments and this listing did not receive them. Only the middle one is a fact about the build, and a consumer that renders the third as the second reports no external testers have this out of a shortfall.

inExternalTesting is null rather than false in that case for exactly this reason, so a consumer reading only that flag is already safe. This field is for one that wants to say why.

Required by AppStoreBuildEntry.fromJson, and that is a fact about timing rather than a general rule. It and unresolvedBuildBetaDetail are non-nullable with no default, so a document lacking them is refused: a default of 0 would read a document's silence as nothing was missing, which is the reading these two exist to prevent, turned on themselves. That is only safe because schema 2 had not shipped when they were added, so no document outside this repository was ever written without them. Adding a required field to a schema that has shipped is a new schema number, not a stricter decoder — a reader would be refusing documents this package told it to accept.

Implementation

final int unresolvedBetaGroups;