Creating a Photo Extension
Creating a Photo Extension
- Subject: Creating a Photo Extension
- From: Daniel Blakemore <email@hidden>
- Date: Wed, 08 Oct 2014 13:59:11 -0600
Nothing leaves you feeling like a stroke victim more than doing something
you know you've done before and having it fail all over the place.
I'm trying to create a simple application with a dummy photo extension
written in swift. I have already written an actual application with a
photo extension and that works (as well as it can given the occasional
nondeterministic behavior we and others have been seeing).
To make this demo app, made a new single-view application in Xcode.
Then I add a photo extension target, making sure to select Swift as the
language.
Then I make sure to go tell the application target that "Embedded content
contains swift code" because otherwise the photo extension will fail at
runtime with the *wildly misleading* and unhelpful error message: "blah
blah blah swiftrelated.dylib blah:image not found" (not, in fact, referring
to the image the photo extension has been asked to load).
Then I delete the Main.storyboard because I don't like storyboards.
Then I edit the info.plist created for the extension to remove the
NSExtensionMainStoryboard key and replace it with an
NSExtensionPrincipalClass key.
Then I run the photo extension target in the Photos app.
Upon selecting a photo and attempting to edit it with my new extension, I
get this error:
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '*** setObjectForKey: object cannot be nil (key: <__NSConcreteUUID
0x7ffdd3f12c60> 21074A67-F7EF-423D-A245-8805C0CC134F)'
*** First throw call stack:
(
0 CoreFoundation 0x0000000109d843f5
__exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010b8f1bb7
objc_exception_throw + 45
2 CoreFoundation 0x0000000109c8af18
-[__NSDictionaryM setObject:forKey:] + 968
3 libextension.dylib 0x000000010b8b217a
-[_NSExtensionContextVendor _setPrincipalObject:forUUID:] + 114
4 libextension.dylib 0x000000010b8b1880
__105-[_NSExtensionContextVendor
_beginRequestWithExtensionItems:listenerEndpoint:withContextUUID:completion:]_block_invoke
+ 822
5 libdispatch.dylib 0x000000010cdd0c06
_dispatch_call_block_and_release + 12
6 libdispatch.dylib 0x000000010cdeaaf4
_dispatch_client_callout + 8
7 libdispatch.dylib 0x000000010cdd62e9
_dispatch_main_queue_callback_4CF + 490
8 CoreFoundation 0x0000000109cec569
__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
9 CoreFoundation 0x0000000109caf46b __CFRunLoopRun +
2043
10 CoreFoundation 0x0000000109caea06
CFRunLoopRunSpecific + 470
11 GraphicsServices 0x000000011008a9f0 GSEventRunModal
+ 161
12 UIKit 0x000000010a60e550
UIApplicationMain + 1282
13 libxpc.dylib 0x000000010d0e3b4b _xpc_objc_main +
416
14 libxpc.dylib 0x000000010d0e5ee0 xpc_main + 185
15 Foundation 0x000000010a3311d1
service_connection_handler + 0
16 PlugInKit 0x000000010960fba2 -[PKService run]
+ 521
17 PlugInKit 0x000000010960f867 +[PKService
main] + 55
18 PlugInKit 0x000000010960fbc6 +[PKService
_defaultRun:arguments:] + 17
19 libextension.dylib 0x000000010b8bfcdd NSExtensionMain
+ 51
20 libdyld.dylib 0x000000010ce1b145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Well, the ONLY reference to this that I can find is that some framework
isn't being implicitly loaded and is dying here.
See http://www.atomicbird.com/blog/ios-app-extension-tips at the section
titled "Enabling modules might not work as expected"
I have literally been pulling my hair out for two hours because I can't get
my boilerplate to work and I was actually trying to make a useful demo
project, not just bash my head against the same wall (not to mention the
hour that I spent trying to get Xcode to NOT build swift successfully when
it had copy-pasted Objective-C in it that was clearly not correct [which
required me to restart my entire computer]).
What am I doing wrong that I need to do right?
--
Daniel Blakemore
Pixio Software
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden