Starting iOS 10, Apple requires developers to declare access to privacy-sensitive controls ahead of time.

According to the apple doc:

To protect user privacy, an iOS app linked on or after iOS 10.0, and which accesses the media library, camera or microphone, developers must statically declare the intent to do so. Include the required keys in your app’s Info.plist file and provide a purpose string for this key. If your app attempts to access the media library without a corresponding purpose string, your app exits.

In Hotline iOS SDK we use microphone, photo library and camera to send audio and picture messages. 

To comply with this new privacy requirement, developers must add the required keys to the Info.plist:

"NSMicrophoneUsageDescription" "NSPhotoLibraryUsageDescription" and "NSCameraUsageDescription" 
Moreover, we will also log a warning message on the XCode console if you have missed adding the required keys.  

Warning! Failing this iOS 10 will exit the app by crashing when user tries to access the controls of microphone, camera or photo library.
For more clarification, click 
here. 


iOS 10 Simulator issue


Hotline SDK depends on keychain services. Xcode 8.0 (8A218a) /  iOS 10 simulators have an issue with keychain services, which does not allow the SDK to retrieve data from the store when there are no "entitlements" set up. We expect this issue will be fixed in the later version of Xcode. In the meantime, we suggest the following workaround to continue testing on the iOS 10 simulators.


In the project’s capabilities page, please turn on push notifications capability (and select the "fix issue" if any issue appears). This is a work around to ensure there is a valid entitlement file for the project (which the simulator requires to work correctly), and once testing is done you can discard these changes. Hopefully the issue will be resolved in the next Xcode update.