FAQ
If this page does not answer your question, you can submit an issue on our GitHub repository, join our QQ Group 729013783, or email us at [email protected].
Business Questions
Can hot-updated apps pass App Store reviews?
You might have heard mixed information, but extensive practical experience shows that hot updates currently successfully pass App Store and other app market reviews. The only caveat: do not publish hot updates while your app is under review, and ensure reviewers do not see update pop-ups or download prompts. If you follow this rule, you will pass smoothly.
Can it be used overseas?
Yes. We operate high-speed CDN nodes both domestically and internationally.
What can be hot updated? What cannot?
App modifications fall into two categories:
- Cannot be hot-updated — Native modifications, i.e., changes requiring compilation to take effect:
- Any modifications, additions, or deletions inside the
ios/orandroid/folders. - Updating or modifying third-party native modules.
- Any modifications, additions, or deletions inside the
- Can be hot-updated — Non-native modifications, i.e., changes requiring no compilation that take effect upon reload:
- JS code modifications, including pure-JS third-party libraries.
- Assets that can be
require/imported within JS code, such as images.
Note: Even though assets can be hot updated, downloaded update assets are served via the file:// protocol. Certain third-party modules might not support reading from file:// URIs.
The update downloads successfully, but after restarting it rolls back. What happened?
If an update succeeds but rolls back on reboot, it usually means one of two things:
- You didn't correctly configure bundleUrl during setup.
- (Only on Cresc v9 or lower) You didn't correctly call
markSuccess(). In v10+, the SDK handles this automatically.
If you are absolutely sure both steps were executed perfectly, please leave us feedback in our Issues section.
Error: "Hot update paused, reason: Build timestamp mismatch."
Every time you compile a native package, a timestamp (buildTime) is injected into it (viewable using cresc parseIpa or cresc parseApk). If you distribute this package to users and want them to receive OTA updates, you must first upload the native package to the Cresc server. The server records this version number and build time for subsequent comparisons.
For example, suppose I compile and upload v1.0 (Package 1A). Later, for some reason, I rebuild without changing the version string (Package 1B), but I don't upload it. These two packages have the same version string but different build timestamps. Three scenarios might follow:
- I forgot I uploaded
1A,1Bhas no actual changes, and no users have installed it yet. Throw away1Band let users install1A. - I distributed
1Bto some users without uploading it. Users on1Aget updates, while1Busers get paused updates due to a mismatch. To fix this, you either force1Busers to reinstall1A, or publish a strictly higher version string (e.g.1.1), upload it to Cresc, and deletev1.0records. This causes both groups to receive a mandatory native upgrade prompt. - I know I uploaded
1A, but I made native changes and built1B. Uploading1Bnow triggers a version conflict because1.0already exists. Therefore, you must increment the native version, upload it to the server first, and then distribute it to users.
Remember: Whenever compiling native releases: 1) increment the version string, 2) upload to Cresc servers. Only then can OTA updates function normally.
If you use the Premium, Professional, or Enterprise VIP plans, you can enable "Ignore Build Timestamp" in the dashboard's App Settings. This ignores timestamp comparisons entirely, checking only the version string. It opens more tolerant update flows, suitable for managing many distinct distribution channels, though it may consume extra traffic bandwidth.
Billing Questions
Which plan should I choose?
There's no need to stress: start directly with a risk-free 7-day Professional trial upon verifying your registration. All plans use the same SDK and interface workflows. If your current limits don't meet your metrics later, you can seamlessly upgrade by paying only the prorated difference for the elapsed time period, without hidden fees.
Currently, the only gated exclusive feature is Ignore Build Timestamp, which permits wider distribution channels but may increase DNS calls. It is exclusively available to Premium, Professional, and Enterprise VIP tiers.
Can I trial a paid version first to evaluate its effectiveness?
Upon account verification, you will automatically receive a 7-day Professional trial. If you require a longer evaluation window, send your username, email, and company/personal title to [email protected] with the subject "Cresc Trial Extension Request" and we will consider extending it.
During the trial, you can either renew Professional or upgrade. To purchase lower tiers, wait until the trial expires or contact support.
How are quotas calculated specifically?
Quotas measure four domains:
- Number of creatable Apps (iOS and Android count separately).
- Number and size of Native Packages (Calculated per app). Native packages refer to the baseline APK/IPA uploaded by
cresc uploadIpa/uploadApk. - Number and size of Update Packages (Calculated per app). Update packages refer to
.ppkbinaries generated viacresc bundle. Note: this is not what users download. Users download incremental diffs, which are vastly smaller. - Total Daily Update Check Quota (Aggregated across ALL apps under your account). The system increments this metric every time a user opens your app and polls checking for updates. If this limit is exceeded during the day, the API stops returning updates until resetting at midnight.
Refer to Best Practices for advice on mitigating limits safely.
Limits #2 and #3 apply to individual applications independently, while #4 aggregates under the account total. See our Pricing Table for authoritative info subject to operational variations. Locked-in accounts avoid fluctuating costs upon timely renewal.
If I hit my quota, does the system break?
If you hit application, Native Package, or Update Package caps, you will be blocked from new creating/uploading actions. However, existing end-users will still request and download existing patches normally without any interruption. You must either upgrade your tier, or prune old apps/packages to free up storage slots. If Native/Update sizes exceed MB limit metrics, the upload will fail. Upgrade your tier, or practice strict asset Optimization. If Total Daily Checks hit their cap, the API refuses queries and returns an empty payload response, leaving apps stuck on previous states until midnight resets quotas. Either upgrade tiers or adjust built-in update schedules.
Can I upgrade just a single limit item independently?
If you only need to raise one specific limit without adopting an entire larger tier (applicable for Premium + accounts only), reach out via [email protected] or QQ Support (34731408). Provide requirements to receive bespoke quotes.
After a paid plan expires unrenewed, do my existing apps continue functioning?
After expiration, accounts degrade automatically into the Free Plan tier limitations. If preexisting data exceeds free caps, you won't be authorized to launch new updates or bind properties unless excess data is wiped out down below threshold limits. Users holding old patches won't mysteriously lose access, however.
How do I receive dedicated human technical support?
Email screenshots of your completed billing invoice detailing your username directly to [email protected] while noting your primary IM contact preference (QQ, WeChat, etc.). Once matched against database records, an integration engineer will friend request you directly.
How do I claim Official Invoices (Fapiao)?
Email explicit invoice requests detailing company details to [email protected] accompanying email registrations + billing receipt snapshots. Regular automated e-Invoices issue normally to registered emails categorizing 'Software Services'. Direct physical postage requests must supply an address; cost applies towards receiver Cash-On-Delivery policies. Ping QQ 34731408 if no action manifests 3 business days post-email transmission.
Can I execute manual wire transfers via Banking Networks?
Yes. Refer to Pricing Boards, then wire required funds precisely toward:
Email screenshots validating completed successful transfer transactions alongside account registration email pointers explicitly referencing [email protected] . Funds processing clears within 1 operational business day.
Is monthly-recurring payment structure available?
Users wanting monthly deductions must query QQ Support Rep 34731408 directly. Monthly tiers strictly cost Annual Rate / 8. Example: A tier costing 800 RMB yearly yields ~100 RMB monthly commitments. Monthly payers must eclipse 500 RMB threshold minimums to qualify for Official Invoices (Fapiao). Enterprise VIP tier prohibits monthly billing structures.
Enterprise Placements
Should your metrics scale past heavily populated DAU bases demanding over 1 Million daily queries consistently sweeping arrays of multi-channel deployments, we strongly endorse pivoting structures towards optimized Enterprise VIP Placements.
Enterprise parallels fundamental constraints akin closely to Professional tier limits alongside significantly expanded Daily Aggregations thresholds.
Prices follow:
Execute queries & discussions handling integration frameworks connecting deeply toward backend interfaces by speaking against Sales @ QQ Support 34731408.