SDK Troubleshooting

The Specto SDK has measures in place to avoid negatively impacting the applications using it which can make it complicated to test locally, especially for release builds. This guide is intended to help navigate those constraints and troubleshoot potential issues.

All application types

  • Traces will not be uploaded while the device battery is low.
  • Crash on launch prevention: if the application exits during the Specto initialization for any reason, the SDK will be disabled until the next application update. This can be triggered by a real crash or by manually force-killing the application.

Debuggable applications (Android-only)

  • Specto SDK enabled by default.
  • Traces queued for upload immediately after they end.
  • Informational logging enabled.

Non-debuggable applications (Android), all iOS applications

  • Specto SDK disabled by default: will become enabled after a remote configuration is fetched, roughly one minute after the first launch.
  • Traces queued for upload when the applications goes to the background.
  • Informational logging disabled, warnings and errors only.

Recommended testing procedure

The recommended testing procedure, starting from a fresh installation:

  • Ensure the device has a reasonable battery charge (>20%).
  • Launch the application.
  • Wait about 1 minute, the remote configuration will be fetched thus enabling the SDK.
  • Force-kill the application.
  • Launch the application once again.
  • Go through instrumented flows, if any besides the startup.
  • Close the application by navigating to another one or the home screen.
  • Traces should appear on the dashboard shortly.

WorkManager configuration (Android-only)

The Specto SDK uses Jetpack's WorkManager framework to efficiently schedule background tasks. In most cases this will work without any changes on your part. However if your application also uses WorkManager and has customized its configuration, you'll need to consider that it may also run tasks from Specto and other libraries. Again, usually this is not a problem, but Specto could be impacted if, for example, you use a custom WorkerFactory.

If Specto's WorkManager tasks are prevented from running, it will be unable to collect and/or upload traces.