Taking Over an App Somebody Else Built
The hard part is rarely the code. It is getting the developer accounts, the signing keys and the repository back from whoever had them last — because until you hold those, nobody can ship an update to your own app.
Whoever Holds the Signing Key Controls Your App
An app in the stores is not one asset. It is a chain of accounts, keys and certificates, and a break anywhere in that chain means no update can be published no matter how good the code is.
The Things Without Which You Cannot Ship
- The Apple developer account, and specifically whose legal entity holds it
- The Google Play developer account and who the owner is, not merely who has been invited
- The Android app signing arrangement and the upload key
- The iOS distribution certificate and the provisioning profiles, or at least the account that can issue new ones
- The full repository including branch history, not a zip of the latest folder
- The build configuration, environment values and anything stored only on the last developer’s laptop
The Things You Will Discover You Also Need
- The push credentials for both platforms, without which notifications stop the moment the old ones lapse
- The backend hosting, the database and whoever the invoice goes to
- The analytics and crash reporting projects, which usually hold the only history of how the app behaves
- Third-party keys for maps, payments, messaging and anything else billed separately
- The domain and its verification records, because deep links break silently without them
- Editable design sources, rather than exported images of screens
We produce that inventory in the first week as a written list with a status against each line: held, recoverable, or genuinely lost. Everything afterwards depends on which column things land in, so it happens before anyone opens the code.
How a Takeover Actually Runs
Inventory and Access
Every account, key and service listed with an owner against it. Access requested politely and in writing from the previous developer, because most handovers are ordinary and only feel adversarial after they have gone quiet. Where they have already stopped responding, we move straight to the platform routes.
Fixed-Price Code Audit
A quoted, time-boxed inspection of what you have: can it be built and signed from a clean machine, what is holding it together, what is about to break, and what is quietly fine. You get a written report with effort ranges, and it is yours whether or not you continue with us.
The Verdict in Writing
Continue, stabilise then continue, or rebuild — with the reasoning and the cost of each. We are not paid more for one answer than another, and the recommendation is usually the least dramatic one.
Stabilise and Prove a Release
Before adding anything, we get one clean build out of the door under your accounts. Until an update has actually reached users, nobody knows whether the chain of keys and certificates truly works, and that is the single most valuable thing to establish early.
Forward Work
Then the actual job: the redesign, the missing features, the performance work, or the staged replacement of the parts that cannot be kept. On an app with live users this is released in slices rather than as one dramatic relaunch.
When the Signing Key Is Genuinely Gone
This is the question people ring us about at nine in the evening. The answer is different on each platform and it is worth knowing which situation you are in before assuming the worst.
Android
Play App Signing Usually Saves You
If the app is enrolled in Play App Signing, Google holds the key that signs what users actually install, and the key you upload with is a separate one. Losing that upload key is recoverable: you generate a new one and request a reset, and the listing continues as normal. Users never notice.
If the app predates enrolment and the original app signing key is genuinely lost, that listing can never be updated again by anyone. There is no appeal, because the platform has no way to prove a new key belongs to the same publisher. The only route is a new listing under a new package name, which means starting the install base, the ratings and the store ranking from nothing.
iOS
Certificates Regenerate; the Account Does Not
Distribution certificates and provisioning profiles are issued from your Apple developer account and can be revoked and reissued whenever you need them. A missing certificate file, an expired profile or a laptop that was wiped is an afternoon of work rather than a disaster, provided somebody can sign in to the account.
What is not recoverable by regenerating anything is access to the developer account itself. If the account sits in a previous developer’s organisation and they will not transfer the app or add you, no certificate helps. Recovering the account, not the certificate, is the real problem on iOS.
If the Accounts Are Not in Your Name
Both stores have a documented process for transferring an app or a developer account between organisations, and both require the current owner to start it. Ask plainly and in writing first — a surprising number of standoffs are an unpaid invoice or an unanswered email rather than genuine obstruction. If that fails, the platforms have support routes for a company that can evidence ownership of its own brand, and they are worth exhausting before you accept a new listing. The specific steps and eligibility rules change from time to time, so we check the current process rather than working from memory.
On any app we build or take over, the accounts go into your company name and stay there. You should never be in this position twice. The terms are set out on our ownership and NDA page.
What Comes Back, Sorted by How Much It Should Worry You
Findings are grouped by consequence rather than by technical category, because a list of two hundred issues in severity order is useless to somebody deciding a budget.
Blocks the Next Release
You Cannot Ship at All Right Now
- The project does not build from a clean checkout on current tooling
- Signing identity or store account access missing
- Source incomplete, or a binary dependency nobody has the source for
- A backend the app depends on that nobody can log into
Rejection or Delisting Risk
A Platform Deadline Is Coming for You
- Built against an older platform target than the stores now accept for updates
- Privacy and data declarations that do not match what the app actually collects
- Permissions requested that the app no longer uses, or uses without explanation
- Bundled libraries that have since fallen foul of a platform policy
- Account deletion, sign-in or payment flows that no longer meet store requirements
Users Are Feeling It Now
The Reason Your Reviews Look Like That
- Crash-free session rate and which handsets and OS versions carry it
- Cold start time on a mid-range device rather than on a new one
- Download size, and how much of it is assets nobody uses
- Battery and background behaviour, including anything polling when it should not
- What the app does with no signal, and whether it loses anything when it happens
- Secrets, tokens and keys stored somewhere they can be read off the device
Leave It Alone
What Was Done Well
- Screens that work and that your users already know how to use
- A data model that has survived real use, however plain it looks
- Edge-case handling that only exists because somebody hit the edge case
- Integrations that are boring and have not broken in two years
Categories, not a fixed list. What the audit finds in your app depends on your app, and the report names the good parts as specifically as the bad ones.

Rebuilding Is Usually the Wrong Answer
Every developer who inherits somebody else’s code wants to rewrite it. It is more enjoyable, it is easier to estimate, and it conveniently makes the new team responsible for nothing that came before. It is also, most of the time, the more expensive route to the same place.
A live app contains a great deal of knowledge that is not written anywhere: the tax rule somebody patched in, the one carrier whose network needed a longer timeout, the field that has to accept a format nobody documented. A rebuild deletes all of it and finds it again through support tickets from the people who were previously happy.
And while it runs, you are paying for two apps: the new one nobody can see yet, and the old one that still needs keeping alive.
When We Say Continue
- It builds, it signs, and a release can be made this month
- The framework is current, or has a documented upgrade path
- The complaints are about specific screens and behaviours, not about everything
- You have real users whose data and habits are worth protecting
- A redesign can be delivered on top of the existing foundations
When a Rebuild Is Genuinely Right
- The project cannot be built and signed at all, and the missing pieces cannot be reconstructed
- It sits on a framework that is abandoned with no migration route
- Every small change costs more than the same change would in a fresh codebase
- The app is small enough that rebuilding is weeks, not quarters
- The product itself is changing so fundamentally that little of the old behaviour survives anyway
There is a middle path that suits most inherited apps: keep the shell, the accounts and the listing, and replace the app a screen or a module at a time. Each replacement ships as a normal update, users get improvements continuously instead of waiting for a relaunch, and if the plan changes halfway through you still have a working app rather than two half-finished ones.
Users, Data, Ratings and the Listing
The three things people most often lose during a takeover, and how each is avoided.
Nobody Signs Up Twice
Account identifiers stay stable and the old sign-in method keeps working alongside the new one for a transition period. Anyone already signed in stays signed in through the update. Forcing an existing user base to re-register is the fastest way to turn a redesign into a churn event.
On-Device Data Migrates Once, Carefully
Local databases are migrated on first launch after the update, tested against real exported data rather than a clean install, and written so an interrupted migration resumes rather than corrupts. This step deserves the caution: you cannot roll back a version somebody has already installed.
Update the Listing, Never Replace It
Same identifier, same signing identity, same listing. Ratings, review history, install base, store URL, deep links and accumulated search ranking all carry forward. A second listing starts every one of those at zero, and it is a last resort forced by a lost key rather than a shortcut.
Staging the Redesign So You Do Not Lose the Users You Have
A complete visual overhaul delivered in one update is the most reliable way to generate a spike of one-star reviews from people who were perfectly happy the day before. They are not objecting to the design; they are objecting to not knowing where anything is any more.
- Keep the main task in the same place, even when everything around it changes
- Release through a staged rollout and watch the review stream, the uninstall rate and the funnel at each step
- Put the new behaviour behind remote flags so it can be turned off without a submission
- A short, honest note on first launch explaining what moved, not a five-screen tour
- Reply to the reviews in the first fortnight, because the ones you answer often get edited
Takeover Questions
The previous developer has stopped replying. Can we still update the app?
Usually, but how easily depends on one thing: whose name the developer accounts are in. If the Apple and Google accounts belong to your company and the previous developer was only added as a user, you remove their access and carry on. If the accounts are in their name, the app legally sits in their organisation and you need either their cooperation or a platform transfer process. Both stores have a route for moving an app or an account between organisations, and both need action from the current owner. Where that cooperation genuinely never comes, the remaining path is a fresh listing under your own account, which costs you the install base, the ratings and the existing links. That is why we start every takeover with the account inventory rather than with the code.
We cannot find the Android signing key. Is the app finished?
Not necessarily, and this is where the two platforms differ sharply. On Android, if the app is enrolled in Google Play App Signing then Google holds the key that signs what users install, and losing your upload key is recoverable through a reset request — you generate a new one and carry on updating the same listing. If the app is not enrolled and the original app signing key is genuinely gone, no new build can ever update that listing, and the only route is a new listing under a new package name. On iOS the picture is better: certificates and provisioning profiles are generated from your Apple developer account and can be revoked and reissued at will, so a lost certificate file is an inconvenience. The thing you cannot regenerate on either platform is access to the account itself.
Will we lose our star rating and reviews if you take over?
Not if we update the existing listing, which is the plan in almost every case. As long as the app keeps the same bundle identifier on iOS or the same package name on Android and is signed with the same signing identity, a new version is an update: installed users get it automatically, the ratings history stays, the store URL stays, the deep links keep working and whatever search ranking the listing has accumulated is preserved. Publishing a second listing instead resets all of that to zero on day one. A new listing is a last resort forced by a lost signing key or an unrecoverable account, never a convenience.
Should we rebuild from scratch or keep the code we have?
Keep it, more often than people expect. A working app that annoys you still contains years of small corrections for real-world cases nobody wrote down, and a rebuild throws all of them away and rediscovers them one support ticket at a time. A rebuild also produces nothing a user can see for months, while the old app still has to be maintained alongside it. We recommend rebuilding when the project genuinely cannot be built and signed any more, when parts of the source are missing, when the framework it was written in has no upgrade path left, or when the app is small enough that a rebuild is a few weeks rather than a few quarters. Otherwise we stabilise what is there and replace it in pieces.
Will existing users have to create their accounts again?
They should not, and we treat that as a requirement rather than a nice outcome. Account identifiers stay stable, the old authentication method keeps working alongside the new one for a transition period, and anyone already signed in stays signed in through the update. Data held on the device is migrated on first launch after the update, which is the step that needs the most care: a device migration cannot be rolled back, because you cannot un-install a version somebody already has. The harder case is an app where accounts were anonymous and tied to the device or to a local database — there we design a claim flow rather than pretending the data can always be matched to a person.
What does the audit cost and what do we get from it?
It is quoted as a fixed price before we start, based on the size of the codebase and how much of it exists, so there is no open-ended hourly meter. What you get is a written report rather than a conversation: what stops you shipping today, what will get the app rejected or delisted at the next platform deadline, what your users are already feeling in crashes and start-up time, and what is genuinely fine and should be left alone. Each item carries an effort range. The report is yours to keep and to show to another developer whether or not you hire us, and it names the parts of the existing work that were done well, because most inherited codebases have some.
The app was built in a framework nobody supports any more. What now?
First we establish whether it still builds at all against current platform tooling, because that is the difference between an inconvenience and a dead end. An app in an abandoned framework often keeps running on phones for a long time while quietly becoming impossible to update, and the deadline that finally forces the issue is usually a platform requirement rather than a user complaint. If a supported upgrade path exists we take it. If not, the honest recommendation is a rebuild in something current, staged so the existing listing, users and ratings carry across rather than starting again beside them.
Where a Takeover Usually Goes Next
Testing & QA
An inherited app rarely has a test suite. Establishing what actually works, on which handsets, comes before changing anything.
Learn moreApp UI/UX Design
The redesign itself, staged around the habits your existing users already have rather than starting from a blank canvas.
Learn moreSupport Plans
Most apps end up needing a takeover because nobody was maintaining them. This is how that does not happen again.
Learn moreSend Us Whatever You Still Have
A repository, a store link, an old contract, or just the name of the app. We will tell you what is recoverable and what a fixed-price audit would cover.