Xamarin.Mac - macOS Sierra Troubleshooting
This article provides several troubleshooting tips for working with macOS Sierra in Xamarin.Mac apps.
The following sections list some known issues that can occur when using macOS Sierra with Xamarin.Mac and the solution to those issues:
- App Store
- Apple Pay
- Binary Compatibility
- CFNetwork HTTP Protocol
- CloudKit
- Core Image
- Notifications
- NSUserActivity
- Safari
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.
Apple Pay
If an incorrect expiration date or security code (CW) is entered when adding a new payment card to Apple Pay, the card provisioning process will be terminated.
Binary Compatibility
Known Issues:
- Calling
NSObject.ValueForKey
will anull
key will result in an exception. - Both
NSURLSession
andNSURLConnection
no longer RC4 cipher suites during the TLS handshake forhttp://
URLs. - Apps can hang if they modify a superview's geometry in either the
ViewWillLayoutSubviews
orLayoutSubviews
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 macOS Sierra beta 1 will be removed.
Notifications
When working with Notification Content Extensions, View Controllers are not being correctly released and might result in a crash when Extension memory limits are reached.
NSUserActivity
After a Handoff operation, the UserInfo
property of a NSUserActivity
object might be empty. Explicitly call BecomeCurrent
NSUserActivity
object as a current workaround.
Safari
WebGeolocation requires a secure (https://
) URL to work on both iOS 10 and macOS Sierra to prevent malicious use of location data.