Known Issues with iOS
We are currently aware of the following issues with iOS 8, 9, and 10. For general questions, please see this FAQ.
With iOS 10, Apple requires developers to specify usage description strings in their
Info.plist for certain features that impact the users' privacy. HockeyApp uses one of those features – access to the user's photo library – in order to allow the user to attach pictures to their feedback. With the availability of Xcode 8 submitting an app without the
NSPhotoLibraryUsageDescription will be automatically rejected during submission into the App Store – even if you don't use our Feedback feature. To learn more about this new requirement, see this comprehensive writeup of this year's WWDC Session on Privacy and have a look at how to localize Info.plist values.
To make sure your app doesn't get rejected, 4.1.1 of the HockeySDK removes the Feedback feature from the default version of the SDK.
If you are using an older version of the SDK, you must add a
NSPhotoLibraryUsageDescription to your
Info.plist to avoid a AppStore rejection during upload of your app.
To use Feedbackin your app, starting with HockeySDK 4.1.1 and later, please integrate the SDK with all features as follows:
If you're integrating the binary yourself, use the
HockeySDK.embeddedframework in the subfolder
HockeySDKAllFeatures. If you're using cocoapods, use
pod "HockeySDK", :subspecs => ['AllFeaturesLib']
in your podfile.
There appears to be an issue with iOS 10 simulators (including all Xcode 8 and 8.1 versions) that makes it impossible to write values to the keychain. This affects previous versions of the SDK and results in an InternalInconsistencyException while HockeySDK-iOS 4.1.1 and later fail silently. This issue does not affect real devices and simulators for previous iOS versions. We have filed a radar with Apple and are hoping to get this issue resolved shortly, but you may encounter errors when testing HockeySDK in the simulator such as Feedback and Authentication not work correctly for iOS 10 simulators. As a workaround, we recommend testing HockeySDK on a physical device running iOS 10. If you do not have access to a real device, you can also try enabling Keychain Sharing in the Capabilities section of your app, as described in this StackOverflow post.
This issue will be fixed in Xcode 8.2 according to Apple.
When trying to install an app from an unknown developer on iOS 9 and 10, you will see an alert dialog that the developer is not trusted. To solve this, open Settings.app, then go to General > Profiles (or General > Device Management, or General > Profiles & Device Management), tap on the row with the developer's name, and then on
Trust "<name>". After this, you should be able to launch the app.
In the first developer beta of iOS 10, many users have reported issues updating existing apps or reinstalling an app that was previously installed on the device but has been uninstalled. In these cases, the installation silently fails without any user-facing error message, the only indication is an entry in the iOS device console.
This is a bug in iOS 10 Beta 1 that we have confirmed with Apple and was fixed in iOS 10 Beta 2.
If you update an existing app on iOS 10, you might experience the "Untrusted Enterprise Developer" dialog again but the developer appears to be already trusted in Settings.app. In these cases please try rebooting the device which should allow you to start the app normally.
We've received reports from developers that in some cases, the installation request for any alpha, beta, or enterprise app is ignored on iOS 9 if the App Store version of the same app is installed. After clicking install there will be no popup to confirm the installation. As a workaround, please try to uninstall the existing version of the app, then tap the Install button on HockeyApp again. Please contact Apple for any further questions on this problem.
If you are trying to install an app with an Ad-Hoc or Enterprise profile over an existing App Store distributed app that is already on the device (with the same bundle identifier), then just nothing will happen. The dialog asking to install the app will also not appear and the device console will show something like:
itunesstored <Warning>: ExternalDownloadManifest: Skipping download and install of: XXXXXXX
This is because of a security change added to iOS 8.4 and above to prevent the "Masque" attack. See the following article: https://www.fireeye.com/blog/threat-research/2015/06/three_new_masq...
The only solution to get the Ad-Hoc or Enterprise signed app installed is to delete the App Store distributed app from the device first.
We've received reports from developers that in some cases, the installation request for any alpha, beta, or enterprise app is simply ignored by iOS 8. To work around this issue, please follow these steps:
Click on your app on HockeyApp
Click on Manage App, then on Distribution
Set the "iOS 8 Workaround" option to "Enabled"
Click on Save
When this setting is enabled, HockeyApp will modify the bundle identifier of your app (by appending
.ios8) in the manifest plist that triggers the installation. This way iOS 8 can not match the bundle identifier against its cache and will install the app. A side effect is that the user will see two app icons during the download if a previous version was already installed. This workaround will only be applied to iOS 8 devices, not to iOS 9 or 10.
We have also seen issues with provisioning profiles and entitlements in Xcode. If you encounter such an issue, please re-create your certificate and profile in the iOS Dev Center.
The alert "Unable to Download App" is a generic error message and can have various reasons, for example:
UDID is not included in the provisioning profile
The build was incorrectly signed or has broken entitlements
Device or iOS version is incompatible with the build
Device storage is full
Actual download error
App is over 50 MB and downloaded over a cellular connection
Unfortunately, iOS does not provide a detailed error message that is accessible on the device. Always make sure that your device is registered with HockeyApp.
If you are the developer of the app and can reproduce the problem on your device, please follow these steps:
Connect your iPhone, iPad, or iPod touch to your Mac
Open Xcode, then go to Window > Devices
Select your device in the left sidebar
Open the device log by clicking on the little triangle at the bottom of the window
Start the installation of your app through HockeyApp
During the installation, you should see one or more warning or error message. If you need help with those messages, please store the log into a .txt file and send it to us.
The installation of apps now happens in the background, i.e. the user has to manually go to the home screen to see the installation progress. Please update to HockeySDK 3.5.7 or later to handle this for in-app updates:
Apple disabled the feature to manually download a provisioning profile with iOS 8, i.e. the Install Profile button doesn't work and Settings.app refuses to install the profile. Settings.app on iOS 8 or later also does not show the list of installed provisioning profiles. The only solution is to create a new build for each new profile and upload that build to HockeyApp.
To avoid confusion with testers, HockeyApp no longer shows the Install Profile button on the download page for devices running iOS 8 or later.
The automatic authentication feature no longer works as Apple has removed access to the iTunesArtwork from within the app.
The HockeyApp SDK is approved as safe to be used in the App Store. If iTunes rejects your app, there may be an issue with how the SDK was integrated into your Xcode project.
Please confirm that NONE of the following files are copied into your app bundle (check in your ".app" bundle after build and under: App target - Build Phases - Copy Bundle Resources)
- HockeySDK.framework (except if you built a dynamic framework version of the SDK yourself!)
The "Profile Installation Failed" error was a common issue early in the beta for iOS 7 and iOS 8. Restoring a phone from a backup may also cause this issue.
There are several possible solutions:
- The time and date of your device may need to be set correctly.
- Sometimes just restarting your device resolves the issue.
- Other times resetting all settings on the device resolves the issue.
- It's also possible that your device needs to be activated.
The following threads in the Apple dev forums refer to TestFlight, but it's essentially the same issue as HockeyApp:
The Error: "Undefined symbols for architecture arm64" indicates that the system frameworks in iOS were not correctly linked into your app as outlined in the article on HockeyApp for iOS.
- This is often an issue with an extension where there were two targets, one for the App and one for the Extension. The system framework needs to be linked into both targets, instead of just the App. The binary framework distribution contains a build named
HockeySDKCrashOnly.embeddedFrameworkwith the crash reporting feature only, which can be used for the extension target. since all others won't work in an extension anyway.
- Other times, you will need to use the "Advanced Setup" option of Linking System Frameworks manually to resolve this issue.