Post

Replies

Boosts

Views

Activity

Reply to NSItemProvider throwing exception related to secure coding
@eskimo I put together a demo. I actually stumbled across the solution as I was putting this together. The issue is Objective-C VS Swift. My project is using Objectice-C to ask for a plist from NSItemProvider. When I use swift however, there's no problem. My demo has both so you can see it. Look at ViewController for instructions, and ShareViewController for objective-c VS swift. Also make sure to set an exception breakpoint for all objc exceptions. How can I send you this demo, I can't upload zip files here.
Mar ’24
Reply to NSItemProvider throwing exception related to secure coding
@eskimo Yes it worked in previous systems. It seemed to be the release iOS 17.3.1. As I mentioned in my first post. When the share button is pressed, Apple / Safari runs a preprocessor.js file, which has a callback that gets encoded as a plist, and passed to the share extension. Ours sends only two keys: arguments.completionFunction({ "URL": document.URL "title": document.title, }); So the plist (dictionary) only contains NSString type. Which is currently not allowed to be decoded based on the exception thrown.
Feb ’24
Reply to NSItemProvider throwing exception related to secure coding
This is interesting as well. I had a fix that was working, but now all of the sudden it's not. [itemProvider loadDataRepresentationForTypeIdentifier:[UTTypePropertyList identifier] completionHandler:^(NSData * _Nullable data, NSError * _Nullable error) { ///use NSKeyedUnarchver to unarchive a dictionary. } The dictionary is decoded, but the result is empty: { NSExtensionJavaScriptPreprocessingResultsKey = { }; }
Feb ’24
Reply to NSItemProvider throwing exception related to secure coding
value for key 'NS.keys' was of unexpected class 'NSString' (0x1ee7d2970) [/System/Library/Frameworks/Foundation.framework]. Allowed classes are: {( "'NSDictionary' (0x1ee7cad38) [/System/Library/Frameworks/CoreFoundation.framework]" )} (null) Printing description of exception->exception: Exception while decoding argument 0 (#1 of invocation): <NSInvocation: 0x28224e600> return value: {v} void target: {@?} 0x0 (block) argument 1: {@} 0x0 argument 2: {@} 0x0 Exception: value for key 'NS.keys' was of unexpected class 'NSString' (0x1ee7d2970) [/System/Library/Frameworks/Foundation.framework]. Allowed classes are: {( "'NSDictionary' (0x1ee7cad38) [/System/Library/Frameworks/CoreFoundation.framework]" )} ( 0 CoreFoundation 0x000000019d576684 5A6C1F41-BF70-32F6-A1D6-5B894DD21362 + 968324 ... )
Feb ’24