Product

Portability

Moving a project to a different Apple team or Play account is a configuration change, with a preflight that tells you what will break first. This is the feature nobody asks for at evaluation and everybody needs eventually.

The rule that makes it possible

No store-account identifier may appear in release.yaml at all. Not an Apple Team ID, not a Play developer id. The validator refuses one outright, as an error rather than a style note.

Targets resolve by name at run time, and that indirection is the entire mechanism. Without it, a move is a search-and-replace across a repository and its history, performed by somebody who is not certain they found every one.

A preflight, then an explicit second act

The preflight checks the destination: does a distribution certificate exist and is there room under the cap, does an app record exist with the right bundle id, is the Play listing reachable. It returns findings with severities, and the button that executes the move is only enabled once a preflight has actually passed. A move re-points every credential a project signs with, and getting it wrong is discovered days later at the next release.

Why an acquisition is the normal case

Teams get acquired. Products get rebranded. A developer account somebody set up in a hurry four years ago turns out to be in a personal name. None of these are exotic, and all of them are a rewrite under a tool that wrote the account id into the repository.

What this part refuses to do

Each of these could be built, and each would make the product worse.

Half a move
A move invalidates what the old account owned and regenerates provisioning in the same operation. Re-pointing the target and leaving the credentials behind would produce a project that looks moved and signs with the old team.
Regenerating an Android upload keystore
Under Play App Signing that requires Google’s upload-key reset process. A tool that “helpfully” generates a new one has locked you out of your own listing, and the move is the exact moment somebody would be tempted to.