Android Setup & SDK

Add the TesterBuddy Android SDK for crashes and shake-to-report feedback, then connect Google Play Console so testers reach your beta build automatically.

📦 JitPack 🤖 API 24+ ⏱ ~10 min setup 🆓 Free

What this guide covers #

This guide covers two parts of Android beta testing on TesterBuddy: the Android SDK (crashes, shake feedback, tester identification in your app) and Google Play Console setup (automatic beta access for testers on the Play Store).

📦
Android SDK
Add via JitPack — crash reports, shake-to-report, ANR detection. No manual AAR upload.
🔄
Automatic enrollment
Testers join a shared Google Group. Play Console grants beta access automatically.
💬
Full feedback loop
SDK feedback lands in your dashboard and tester chat threads.
🆓
Free & open
SDK and Play Console setup are free. No invite codes for the tester group.

The flow #

Here's what happens behind the scenes once you complete the setup:

  1. 1
    Tester registers on TesterBuddy
    When a user creates a TesterBuddy account, they are prompted to join the TesterBuddy Google Group during onboarding.
  2. 2
    Tester finds your app
    They browse the app listing, read the description and screenshots, and tap "Join Testing".
  3. 3
    Play Store beta unlocks
    Because the tester is already in the Google Group you added to Play Console, the beta opt-in link in the Play Store becomes active for them immediately.
  4. 4
    Feedback comes in
    Testers send feedback, respond to surveys, and chat — all inside TesterBuddy. You see everything in your developer dashboard.

What the Android SDK does #

The TesterBuddy Android SDK is a Kotlin library you add to the app you're testing. It sends crashes, ANRs, and shake feedback to your TesterBuddy dashboard — the same pipeline as the iOS and Web SDKs.

ℹ️
No manual upload. You do not upload an AAR or package file anywhere. Add the dependency from JitPack in Gradle. The repo owner may need to trigger the first build at jitpack.io once; after that, Gradle resolves it automatically. Optionally tag 1.0.0 on GitHub for a stable release.
💥
Crash reporting
Uncaught exceptions saved locally and sent on the next launch.
📳
Shake feedback
Tester shakes the device → screenshot + message → your chat thread.
🔴
ANR detection
Main thread blocked ≥ 5 seconds is logged with screen context.
👤
Auto tester ID
Reads tb:{token} from clipboard when tester starts from the TesterBuddy app.

Installation (JitPack) #

The SDK is published from GitHub via JitPack. Requirements: Android API 24+, Kotlin. The SDK manifest declares INTERNET for you.

1. Add the JitPack repository

In settings.gradle.kts (project-level):

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://jitpack.io") }
    }
}
2. Add the dependency

In app/build.gradle.kts:

implementation("com.github.DavidTereba:testerbuddy-android-sdk:1.0.0")
💡
First-time JitPack build: Open jitpack.io/#DavidTereba/testerbuddy-android-sdk and click Get it if Gradle cannot resolve the artifact yet. Creating a GitHub release tag 1.0.0 is recommended for production apps.

API key from dashboard #

Your SDK authenticates with the app's web API key (web_api_key in the database). Events are sent to POST https://testerbuddy.app/api/sdk/ingest with header x-tb-key.

To find the key: open your app in the TesterBuddy dashboard → app detail → copy the SDK / Web API key (same key used for the Web SDK on web apps).

⚠️
Keep the key secret in release builds — treat it like any API credential. Use BuildConfig or local properties, not committed plaintext in public repos.

Quick start #

Call configure in your Application.onCreate() as early as possible. That enables crash reporting, shake feedback, session tracking, and announcements.

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        TesterBuddy.configure(
            context = this,
            apiKey = "YOUR_WEB_API_KEY"
        )
    }
}
Track the current screen

In each Activity, set the screen name so crashes and feedback include context:

override fun onResume() {
    super.onResume()
    TesterBuddy.setScreen("HomeScreen")
}
All configure options
TesterBuddy.configure(
    context = this,
    apiKey = "YOUR_WEB_API_KEY",
    userId = null,                  // optional manual tester id
    enableAnrDetection = true,
    enableNetworkMonitoring = false, // use logNetworkError() manually
    enableSessionTracking = true,
    enableAnnouncements = true,
    debugLogging = false
)

Crash reporting #

Enabled automatically after configure(). Uncaught exceptions are written to disk and uploaded on the next app launch, so nothing is lost if the device was offline during the crash.

Captured data includes exception type and stack trace, device model, Android version, app version, current screen (if set), and tester identity (when known).

Shake feedback #

When a tester shakes the device, the SDK captures a screenshot of the current screen first, then opens a fullscreen feedback overlay (Bug / Idea / Other chips, screenshot thumbnail, message field). The report is ingested as SDK feedback (source: android_sdk) and appears in the tester's feedback thread — you get a push notification like any other tester message.

Shake detection uses accelerometer delta (~2.2g). For development without shaking, call TesterBuddy.triggerFeedback().

💡
No extra UI code is required beyond configure(). Shake detection starts when the SDK is configured with a valid API key.

Session tracking #

Enabled by default. Each foreground visit sends a session start event when the app becomes visible and a session end event when it goes to background. Events are paired by foregroundSessionId (one visit) while installSessionId correlates all events from the same install.

Key Description
sessionEventstart or end
foregroundSessionIdUUID for this foreground visit
installSessionIdUUID for the app install
launchCountProcess launch number
durationSecondsSession length (on end)
crashedLastSessiontrue if previous session ended in a crash
totalSessionSecondsCumulative foreground time for install
startTypecold or warm
lastScreenLast screen from setScreen()
deviceModel, locale, networkTypeDevice and environment context

View session KPIs and per-session detail in the TesterBuddy app under Events → Sessions.

Event types #

Type Trigger Dashboard
crashUncaught exceptionCrashes
anrMain thread blocked 5s+ANR
feedbackShake deviceFeedback
sessionForeground lifecycleSessions
customTesterBuddy.log()Custom
network_errorlogNetworkError()All / grouped

Tester identification #

Linking events to a specific tester helps you see who hit each crash or ANR in the dashboard.

Automatic (recommended)

When a tester taps Start Testing in the TesterBuddy Android app, a one-time token tb:{uuid} is copied to the clipboard. On first launch of your app, the SDK reads and exchanges it (up to 5 clipboard reads per install).

Deep link

Handle URLs that include ?tb_tester_id=:

// In Activity handling VIEW intents:
TesterBuddy.handleUri(intent?.data)
Manual
TesterBuddy.setUserId(123)   // after your login flow
TesterBuddy.setUserId(null)  // on logout

Screen tracking & custom logs #

TesterBuddy.setScreen("CheckoutScreen")

TesterBuddy.log("Onboarding completed", metadata = mapOf("step" to "3"))
TesterBuddy.logNetworkError("https://api.example.com/items", statusCode = 503)

ProGuard / R8 #

If you use code shrinking, add this keep rule:

-keep class app.testerbuddy.sdk.TesterBuddy { *; }

Full API reference and sample app: GitHub README. Build the sample with ./gradlew :sample-app:assembleDebug and set TB_API_KEY in sample-app/build.gradle.kts for live testing.

Setting up Play Console #

This is a one-time task. Once the group is added, it works for all future testers automatically.

  1. 1
    Open Google Play Console
    Go to play.google.com/console and select your app.
  2. 2
    Navigate to Testing
    In the left sidebar, go to Testing and choose your track — Open testing, Closed testing, or Internal testing.
  3. 3
    Add the TesterBuddy Google Group

    In the Testers tab, click "Add email list" and enter the following group address:

    Save the email list and then click "Save changes" on the testing track.

  4. 4
    Publish your testing track
    Make sure your testing track has an active release. Testers will only be able to opt-in once a build is available.
ℹ️
Already have a testing track? You can add the email list to an existing track without creating a new release. Just go to the Testers tab of your current track and add the group.

About the Google Group #

TesterBuddy uses a single shared public Google Group for all Android testers. This simplifies setup — you only need to add one email list to Play Console, and all TesterBuddy users on Android are covered.

Group details
  • Email: testerbuddy-tester-group@googlegroups.com
  • Visibility: Public — anyone on the web can view and join
  • Membership: Testers join during TesterBuddy onboarding
  • Owner: TesterBuddy (managed by the TesterBuddy team)
💡
Want to join the group yourself? Visit groups.google.com/g/testerbuddy-tester-group and click "Join group".
⚠️
Don't use your own private group. Play Console requires a publicly accessible Google Group for beta testing. TesterBuddy's shared group is already configured correctly.

Which track to use? #

Google Play Console has three testing tracks. Here's when to use each:

Track Testers Recommended for
Internal testing Up to 100 Early builds, core team only
Closed testing Custom groups Recommended — add the TesterBuddy group here
Open testing Unlimited Fully public beta, anyone can join
ℹ️
We recommend Closed testing. It gives you control over who gets access while still allowing all TesterBuddy users to opt-in through the group.

Verify it works #

After completing the setup, here's how to confirm everything is working:

  1. 1
    Check Play Console
    Go to your testing track → Testers tab. You should see testerbuddy-tester-group@googlegroups.com listed as an email list.
  2. 2
    Test with your own account
    Join the TesterBuddy Google Group with a personal Gmail account, then search for your app in the Play Store. You should see the option to opt-in to the beta.
  3. 3
    Check TesterBuddy dashboard
    When a tester joins your app in TesterBuddy, they appear in the Testers section of your developer dashboard.
⚠️
Play Store can take up to 24 hours to reflect new tester group members. If a tester joined but can't see the beta yet, ask them to wait a bit and try again.

Joining an Android beta #

New to TesterBuddy on Android? Start on the public beta waitlist — we email onboarding steps before Google Play access. The Play link in the header is for testers who already completed that flow.

Then, to access each developer's beta build:

  1. 1
    Join the TesterBuddy Google Group

    During onboarding you'll be prompted to join. Or go directly to:

  2. 2
    Find an app and tap "Join Testing"
    Browse apps in TesterBuddy, open one you want to test, and tap Join Testing.
  3. 3
    Opt in on the Play Store
    Open the app's Play Store page and tap "Become a tester". The beta build will download automatically.
  4. 4
    Send feedback
    Use the app and share your experience directly in TesterBuddy — through the chat, surveys, or direct messages to the developer.
💡
Earn karma! Every piece of feedback you give earns karma points. The more you test, the higher you climb on the leaderboard.