FAQ

Licensing

How many apps can I build with one purchase? One website — but both its Android and iOS apps. A second website needs a second license. See license.md.

Can I move my license to a different domain? Yes, but it is a support action: the domain is locked the first time you set or activate it. Contact support and we release it for you.

Does my published app stop working if my license has a problem? No. License checks only affect the admin panel. Apps already installed on your users' phones are never disabled.

What happens if pmzpw.com is unreachable? Nothing for two weeks. Your panel keeps working through a 14-day grace period, then asks you to re-check once your connection is back.

Can I use it on localhost or a staging server? Yes. localhost, IP addresses and reserved TLDs are always free, and a staging subdomain of your licensed domain (staging.yoursite.com) activates without consuming your production slot.

Building the app

Do I need a Mac? For Android, no. For iOS, yes — Apple only allows iOS builds on macOS with Xcode. That is Apple's rule, not ours.

Do I need to know how to code? No. Everything is configured in the admin panel; you run one command (dart run tool/apply_config.dart) and then build. You never edit Dart, Kotlin, Swift or Gradle.

Google Play rejected my upload saying it is signed with a debug certificate. You have not created android/key.properties yet. Copy android/key.properties.example, fill in your keystore details, and rebuild. See android-build.md.

Do I have to rebuild the app every time I change a setting? Usually not. Colours, navigation, languages, WebView rules and permissions text are fetched from your backend at runtime. Only the app name, icon, splash, package/bundle id, version and Firebase files need a rebuild.

Can I customise the app beyond the panel? Yes — you get the full Flutter source. The panel covers the common cases; the code is yours to extend.

Backend

What hosting do I need? Ordinary shared hosting with PHP 8.2+, MySQL 8 / MariaDB 10.6+, Apache with mod_rewrite and HTTPS. No Docker, Node.js or Redis.

Does it work on nginx? Yes, but nginx ignores .htaccess, so you must add deny rules for the private folders yourself. The installer warns you and troubleshooting.md has the config.

Where is my data? Entirely on your own hosting. The only outbound call is the periodic license check to pmzpw.com, which carries no visitor data.

Is there a database backup feature? No — use your hosting panel's own backup tools, which are more reliable and already scheduled.

Push notifications

Are push notifications free? Yes. They go through Firebase Cloud Messaging, which has no cost at this scale, and you send them from your own panel.

I set up Firebase but nothing arrives. Check push-notifications.md. The usual causes are a missing APNs key on iOS, notifications not enabled on the Permissions page, or testing on an emulator without Google Play services.

Can I target specific users? You can target everyone, a platform, a language, or a topic. There is no per-user targeting — the app stores no user identity.

Store submission

Will my app be accepted? A WebView app that only wraps a website is at risk under App Store guideline 4.2 ("minimum functionality"). Use the native features — push notifications, deep links, biometric lock, downloads, offline handling — and describe them in your review notes. The Compliance page in the panel checks the mechanical requirements. Neither we nor anyone else can guarantee approval.

What do I need before submitting? A privacy policy URL, a support email, honest permission usage texts, an app icon and screenshots. The Compliance page lists what is still missing.

Support

What does support cover? Bugs in AppForge, setup problems and questions about the product. It does not cover custom development, changes to your website, or third-party services.

How long is support included? Per CodeCanyon's terms, 6 months from purchase, extendable at checkout. Your account page at pmzpw.com shows the exact date. Support expiring never disables your license or your app.