Community FAQ
How Users Register
- Users register with
email
andpassword
. - Required fields:
email
,password
,name
. Optional:bio
,image
. - We collect device metadata and approximate location from IP for security/anti‑abuse.
- Password reset is via email OTP.
iOS run bug
If you face this
error building IOS. What should I do if I have the following problem? [Failed to install the app on the device.Domain: The parent bundle has the same identifier]
- This comes from the ShareExtension. In Xcode, select
ShareExtension
target and update its bundle id to match your main bundle id with.ShareExtension
suffix. - For more info, check: share_handler
New features
- The app targets broad use cases. If you need custom features for your business, see Support for tailored work.
Stop ads
- Update ad settings from the admin panel, or set the flags in config as shown below.
Phone login
- The app ships with email/password auth to avoid vendor lock‑in. Phone OTP login is available in versions that support it.
Why not WebRTC for calls
- WebRTC requires expensive TURN/SFU infra and global distribution to maintain quality. Agora.io provides reliable, scalable calls with a free quota and lower operational overhead, so it’s used instead.
Call notifications
- Currently call notifications arrive like chat notifications. Full‑screen native call UI is being improved in upcoming updates.
Admin panel
- Admin panel will keep receiving user management improvements in updates.
Desktop voice recorder
- Desktop voice recording is disabled due to package limitations; will be revisited in future updates.
Bug while releasing Android (Your project requires a newer version of Kotlin)
- Fixed in recent releases. Configure Android release signing properly.
- Create
key.properties
with your keystore info:
storePassword=your storePassword
keyPassword=your keyPassword
keyAlias=your keyAlias
storeFile=/Users/hatemragap/super-up-keystore.jks
- If you are not publishing to Play right now, you can temporarily sign with debug keys. In
android/app/build.gradle
, replace release signing section per Flutter docs with:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
to Delete the signingConfigs{}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
Flutter state management
- Custom state management based on
ValueNotifier
and streams is used across the app.
Plan support requirements
- Firebase project (invite
hatemragapdev@gmail.com
temporarily for setup) - VPS with AVX support (2 vCPU, 2 GB RAM min, 100 GB SSD recommended)
- Domain name pointed to the VPS (wildcard optional). SSL will be configured (Let’s Encrypt).
- Agora.io account with 10$ billing (optional) can be done later
- Google Maps api key with place search enabled; it will require enable billing (optional) can be done later
- Google Ads banner IDs for Android and iOS (optional)
- App name, logo, and support email
- SMTP credentials for password reset (EMAIL_HOST, EMAIL_USER, EMAIL_PASSWORD)
- Backend can be deployed with CapRover or standard VPS (see Deployment doc)
- If publishing, add
hatemragapdev@gmail.com
to Play/App Store as needed during setup - Support applies to one product per purchase; additional products require separate plans