Time to say goodbye to RevenueCat
I used to be a loyal user of RevenueCat. Every APP I made is connected with RevenueCat SDK. RevenueCat greatly improves the development speed of my APP. As well as the App Store API optimized by its SDK, I was deeply attracted to it. But now (December 2024), things have changed a bit.
On December 13, 2024, users in my product feedback channel reported that the paywall of my APP is down, and they could not subscribe and restore purchases. At first, I thought it was just a simple network problem, but as more and more news appeared on social media, I was surprised to find that RevenueCat is not accessible in the mainland of China, not only their API, but also their background website.
Millions of developers and users have been affected by this kind of force majeure. To be frank, this isn’t an issue caused by RevenueCat. The reliability of internet connectivity in mainland China has always been questionable. However, the prolonged period of comfort and tranquility had temporarily made me forget about the elephant in the room. Eventually, at some point—whether sooner or later—it has grown into a significant problem.
When the issue occurred, I followed RevenueCat’s official emergency solution and released a hotfix, proxying the RevenueCat SDK’s base URL to an alternative domain. This temporarily resolved the problem. However, I am fully aware that this cannot be the end of it—there’s still more work to be done.
Now I will treat RevenueCat as a form of technical debt I’ve incurred. Due to my previous laziness, I’ve paid a price for this decision. Now, I need to revisit and relearn the relevant knowledge of StoreKit 2
, aiming to migrate my app to a more self-controlled tech stack as soon as possible.
Relying on third-party libraries or SaaS solutions is an excellent way to accelerate development and deployment. However, alongside the convenience, we must also bear certain costs. Only by wisely assessing the risks and preparing contingency plans can we make our business more robust and resilient.
And what, Gul'dan, must we give in return?