Known Issues with iOS

We are currently aware of the following issues with iOS 8, 9, 10 and 11. For general questions, please see this FAQ.

Binary integration of the SDK with Xcode 9 GM

Xcode 9 GM mentions in the release notes that "dragging the files into a project from the Finder may move or copy the underlying file." In addition, Xcode does not add binaries to "Linked Frameworks and Libraries". This only happens to new projects.

  1. As a workaround, hold down Command-Option while dragging to only create a reference, and
    leave the filesystem as is.
  2. Select your project in the project navigator, then select your target.
  3. In the "General" tab, scroll down to "Linked Frameworks and Libraries" and add "HockeySDK" to it.
  4. If you are using the default version of the SDK or the version with all features, select the "Build Phases" tab.
  5. Add HockeySDKResources.bundle to the "Copy Bundle Resources" build phase.

App Store rejection because of missing NSPhotoLibraryUsageDescription – iOS 10, 11 and Feedback

With iOS 10 and later, 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.

HockeySDK-iOS and iOS 10 simulators

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.

Untrusted Enterprise Developer

When trying to install an app from an unknown developer on iOS 9, 10, and 11, 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.

TrustDeveloper.png

Installation Errors

iOS 10 Beta 1

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.

iOS 9 or later

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.

iOS 8.4 or later

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[123] <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.

iOS 8.x

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:

  1. Click on your app on HockeyApp

  2. Click on Manage App, then on Distribution

  3. Set the "iOS 8 Workaround" option to "Enabled"

  4. Click on Save

iOS8Workaround.png

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.

Unable to Download App

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.

Inspect Console Log

If you are the developer of the app and can reproduce the problem on your device, please follow these steps:

  1. ​Connect your iPhone, iPad, or iPod touch to your Mac

  2. Open Xcode, then go to Window > Devices

  3. Select your device in the left sidebar

  4. Open the device log by clicking on the little triangle at the bottom of the window

    DeviceLog.png

  5. 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.

Background Installation

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:

Manual Installation of Provisioning Profiles

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.

Automatic Authentication

The automatic authentication feature no longer works as Apple has removed access to the iTunesArtwork from within the app.

Errors uploading your app to iTunes

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!)
  • de.bitstadium.HockeySDK-iOS-3.6.4.docset

Profile Installation Failures

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:
https://devforums.apple.com/message/820376#820376
https://devforums.apple.com/message/824618#824618

Undefined symbols for architecture arm64 Errors

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.embeddedFramework with 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.