Integrate TestApp.io's rich suite of tools directly into your iOS applications. Capture feedback, monitor performance, and log crucial events with minimal effort.
TestApp.io SDK bridges your iOS application with the TestApp.io platform, enabling a deeper understanding of user interactions and app behavior. Through the TestApp.io Portal, you can easily monitor sessions, gather feedback, and track activities.
Minimum iOS deployment target is iOS 13.0
To ensure proper functionality of the TestApp.io SDK on iOS, your project's minimum iOS deployment target should be set to iOS 13.0 or higher. This is due to specific features and capabilities used by the SDK that are available from iOS 13 onwards.
To set the iOS deployment target, follow these steps:
General, find the or
Targetfield to iOS 13.0 or higher.
pod 'TestAppIOSDK', :git => 'https://github.com/testappio/ios-sdk.git'
Add necessary permissions to your app's
Provide access to save photos and videos in your gallery
Provide access to get photos and videos from your gallery
In your app's launch sequence (usually in
import TestAppIOSDK TestAppio.setup( configuration: .init( appToken: "YOUR_APP_TOKEN", //from portal.testapp.io -> Your app -> Integrations -> Sessions (SDK) environment: .dev // [.dev, .staging, .production] This reflects your app's environment, not TestApp.io's ) )
Collect your App Token from App -> Integrations -> Sessions (SDK)
To ensure you're benefiting from the latest features and optimizations, regularly update the TestApp.io SDK:
pod update TestAppIOSDKin your terminal.
Personalize user experience and accurately track interactions by identifying users with unique attributes.
||Unique identifier for the user in your database (required)||
||Length: 0-120 characters|
||Name of a user (optional)||
||Length: 0-120 characters|
|Email address of a user (optional)||
||Length: 0-255 characters|
||URL to an avatar image for the user (optional)||
||Length: max 255 characters|
||Additional traits of the user (optional)||
||Max 10 key-value pairs. Key: 40 chars, Value: 120 chars|
TestAppio.user.identify( userId: "U123456", //required name: "Jane Doe", //optional email: "[email protected]", //optional imageUrl: "https://url/to/sample-image.png", //optional traits: [ //optional "age": "30", "plan": "premium", "ab_test_variant": "variation_A" ] )
Traits are pieces of information about a user that you can include in an
identify call. These traits can be diverse, ranging from demographics like age or gender, account-specific details like the user's subscription plan, or even data related to A/B test variations the user has encountered. The purpose of traits is to provide additional context and information about your users.
Including traits in your
identify calls can be essential for personalization, analytics, and targeting. They help you understand your users better, segment them effectively, and tailor their experience based on their characteristics.
Make it effortless for users to provide feedback by showcasing the TestApp.io bar.
Feedback Collection: Use
TestAppio.bar.show() when you want to prompt users for feedback or when a particular app event or interaction occurs that you want insights on.
Custom User Experiences: Use
TestAppio.bar.hide() to hide the feedback bar during specific app interactions or when you don't want to distract users, for instance, during a payment process.
// To display the feedback bar TestAppio.bar.show() // To hide the feedback bar TestAppio.bar.hide()
Monitor user activities, track errors, and understand screen transitions to optimize the app experience.
||Name of the event/error/screen||
||Length: 1-120 characters|
||Additional event details (optional)||
||Max 10 key-value pairs. Key: 40 chars, Value: 120 chars|
// Logging a custom event TestAppio.log.event(.init( name: "Item Purchased", parameters: ["item": "Laptop", "value": "$1200"] //optional )) // Logging an error TestAppio.log.error(.init( name: "Checkout Error", parameters: ["error": "Payment gateway timeout"] //optional )) // Logging a screen transition TestAppio.log.screen(.init( name: "User Profile", parameters: ["access": "logged-in"] //optional ))
The reset method allows you to reset the user's identity, effectively clearing their identification data.
Use this when user changes like Signout / Logout
The TestApp.io SDK employs a "continuous sessions" approach. This means that if a session becomes full or meets specific criteria, a new session is automatically initiated for the device, ensuring uninterrupted data capture.
The TestApp.io SDK seamlessly integrates with your app's lifecycle, automatically capturing key application events.
|Session start||Marks the beginning of a new user session.|
|Session end||Indicates the end of the current session.|
|Session expired||Triggered when a session is deemed too old and is automatically ended.|
|Session resumed||Indicates that a previously paused or backgrounded session is resumed.|
|Application opened||Triggered when the app is launched.|
|Application active||Indicates that the app is in the foreground and receiving events.|
|Application foreground||Triggered when the app transitions from the background to the foreground.|
|Application backgrounded||Triggered when the app goes into the background.|
|Application terminated||Indicates that the app has been terminated, either by the user or the system.|
In addition to application events, the SDK diligently manages session lifecycle events, ensuring insights into user session behaviors.
Network unavailable? No worries. The SDK is built for resilience. In scenarios where the user's device is offline, the SDK will continue to capture all events, errors, and feedback. Once the network is restored, the SDK will automatically send the accumulated data in batches, ensuring no data loss.
The SDK employs batching and compression to ensure optimal network usage. This means fewer requests, reduced data usage, and faster event delivery.
Q: Is the SDK intended for production apps? A: No, the SDK is not intended for apps on the store. The SDK will not work in production environments.
Q: How do I ensure accurate event tracking?
A: Initialize the TestApp.io SDK before any other invocation using the
TestAppio.setup(...) method as the first step in your app's launch process.
Q: What happens if I exceed the maximum allowed properties for events? A: Events that exceed the allowed number of properties or character limits for keys and values might be truncated or ignored.
Q: How does the SDK handle user identities?
A: While the
TestAppio.user.identify(...) method is optional, it's highly recommended. Identifying users aids in faster tester recognition, provides better context for feedback, and enhances overall data quality.
Q: Does the SDK produce any console outputs? A: Yes, the SDK prints specific information to the console for debugging purposes. This helps developers understand the SDK's internal workings and quickly diagnose potential issues.
Q: Are there any dependencies I should be aware of? A: No, the TestApp.io SDK does not have any external dependencies.
Q: Where can I find a sample app or demo? A: You can explore a practical implementation of the SDK in our sample application.
Q: Are there any known issues with the SDK? A: Currently, there are no known issues. However, we recommend regularly checking this section or our GitHub repository for updates.
Q: What is the status of the SDK? A: The SDK is currently in beta and available for all teams. Please note that this availability is subject to change. We are continually refining and improving, so we appreciate your feedback during this phase.
Q: Are there any limitations on the number of events, users, or devices? A: As of now, there are no set limitations on the number of events, users, or devices. We aim to provide a seamless experience, and we're continuously monitoring usage to ensure optimal performance.
Q: What should I do if I encounter issues with the SDK? A: If you face any issues or have suggestions, please create an issue on our GitHub repository or contact our support team at [email protected].
At TestApp.io, we deeply respect the privacy of our users and their end-users. Here are some of our commitments to ensure data privacy:
No Data Reselling: We commit that we do not, and will not, sell any data that is collected via the TestApp.io SDK.
No Data Sharing: We do not share any of the data collected through the SDK with third parties. Your data stays exclusively within the TestApp.io environment.
Minimal Data Collection: We only collect the data necessary to offer our services. This includes data required for feedback, monitoring, logging, and other functionalities of the SDK. We do not collect personal data unless explicitly provided by the developer or user.
Secure Data Storage: All data collected is securely stored in compliance with industry standards. We employ robust encryption practices to ensure the data's integrity and confidentiality.
Data Retention: We only retain the data for as long as it is necessary to provide our services. Older data is periodically purged to ensure privacy.
Compliance: We strive to ensure that our data collection and storage practices comply with international privacy regulations, including GDPR, CCPA, and others.
If you have any concerns or questions about privacy, please reach out to our team at [email protected].
Developers built TestApp.io to solve the pain of app distribution & feedback for mobile app development teams.
Join our community for feedback and support.
Check out our Help Center for more info and other integrations.
Happy Testing 🎉
|Last commit: 2 weeks ago|