Search code examples
core-plotosx-mountain-lion

Core Plot 2.2 crashes on OS X 10.8 with "Unrecognized Selector" exception


I am using Xcode 8.1 on macOS Sierra. The deployment target of my app is set to 10.8, it uses Core Plot 2.2, which should be compatible with 10.8. The app works on my development machine, but when I start it on OS X 10.8.5 (VMware Fusion virtual machine) it crashes when opening the main window which contains a CPTGraph.

Stack trace:

OS Version:      Mac OS X 10.8.5 (12F2560)
Report Version:  10

Interval Since Last Report:          227946 sec
Crashes Since Last Report:           8
Per-App Interval Since Last Report:  87 sec
Per-App Crashes Since Last Report:   3
Anonymous UUID:                      25357976-7739-B0C4-594A-D7FC51D4A1F3

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString boundingRectWithSize:options:attributes:context:]: unrecognized selector sent to instance 0x1012ab910'
abort() called
terminate called throwing an exception

Application Specific Backtrace 1:
0   CoreFoundation                      0x00007fff81e7fb06 __exceptionPreprocess + 198
1   libobjc.A.dylib                     0x00007fff856073f0 objc_exception_throw + 43
2   CoreFoundation                      0x00007fff81f1640a -[NSObject(NSObject) doesNotRecognizeSelector:] + 186
3   CoreFoundation                      0x00007fff81e6e02e ___forwarding___ + 414
4   CoreFoundation                      0x00007fff81eb3dad __forwarding_prep_1___ + 237
5   CorePlot                            0x000000010139d96e -[NSString(CPTTextStyleExtensions) sizeWithTextStyle:] + 93
6   CorePlot                            0x00000001013858e9 -[CPTTextLayer sizeThatFits] + 198
7   CorePlot                            0x00000001013859b2 -[CPTTextLayer sizeToFit] + 93
8   CorePlot                            0x0000000101384df0 -[CPTTextLayer initWithText:style:] + 295
9   CorePlot                            0x000000010134ee14 -[CPTGraph setTitle:] + 448
10  RehaSport Desktop                   0x0000000101266dcd RehaSport Desktop + 331213

Obviously boundingRectWithSize:options:attributes:context: gets called, but this is only available on macOS 10.11 and newer.

Any ideas?


Solution

  • This is a Core Plot bug. I fixed it on the release-2.3 branch.