- My app crashes while offline, will I get the report?
- Will crashes be caught even after session stopped recording?
- Which architectures are supported?
- Which iOS platforms are supported?
- Am I required to use the TestFairy SDK?
- How do I fix "App could not be installed at this time"?
- Why do I see sessions by "User-1"?
- Why does app icon disappear right after download?
- Why linking fails with
ld: symbol(s) not found for architecture arm64?
- What's "You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE)" error?
- Push notifications work when installed from Xcode, but not with TestFairy. Why?
- What is the difference between in-house and enterprise certificates?
TestFairy keeps crashes on disk if it can't send them immediately. The next time the app runs, TestFairy will send out the saved crash reports and attach them to the appropriate sessions.
Session max-duration controls how much of the session will be recorded. Many developer won't be interested in video recording beyond the first 10 minutes. Crashes are caught regardless the max-duration limit.
In cases when the crash happened beyond the max-duration limit, the report will be attached to the session that was recorded.
TestFairy iOS SDK supports the following architectures (CPUs):
- i386 (simulator)
- x86_64 (simulator)
TestFairy SDK is a static library, thus it runs on any platform that uses XCode for compilation. For ease of integration, TestFairy is also available as:
- Xamarin binding (both 32-bit and 64-bit)
- .NET assembly (.DLL)
- .NET assembly via NuGET package
- Xamarin binding through Xamarin Component Store
- Unity plugin
- Adobe Air Extension (.ANE)
- PhoneGap / Cordova plugin
TestFairy platforms is for both distribution and for analytics. You can use both, and you can also use just one of them.
App distribution does not require integration of the TestFairy SDK and provides an easy-to-use platform for sending iOS IPA files to testers and colleagues in your enterprise. Simply upload an Ad Hoc or Enterprise signed IPA files and send e-mail invitation to the selected testers.
Analytics require integration of the SDK. This is a 2-minutes task and it involves adding just a single line of code to your project. With analytics enabled, you will able to see a video recording when your app is being used, as well as receive logs from the device, analyse usage by checkpoints or loading of view controllers and much much more. For more information, please follow the integration manual.
"App could not be installed at this time" is a generic error when iOS cannot install the download app on the device. The reasons vary, and may be one of these:
- Device's UDID is not included in the provisioning profile.
- Not enough disk space on device to install.
- Device's architecture (eg. ARMv7) is not supported by the app.
- Device's operating system version (eg. 7.0) is too low for the app.
- Device's platform mismatches (eg. iPad app on an iPhone.)
- Enterprise team not included in prefix in embedded.mobileprovision file.
- App is not signed with an Ad Hoc or Enterprise (in-house) certificate.
TestFairy has a Troubleshooting tool to guide the tester or developer through the debugging of such problems. Simple visit https://my.testfairy.com/my/troubleshooting using Safari on your iOS device and follow the instructions.
If all fails, please contact support by click on Support button in your account page. We do our best to help debug causes and improve our one-of-a-kind Troubleshooting tool.
When using the TestFairy iOS SDK, all sessions are anonymous. Without access to device information, TestFairy cannot tell what's the email address of the tester.
It does know to associate sessions by the same testers to the same User-1. Using a token that is stored when the first session was created, TestFairy can identify sessions by the same tester.
Furthermore, TestFairy support correlationId. This identifier is any string that makes sense to the developer (you). It can be an email address of the tester, their Facebook id number, or an identifier in your own database. Using the SDK, simply call
[TestFairy setCorrelationId:@"my-id-00000000"];, and this identifier will show in all reports, instead of the generic User-1 values. Use this correlationId as you see fit.
When downloading an iOS app, the iOS operating system will show a progress during downloading and installation. This progress looks like an analog clock, an empty circle becoming full.
After installation completes, the system then looks if the app being installed, is alread installed on the device. If it does, it replaces the old app, with the version recently downloaded. You may have this app icon in a different screen tab, or maybe inside a folder.
Tip: Pull down the view to reveal the Spotlight search dialog. You can type the name of the app, and it will locate it on your device, regardless of screen tab or folder.
On various Xcode project configurations, you might be receiving the following error when linking with TestFairy:
"_OBJC_CLASS_$_TestFairy", referenced from: ld: symbol(s) not found for architecture arm64
For those projects, please add
libTestFairy.a as a framework in your Build Settings.
Xcode7 introduced a new feature (virtual architecture) called
Bitcode. This is a short for LLVM Bitcode, which is a virtual machine architecture Xcode uses as an intermediate platform for compilation. Instead of compiling apps to armv7, armv7s, arm64 - Xcode can now create a single architecture and the AppStore will generate optimized binaries for mobiles. This will greatly reduce the IPA filesize as an iPhone6+ user won't be downloading the binaries needed for iPhone4 and vice-versa.
To compile an app with
bitcode, it is required that all libraries and frameworks used will have bitcode enabled as well. Alternatively, you can disable ENABLE_BITCODE in your Xcode project. As of October 2015, it is not required by Apple for app submittion, but might be required in the future.
TestFairy iOS SDK version 1.5.0 has bitcode flag enabled and solves this problem. Simply upgrading the SDK will resolve this error in compilation.
TestFairy's SDK does not make any changes to your executable or IPA. A very common problem we have been seeing, is that developers make a mistake and develop using sandbox, and release using production aps environment. Please make sure your configuration is the same for production and adhoc/in-house releases.
These two are the same. When exporting an IPA from within Xcode, you export for Enterprise Development, but in some cases on iTunes Connect, this is refered as In-House.