Failed loading bundle NSBundle; Not sure what the issue is.

1,465 views
Skip to first unread message

jwmann

unread,
May 8, 2013, 7:50:54 PM5/8/13
to quicksilver-...@googlegroups.com
Hi there, 
I had asked in the IRC but there doesn't seem to be too many people active there.
I'm attempting to build my own plugin for QS and I've been following this guide - http://projects.skurfer.com/QuicksilverPlug-inReference.mdown

I have removed my public release version of QS so that there's no issues.
The way I'm trying to test my app is that after I build QS for the first time I would:
  1. Build my Plugin
  2. Run QS from XCode
  3. Attempt to test
All of which are in Debug mode.

However I can't even begin to start testing because my bundle apparently can't be located.
Except that the path it points to has my plugin there.

QS seems to run perfectly fine and I can even see my plugin in the 'Prefrences -> Installed Plugins' list (set to private)

This is the Error I receive:
2013-05-08 18:20:23.245 Quicksilver[59917:303] Failed loading bundle NSBundle </tmp/QS/build/Debug/Quicksilver.app/Contents/PlugIns/RdioPlugin.qsplugin> (not yet loaded) error: Error Domain=NSCocoaErrorDomain Code=4 "The bundle “RdioQSplugin” couldn’t be loaded because its executable couldn’t be located." UserInfo=0x10035e800 {NSLocalizedFailureReason=The bundle’s executable couldn’t be located., NSLocalizedRecoverySuggestion=Try reinstalling the bundle., NSBundlePath=/tmp/QS/build/Debug/Quicksilver.app/Contents/PlugIns/RdioPlugin.qsplugin, NSLocalizedDescription=The bundle “RdioQSplugin”

My plugin relies on the Rdio app so I attempted to add 'com.Rdio.desktop' to the QSRequirements
I figured that might be causing the problem so I temporarily removed it.

If you like to see the source code you can see it here:


Patrick Robertson

unread,
May 9, 2013, 3:27:48 AM5/9/13
to quicksilver-...@googlegroups.com
Any problem loading the plugin is nearly always an Info.plist problem, as Rob has said in the 'Troubleshooting' section of the guide: http://projects.skurfer.com/QuicksilverPlug-inReference.mdown#troubleshooting

I've had a quick look, and the problem is indeed with this in your plugin. Your 'executable file' in the .plist is set as 'RdioQSplugin.qsplugin' whereas in the xcode project settings it's 'RdioQSplugin'. Try changing this and things should start working :)

Congratulations on your QS plugin, and let us know if you have any more questions or problems :)

--
You received this message because you are subscribed to the Google Groups "Quicksilver - Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---deve...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

jwmann

unread,
May 9, 2013, 12:59:56 PM5/9/13
to quicksilver-...@googlegroups.com
I actually noticed this last night while waiting for my post to be approved, I switched it and it fixed the locating problem, however it had issues loading the plugin 
Like this: http://d.pr/n/hS9w/4QiaJytq
I was talking with pjrobertson and he said that it loaded fine if you fix that however on my end it would never load.
We tried trashing /tmp/QS and ~/Application\ Support/Quicksilver and ~/Library/Developer/Xcode/DerivedData
And rebuilt everything and still nothing.
Even after he built a version and sent it to me so I can use his build. It still didn't load.

We tried debugging QS and he mentioned: 
error is Error code 3588 which is NSExecutableLinkError
NSExecutableLinkError NS_ENUM_AVAILABLE(10_5, 2_0) = 3588, 
(from FoundationErrors.h) 


He recommended that I start over and I'm pretty close to doing that too.
What do you think?
To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---development+unsub...@googlegroups.com.

Rob McBroom

unread,
May 9, 2013, 1:48:17 PM5/9/13
to quicksilver-...@googlegroups.com
On May 9, 2013, at 12:59 PM, jwmann <m...@jameswmann.com> wrote:

> We tried trashing /tmp/QS and ~/Application\ Support/Quicksilver and ~/Library/Developer/Xcode/DerivedData
> And rebuilt everything and still nothing.

I cloned your repo and it built and loaded fine for me too. Did you restart Xcode after clearing all that?

There’s one other place that Xcode caches things that I’ve had to clear in the past to eliminate strange problems. The location is different for every system I think, but it’s in `/var/folders`. This will probably give you the location:

find /var/folders -type f -name "*Xcode*" 2>/dev/null

In there somewhere, look for `com.apple.Xcode.501` and `com.apple.dt.Xcode`. I’m not sure exactly what they are, but I’ve deleted them without issue more than once.

--
Rob McBroom
<http://www.skurfer.com/>

jwmann

unread,
May 9, 2013, 2:12:43 PM5/9/13
to quicksilver-...@googlegroups.com, mailin...@skurfer.com

Yea I did restart Xcode when I did that,

I did it again and this time pulled the latest changes from QS repo

Trashed all the things mentioned above and also 'com.apple.Xcode.501' but the other one you mentioned wasn't there.

I then opened QS, built it and ran it. Everything went fine.

I then tried to build my plugin but the compile errored because it didn't know what the QSobject was; After closing and opening the project again, it built successfully.

I ran the plugin with the QS.app executable targeted and I got the same exact build error.


Any other ideas?

jwmann

unread,
May 10, 2013, 4:07:48 PM5/10/13
to quicksilver-...@googlegroups.com, mailin...@skurfer.com
I actually managed to find the source of the strange error!

I commented out this block of code:
{
  if (self = [super init]) {
    self.rdio = [SBApplication applicationWithBundleIdentifier:@"com.rdio.desktop"];
  }
  return self;
}

And the entire app runs perfectly!
Although it took me having to start over to find this out;
The app only broke after I ported in the old app code.

Maybe you will have a better idea as to why that caused it? 

On Thursday, May 9, 2013 1:48:17 PM UTC-4, Rob McBroom wrote:

Patrick Robertson

unread,
May 11, 2013, 8:45:35 PM5/11/13
to quicksilver-...@googlegroups.com
Having seen your post I guess you managed to find a solution to your problem?
Since I don't have the Rdio app on my computer, that's probably why the plugin was loading.

Let us know how you found the solution! If everything's good on the plugin front, we'll add it to the official plugin repo soon :)

--
You received this message because you are subscribed to the Google Groups "Quicksilver - Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---deve...@googlegroups.com.

Rob McBroom

unread,
May 13, 2013, 11:05:47 AM5/13/13
to quicksilver-...@googlegroups.com
On May 10, 2013, at 4:07 PM, jwmann <m...@jameswmann.com> wrote:

Maybe you will have a better idea as to why that caused it? 

Not sure. Have you tried assigning it to just rdio instead of self.rdio? They should be the same thing and I’ve never seen anyone use `self.` in Cocoa. so I’m not sure what the consequences might be.

Patrick Robertson

unread,
May 13, 2013, 11:28:58 AM5/13/13
to quicksilver-...@googlegroups.com
> Not sure. Have you tried assigning it to just rdio instead of self.rdio? They should be the same thing and I’ve never seen anyone use `self.` in Cocoa. so I’m not sure what the consequences might be.

Good point, in init it's bad practice (can't remember why) to use setters/getters. You should always access the iVars directly

--
You received this message because you are subscribed to the Google Groups "Quicksilver - Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---deve...@googlegroups.com.

jwmann

unread,
May 13, 2013, 11:33:37 AM5/13/13
to quicksilver-...@googlegroups.com
I forgot to post what actually fixed the problem.
I was calling the ScriptingBridge framework but didn't have it included in my project. After including it, everything worked fine.

So far my plugin is running pretty smoothly.
I had to create a new repo; you can find it here.

To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---development+unsub...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages