landonf / XcodePostFacto

Xcode 6.3 for Mac OS X 10.9
Other
68 stars 9 forks source link

bug(6.3.2): crashes when showing Devices window due to missing -contentLayoutRect #9

Open evadne opened 9 years ago

evadne commented 9 years ago

As attached. I suspect this is simply caused by 10.9 not having -[NSWindow contentLayoutRect]. This can be reproduced by running XcodePostFacto on Xcode 6.3.2 and then attempting to show the Devices window.

➜  landonf-XcodePostFacto git:(master) ✗ env DYLD_INSERT_LIBRARIES=/Users/Shared/evadne/Products/XcodePostFacto-gkjthbtalyzxquaoxknzlrbedwer/Build/Products/Debug/xpf-bootstrap.framework/xpf-bootstrap /Applications/Xcode\ 6.3.2.app/Contents/MacOS/Xcode
2015-06-28 02:07:50.044 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XCFixin_TabAcceptsCompletions.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.045 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XCFixin_HideDistractions.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.046 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XCFixin_FindFix.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.047 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XCFixin_DisableAnimations.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.049 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/UncrustifyPlugin.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.050 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ShowInGithub.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.050 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMQuickHelp.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.051 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/NoLastUpgradeCheck.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.052 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/DLAutoresizeMaskPlugin.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.052 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/DerivedData Exterminator.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2015-06-28 02:07:50.053 Xcode[51509:d07] [MT] PluginLoading: Required plug-in compatibility UUID E969541F-E6F9-4D25-8158-72DC3545A6C6 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin' not present in DVTPlugInCompatibilityUUIDs
objc[51509]: Class IDEBlockScrollView is implemented in both /Applications/Xcode 6.3.2.app/Contents/Frameworks/IDEKit.framework/Versions/A/IDEKit and /Applications/Xcode 6.3.2.app/Contents/PlugIns/IDEProductsUI.ideplugin/Contents/MacOS/IDEProductsUI. One of the two will be used. Which one is undefined.
2015-06-28 02:07:50.512 Xcode[51509:1003]  DeveloperPortal: Using pre-existing current store at URL (file:///Users/evadne/Library/Developer/Xcode/DeveloperPortal%206.3.2.db).
2015-06-28 02:07:50.779 Xcode[51509:d07] [XcodePostFacto] Initializing Mavericks shared frameworks
2015-06-28 02:07:58.564 Xcode[51509:d07] -[NSWindow contentLayoutRect]: unrecognized selector sent to instance 0x7fd0f6c84b50
2015-06-28 02:07:58.623 Xcode[51509:d07] [MT] DVTAssertions: UNCAUGHT EXCEPTION (NSInvalidArgumentException): -[NSWindow contentLayoutRect]: unrecognized selector sent to instance 0x7fd0f6c84b50
UserInfo: (null)
Hints: None
2015-06-28 02:07:58.706 Xcode[51509:d07] [MT] DVTAssertions: 
Backtrace:
  0  0x00007fff8f277244 __exceptionPreprocess (in CoreFoundation)
  1  0x0000000103998bb4 DVTFailureHintExceptionPreprocessor (in DVTFoundation)
  2  0x00007fff97200e75 objc_exception_throw (in libobjc.A.dylib)
  3  0x00007fff8f27a12d -[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation)
  4  0x00007fff8f1d5272 ___forwarding___ (in CoreFoundation)
  5  0x00007fff8f2788a8 __forwarding_prep_1___ (in CoreFoundation)
  6  0x000000010404c760 __43-[DVTDevicesWindowController windowDidLoad]_block_invoke (in DVTKit)
  7  0x000000010404bfa9 -[DVTDevicesWindowController windowDidLoad] (in DVTKit)
  8  0x00007fff952c83ac -[NSWindowController _windowDidLoad] (in AppKit)
  9  0x00007fff952aefa6 -[NSWindowController window] (in AppKit)
 10  0x00007fff952b00f0 -[NSWindowController showWindow:] (in AppKit)
 11  0x000000010404ba7b -[DVTDevicesWindowController showWindow:] (in DVTKit)
 12  0x0000000104c51110 -[IDEApplicationCommands showDevicesWindow:] (in IDEKit)
 13  0x00007fff95251260 -[NSApplication sendAction:to:from:] (in AppKit)
 14  0x0000000103f1b4dd __37-[DVTApplication sendAction:to:from:]_block_invoke (in DVTKit)
 15  0x0000000103de3c28 -[DVTApplication sendAction:to:from:] (in DVTKit)
 16  0x00007fff9526c1c8 -[NSMenuItem _corePerformAction] (in AppKit)
 17  0x00007fff9526bf04 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] (in AppKit)
 18  0x00007fff9526b07c -[NSMenu performKeyEquivalent:] (in AppKit)
 19  0x00007fff952678e1 -[NSApplication _handleKeyEquivalent:] (in AppKit)
 20  0x00007fff951d6acc -[NSApplication sendEvent:] (in AppKit)
 21  0x0000000104a19c14 -[IDEApplication sendEvent:] (in IDEKit)
 22  0x00007fff950269f9 -[NSApplication run] (in AppKit)
 23  0x00007fff95011783 NSApplicationMain (in AppKit)
 24  0x00007fff99f565fd start (in libdyld.dylib)
[1]    51509 abort      env  /Applications/Xcode\ 6.3.2.app/Contents/MacOS/Xcode
evadne commented 9 years ago

I suspect that back-porting -contentLayoutRect with a reasonable default may work.

07151129 commented 9 years ago

Can you try adding an implementation to FACADE(NSWindow) section in yosemite_objc_stubs.m?

0xced commented 9 years ago

I just tried to add an implementation that returns self.frame but the next error is going to be tougher!

[MT] DVTAssertions: ASSERTION FAILURE in /SourceCache/DVTFrameworks/DVTFrameworks-7714/DVTKit/Devices/DVTDevicesWindowController.m:437
Details:  result should be an instance inheriting from DVTViewController, but it is nil
Object:   <DVTDevicesWindowController: 0x7ffb76203410>
Method:   -_syncSelectionToDeviceIdentifier:
Thread:   <NSThread: 0x7ffb70417b50>{name = (null), num = 1}
Hints:   None