Thunkable Docs
Build an AppDrag and Drop DocsSnap to Place DocsAcademy
Drag and Drop
Drag and Drop
  • What is Thunkable?
  • 🗺️Getting Started
    • Gen AI
      • Prompt Engineering
      • AI tools
      • AI Chatbot Helper
      • AI Template Generator
    • Getting Started Guide
    • Keyboard Shortcuts
    • Undo Redo
    • Thunkable Account
      • Account Management
    • Preview and Test your App
    • Versioning
    • Data Sources
      • Google Sheets Data Source
      • Airtable Data Source
      • Webflow Data Source
      • Local Table Data Source
    • Project Collaboration
      • Organizations
    • 🎓Sample Apps & Tutorials
      • Thunkable Community Forums
      • Sample Apps
      • Video Tutorials
        • Thunkable Live App
          • How to Test and Troubleshoot with Thunkable Live App
        • Data Source Tutorials
          • Connecting to Data Sources
            • Google Sheets
            • Local Table
          • Create Data in a Thunkable Data Source
          • Read Data in a Thunkable Data Source
          • Update Data in a Thunkable Data Source
          • Delete Data in a Thunkable Data Source
        • User Auth & Management
          • Firebase
            • User Sign-Up, Sign-In, and Auth
            • User Sign Out and Password Reset
          • Google
            • User Sign-Up, Sign-In, Sign-Out, and Auth
          • Apple
            • User Sign-Up, Sign-In, Sign-Out, and Auth
        • Projects
          • How to Save Versions of Your Thunkable Project
          • How to Copy and Customize Public or Sample Thunkable Projects
        • User Interface & Design
          • Screens
            • Save and Reuse Thunkable Screens
            • Change Thunkable Screens with a Button Click
            • Create Scrollable Screens in Your Thunkable App
          • Navigators
            • How to Use the Thunkable Stack Navigator
            • How to Use Thunkable Top and Bottom Tab Navigators
            • How to Use the Thunkable Drawer Navigator
            • Combine Figma Frames with Thunkable Navigators
          • Components
            • How to Use the Visibility Property to Create Modals in Thunkable
          • Data Visualization
            • Customize a Data Viewer
          • Text
            • Implement Text Input Validation
        • Alerts & Notifications
          • Display Alert Messages in Your Thunkable App
          • How to Create Three-Button Alert Messages
        • Files
          • Cloudinary
            • Store and Access Cloudinary Files in Your Thunkable App
        • Camera
          • How to Use the Device’s Camera
          • How to Use the Device’s Video Camera
          • Use the Device’s Camera as a QR or Barcode Scanner
        • Realtime Databases
          • Firebase
            • How to Read Data in a Firebase Realtime Database
            • How to Update Data in a Firebase Realtime Database
        • Advanced Blocks
          • Connect Your Thunkable App to a Web API
        • Thunkable Academy
          • Building Your First Thunkable App
            • Getting Started with Thunkable
            • How to Design a Thunkable App
            • How to Connect a Thunkable App to a Data Source
            • How to Make A Thunkable App Interactive with Blocks
          • Thunkable No Code App Creation Basics
            • Thunkable UI Components and App Features
            • Understanding Thunkable's Drag and Drop Block Builder
            • Design, Develop, Debug, and Deploy Your App
        • Hour of Code
          • 2021 - Build an Informational App
          • 2022 - Build a Scavenger Hunt App
          • 2023 - Build a Translator and Text-to-Speech App
        • App Building
          • How to Build a Translation App in Thunkable
          • How to Create an Image Recognition App with Thunkable
          • How to Create a Text-to-Speech App in Thunkable
  • 🎨App Design
    • User Interface (UI) Components
      • Basic Components
        • Button Component
        • Label Component
        • Rich Text Component
        • Image Component
        • Text Input Component
        • Layout Component
        • Group Component
      • Data Components
        • Simple List Component
        • Data Viewer Components
          • Data Viewer List Component
          • Data Viewer Grid Component
          • Custom Data Viewer
      • Input Components
        • Switch Component
        • Slider Component
        • Checkbox Component
        • Date Input Component
        • Time Input Component
      • Media Components
        • Animation Component
        • Video Component
        • Loading Icon Component
      • Embed Components
        • Web Viewer Component
        • Map Component
        • Canvas Component
        • PDF Reader Component
        • Rating Component
      • Modules
        • Introduction
        • User Guide
      • Generative AI
    • Screens
      • Save and Reuse Screens
      • Improve Thunkable Load Time
    • Navigators
      • Top Tab Navigator
      • Bottom Tab Navigator
      • Drawer Navigator
      • Stack Navigator
    • Figma Integration
  • 🛠️Blocks
    • Thunkable Blocks Overview
    • Core Blocks
      • Control Blocks
      • Logic Blocks
      • Math Blocks
      • Text Blocks
      • Lists Blocks
      • Color Blocks
      • Device Blocks
      • Objects Blocks
      • Variables Overview
        • Connect a Firebase Realtime Database
        • Variables Blocks
      • Functions Blocks
    • App Features Blocks
      • Speech Blocks
      • Sound Blocks
      • Share Blocks
      • Camera Blocks
      • Files Blocks
      • Sign In Blocks
        • User Sign Up, Sign In, and Authentication with Firebase
        • User Sign Up, Sign In, and Authentication with Google
        • User Sign Up, Sign In, and Authentication with Apple
      • Location Blocks
      • Push Notification Blocks
      • In-App Purchase Blocks (with RevenueCat)
      • Data Sources Blocks
      • Alerts Blocks
      • Timer Blocks
      • Sensors Blocks
        • Gyroscope
        • Magnetometer
        • Accelerometer
        • Location Sensor
      • Ads by AdMob
    • Advanced Blocks
      • Web APIs Blocks
        • CORS Policy
        • 🆓No Auth APIs
          • Update Data in a Data Source
          • CRUD Operations
          • Setting Headers
        • 📊Charting APIs
          • Create a chart template
          • Charting in Thunkable
      • Bluetooth Low Energy Blocks
      • OpenAI Services ChatGPT Integration Blocks
      • "Any Component" Blocks
      • JavaScript Web Bridge
  • ⚙️Settings
    • App Settings
      • Tablet View
    • Assets
    • Cloud Variable Viewer
    • Manage your Projects
      • My Projects Page
      • Thunkable Projects
      • Duplicate Project
      • Share Your App
      • Download Your App
        • Download Your App on iOS
        • Download Your App on Android
      • Add to Home Screen
      • Managing Project Storage
      • App Data Privacy
      • Delete Project
  • 📱Publishing
    • Overview
    • Publish to the Apple App Store
      • User Guide
      • Troubleshooting
      • Review Process
      • Tracking Usage Description
    • Publish to Google Play Store
      • User Guide
      • Troubleshooting
      • Review Process
    • Publish as a Web App
      • User Guide
      • Custom Domains
      • Troubleshooting
    • Testing
      • Testing on iOS via TestFlight
      • Testing on Android
    • Troubleshooting
      • Publishing Checklist
      • Generate Screenshots
  • 🎮Gaming
    • Gaming Overview
      • Canvas Label
      • Sprites
      • Sprite Gallery
    • Gaming Blocks
      • Events
      • Motion
      • Looks
      • Direction
      • Sensing
      • Add & Remove
      • Stage
  • 🗃️Additional Resources
    • Release Notes
      • Release Notes 2025
      • Release Notes 2024
      • Release Notes 2023
    • Troubleshooting
      • Can't Sign in to Thunkable?
      • FAQs
    • Minimum Requirements
    • Bugs and Product Feedback
    • App Services and Emulators
Powered by GitBook
On this page
  • TestFlight Overview
  • Testing Groups on TestFlight
  • Internal Testers
  • External Testers
  • Managing Different Tester Groups in TestFlight
  • TestFlight Key Features for Testing
  • Why TestFlight Is Great for iOS App Testing

Was this helpful?

Export as PDF
  1. Publishing
  2. Testing

Testing on iOS via TestFlight

TestFlight is Apple’s official beta testing platform that enables developers to distribute and test iOS, iPadOS, macOS, watchOS, and tvOS apps before they are publicly released on the Apple App Store. It provides a structured way for developers to invite users to test apps, gather feedback, and address issues before launching the app to the general public. TestFlight is accessible via the App Store Connect dashboard and the TestFlight app for testers.

TestFlight Overview

TestFlight allows developers to distribute both internal and external app builds, with the ability to manage different tester groups, track feedback, and analyze crash reports. It's highly useful for catching bugs, testing features, and ensuring the app runs smoothly across different devices and iOS versions.

Testing Groups on TestFlight

TestFlight offers two main categories of testers:

  1. Internal Testers (Up to 100 Testers)

  2. External Testers (Up to 10,000 Testers)

These categories allow developers to control who tests the app and when, depending on the phase of the app's development and the feedback required.

Internal Testers

  • Who: Team members or people who have access to the developer's App Store Connect account.

  • Number of Testers: Up to 100 internal testers, which includes the developer's team.

  • Purpose: This phase is typically for testing early builds of the app with trusted people within the organization.

  • Features:

    • Internal testers can access all builds of the app, which allows for more frequent testing and faster iteration of features.

    • Builds do not require Apple review before being distributed internally.

    • Each internal tester can test the app on up to 30 devices.

Best For: Developers who need quick feedback from their team, including QA engineers, designers, and stakeholders.

External Testers

  • Who: Anyone outside the core development team, including early adopters, friends, or the general public.

  • Number of Testers: Up to 10,000 external testers.

  • Purpose: Gather feedback from real-world users to identify bugs, performance issues, and UX improvements.

  • Features:

    • External testers can be invited via email or public links.

    • Apple must review the app build before it can be distributed to external testers, ensuring that it meets basic App Store guidelines.

    • Developers can create multiple tester groups (i.e., different segments of external users) to test different features or versions of the app.

    • Each tester can test the app on up to 30 devices.

    • Testers receive notifications when new builds are available and can provide feedback directly through the TestFlight app.

Best For: Larger-scale testing with users who closely represent your app’s target audience, or when you need broader testing to ensure stability across different devices and environments.


Managing Different Tester Groups in TestFlight

TestFlight allows developers to set up distinct tester groups for more controlled testing phases. These groups can be used to test different app features, versions, or builds simultaneously. Here’s how different tester groups work:

A. Internal Testing Groups

  • Customizable Groups: Developers can create different groups for internal testers (e.g., developers, designers, and QA).

  • Full Access to Features: Internal testers typically have full access to app features and updates.

  • Frequent Builds: Internal testers get access to every build uploaded to TestFlight.

B. External Testing Groups

  • Public or Private Access:

    • Email Invitations: Developers can invite specific testers via email, useful for private testing.

    • Public Links: Developers can generate a public link, which allows anyone to sign up and become a tester. This option is ideal for a broader beta test with more real-world users.

  • Targeted Testing Groups: Developers can create different external tester groups to test various parts of the app (e.g., A/B testing or feature-specific testing).

    • For example, one group might test an early feature, while another might test the app’s overall stability.

  • Limited Build Access: Developers can limit each group to specific builds of the app. This helps manage feedback and bug reports related to specific versions.

C. Phased Rollouts via External Groups

  • Developers can roll out new features or major updates to smaller external testing groups first to ensure stability before expanding the test to a larger group. This phased approach helps detect potential issues without affecting a large number of testers.


TestFlight Key Features for Testing

  1. Automated Notifications:

    • Testers are notified automatically via the TestFlight app when new builds are available, streamlining the testing process.

  2. Feedback Collection:

    • Testers can submit feedback directly through the TestFlight app by tapping the "Send Feedback" button. This feedback is sent to the developer via email and can include screenshots and additional notes.

    • Developers can view crash logs and tester feedback in App Store Connect.

  3. Crash Reporting:

    • TestFlight automatically collects crash logs and organizes them in App Store Connect. Developers can analyze these reports to fix bugs and improve app stability.

  4. Testing Multiple Builds:

    • TestFlight supports testing multiple builds of an app simultaneously. For example, you can release one version to a group of testers and a different version to another group to compare performance and feedback.

  5. Build Expiry:

    • TestFlight builds expire after 90 days, ensuring that testers are always using the latest version of the app. After a build expires, testers will no longer be able to test that version and must update to a new build.


Why TestFlight Is Great for iOS App Testing

  • Scalable Testing: TestFlight’s support for up to 10,000 external testers ensures a broad, real-world test of your app.

  • Efficient Feedback Loop: With built-in feedback collection, developers can quickly iterate based on tester insights.

  • Early Detection of Bugs: By distributing early builds to both internal and external testers, developers can catch bugs, crashes, and other issues before the public release.

  • Control Over Testing: Developers have complete control over which builds are tested by whom, enabling phased rollouts, feature-specific testing, or full app testing.

  • Faster Development Cycle: TestFlight integrates seamlessly with the Apple development ecosystem (Xcode, App Store Connect), speeding up the process of releasing and testing new features.

TestFlight provides flexible options for testing your app through internal and external testers, allowing you to identify and resolve issues before the app is officially published on the Apple App Store. The combination of real-time feedback, crash reports, and testing group management makes it a powerful tool for developers.

PreviousTestingNextTesting on Android

Last updated 8 months ago

Was this helpful?

📱