My product is a System Preferences Pane. Its principal class is MyPrefPane
and is defined correctly in the Info.plist file under NSPrincipalClass.

The bug I am seeing happens when trying to install a new version over the
top of an older one if (and only if) System Preferences is closed or System
Preferences is open but the older pane has not been clicked on (and is thus
not loaded).

I get an error that my pref pane can't run on an Intel Mac and console
reports:

System Preferences[10232]: -[MyMinorClass initWithBundle:]: unrecognized
selector sent to instance 0x7fc60be96170

System Preferences[10232]: [NSPrefPaneBundle instantiatePrefPaneObject]:
error occurred during instantiation.

It seems like System Preferences is trying to init my pref pane by loading a
minor internal class instead of my MyPrefPane class.

In Xcode Build Phases under compile sources, I noticed that the first two
items are:

MyMinorClass.m
MyPrefPane.m

If I reverse these, and compile MyPrefPane.m first, the bug is eliminated.
Putting any other class before MyPrefPane.m results in System Preferences
making the same attempt to call the first-compiled class with
initWithBundle:

Why does the compile order matter?

I found a similar issue here:

http://stackoverflow.com/questions/31373144/xcode-source-compiling-order-iss
ue

He solved it by rebuilding the project. I have just spent 8 hours rebuilding
this complex project and still get the same results as before (this Xcode
project has existed since Xcode 3)

I am unable to reproduce this on a simple Xcode PrefPane template.

Any ideas?

I am not sure if this is an Xcode issue or something in the OS. For now of
course all I can do is make sure the principal class is compiled first.

Trygve



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to