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.
Topic: App & System Services SubTopic: General Tags:
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.
Topic: App & System Services SubTopic: General Tags:
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 = { }; }
Topic: App & System Services SubTopic: General Tags:
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 ... )
Topic: App & System Services SubTopic: General Tags:
Feb ’24