I'm not sure that this is the right place to post this, if there's some sort of developer mailing list please point me in that direction.
Anyway, I'm trying to make a new Adium Account Plugin. I'm basing my work off the Rendezvous Plugin as it doesn't have the multiple latyers of inheritance that the Gaim based services have. Right now I'm working on the Account View settings. The problem that I'm having is with this function in my Service source file:
2005-01-16 12:32:43.186 Adium[2747] *** +[IHSIPAccountViewController newInstanceOfPlugin]: selector not recognized
2005-01-16 12:32:43.187 Adium[2747] NSExceptionHandler has recorded the following exception:
NSInvalidArgumentException -- *** +[IHSIPAccountViewController newInstanceOfPlugin]: selector not recognized
Stack trace: 0x8dcb1f58 0x00086c2c 0x90a5c624 0x909fcee8 0x90836810 0x00085728 0x0008551c 0x00022dac 0x909f7184 0x901aa5c0 0x901aefd0 0x909f4fd0 0x92ee3e70 0x92ee3d5c 0x92ee3f8c 0x90a4a544 0x90a50c6c 0x91674a10 0x91677858 0x91674c50 0x928c4338 0x92dd301c 0x92de98c8 0x92dfdc30 0x92eba2b8 0x0000a57c 0x8fe1a558 0xbfffff18
2005-01-16 12:32:44.034 Adium[2747] Launching the Adium Crash Reporter because an exception of type NSInvalidArgumentException occurred:
*** +[IHSIPAccountViewController newInstanceOfPlugin]: selector not recognized
But when I return nil in the finction it loads but of doesn't pick up on the new account type. Does anyone have any idea what is causing this to happen?
Why are you returning the [objectController accountView] when you are stating in the method signature you are returning ObjectController (you can see the names, I shorthanded to save some typing)
When Adium loads a plugin, it messages the bundle's main class with newInstanceOfPlugin; the bundle's main class should be a class inheriting from AIPlugin.
So possible problems here:
1) Check your inheritance.
2) Check the class listed as the "Main Class" in the info for your target in xcode. Make sure it's your plugin class, not IHSIPAccountViewController or blank.
No, the "Principal Class" of the target is set to IHSIPPlugin. I am not defining newInstanceOfPlugin, however as I assume it will just use AIPlugin's method.
As for the section of code that seems to be causing the problem, the signature is the same for all of the services classes in the Gaim plugin set, so I assumed that was the way it should be as my account view controller is derived from the stadard one.
Ok, well. I got it. I was being stupid and not making the function exactly the same as it was in the other services. Anyway, now it shows up in the account window. However, I cannot for the life of me figure out how to get it's icon to work. Is there some special string I have to change for it to fin the serivce icon. They're being bundled into the Plugin, and I'm using the Rendezvous ones to test right now.
ElCrazon wrote:Ok, well. I got it. I was being stupid and not making the function exactly the same as it was in the other services. Anyway, now it shows up in the account window. However, I cannot for the life of me figure out how to get it's icon to work. Is there some special string I have to change for it to fin the serivce icon. They're being bundled into the Plugin, and I'm using the Rendezvous ones to test right now.
Glad you got it working.
Right now the icons are pretty much hardcoded for just the services built into Adium. Another third party protocol plugin ran into the same problem and hacked around it... I'll take a look later this week at allowing services to specify a 'default' image to use if the service icon pack doesn't supply one, which will solve the problem as you'll be able to specify one without making coreside Adium changes.