Troubleshooting tvOS 10 Apps Built With Xamarin

The following sections list some known issues that can occur when using tvOS 10 with Xamarin and the solution to those issues:

App Store

Known Issues:

  • When testing In-App Purchases in the sandbox environment, the authentication dialog may appear twice.
  • When testing In-App Purchases with hosted content in the sandbox environment, the password dialog will appear every time the app is brought to the foreground until the content download completes.

Binary Compatibility

Known Issues:

  • Calling NSObject.ValueForKey will a null key will result in an exception.
  • Referencing a font by name when calling UIFont.WithName will cause a crash.
  • Both NSURLSession and NSURLConnection no longer RC4 cipher suites during the TLS handshake for http:// URLs.
  • Apps can hang if they modify a superview's geometry in either the ViewWillLayoutSubviews or LayoutSubviews methods.
  • For all SSL/TLS connections, the RC4 symmetric cipher is now disabled by default. Additionally, the Secure Transport API no longer supports SSLv3 and it is recommended that the app stop using SHA-1 and 3DES cryptography as soon as possible.

CFNetwork HTTP Protocol

The HTTPBodyStream property of the NSMutableURLRequest class must be set to an unopened stream since NSURLConnection and NSURLSession now strictly enforce this requirement.

CloudKit

Long running operations will return a "You don't have permission to save the file." error.

Core Image

The CIImageProcessor API now supports an arbitrary input image count. CIImageProcessor API that was included in tvOS 10 beta 1 will be removed.

NSUserActivity

After a Handoff operation, the UserInfo property of a NSUserActivity object might be empty. Explicitly call BecomeCurrent NSUserActivity` object as a current workaround.

UIKit

Known Issues:

  • Changes to the background appearance of UINavigationBar, UITabBar or UIToolBar may result in a layout pass to resolve the new appearance. Attempting to modify these appearances inside of a LayoutSubviews, UpdateConstraints, WillLayoutSubviews or DidUpdateSubviews event can result in an infinite layout loop.
  • In tvOS 10, calling the RemoveGestureRecognizer method of a UIView object explicitly cancels any in-progress Gesture Recognizer.
  • Presented View Controllers can now affect the appearance of the status bar.
  • tvOS 10 requires the developer to call base.AwakeFromNib when subclassing UIViewController and overriding the AwakeFromNib method.
  • Apps with custom UIView subclasses that override LayoutSubviews and dirty the layout before calling base.LayoutSubviews may trigger an infinite layout loop in tvOS 10.
  • Direction-specific or flippable images assets are no flipping when assigned to UIButton objects.