FAQ
The most common questions developers ask while working on FoxTalk. Anything not covered? Open an issue on GitHub.
Q · Which Flutter / Dart SDK version should I use?
Match the Flutter version in pubspec.lock. The main repo is verified on Flutter 3.x / Dart 3.x. Avoid jumping major SDK versions — if you must upgrade, run analyze + a real-device smoke test on a feature branch first.
Q · What's the difference between main.dart, main_free.dart, and main_pro.dart?
main.dart is the default entry, using app_modules.dart to register all 15 extension modules. main_free.dart uses module_profile_free.dart and registers only the core modules — . main_pro.dart uses module_profile_pro.dart . Day-to-day development uses main.dart.
Q · Why use packages/wukongimfluttersdk_patched instead of the pub version?
The upstream wukongimfluttersdk has a few cross-platform / edge-case bugs (e.g. message decode exceptions, a readInt String-index crash with reply messages). FoxTalk vendors a patched copy in-tree via pubspec_overrides. The patches go back upstream as PRs — once they land, we switch back to pub.
Q · How do I switch between prod and dev backends?
AppConfig defaults to https://your-server.example (prod) — suitable for TF / App Store / Release. For local development against a LAN backend, override with flutter run --dart-define=CHATIM_SERVER_BASE_URL=http://<LAN_IP>:8090. See /dev/config.
Q · How do I fix iOS aps-environment errors?
Usually a Xcode automatic-signing entitlements mismatch. Confirm Runner target → Signing & Capabilities is set to your team (e.g. <YOUR_TEAM_ID>), the Push Notifications capability is added, and the Bundle ID com.example.app has Push Notifications enabled in the Apple Developer console.
Q · Which IP should a real device use to reach a local server?
Use your computer's LAN IP (on macOS: ipconfig getifaddr en0) — not 127.0.0.1 / localhost (which points to the phone itself). Default ports: WuKongIM TCP 5100, WS 5200, Go API 8090. Make sure your firewall allows them.
Q · How do I add a new extension module?
Five steps: add ID constants in module_ids.dart, create lib/src/<module>/<module>_module.dart implementing FeatureModule, write the module source, import + register in app_modules.dart, and smoke-test on a real device. See /dev/modules.
last updated · 2026-06