Rollo62 536 Posted February 20 (edited) Hi there, I'm currently considering how far I should update my tools and devices, to find random errors. The upgrade process from D11.3 to D12 stuck a bit, and I'm now in between D11.3 and D12 somehow. Since the latest D12.0 supports iOS17.x, but unfortunately doesn't seem to support Device debugging any longer. http://docwiki.embarcadero.com/PlatformStatus/en/Main_Page#cite_ref-iOS17_3-0 http://docwiki.embarcadero.com/PlatformStatus/en/Main_Page#cite_note-iOS17-3 https://developer.apple.com/documentation/xcode-release-notes/xcode-15_3-release-notes The question is, how far I should update my devices and tools, what is the best strategy to survive that breaking change. I highly rely on iOS debugging under D11.3, as the last resort to make reasonable tests ( since Android debugging didn't work for a while either ). Without that, the development will be even more hard than it is today. Currently, I want to investigate crashing on an iOS 17.3.1 device, which my latest iOS 16.7.5 device doesn't show. I'm afraid, this will be only possible by upgrading to XCode 15.2 then, as XCode 14.3.1 doesn't support iOS 17 at all. This will kill my ability to debug on real hardware, since I only have x86 Intel Mac available and I'm also out of the ability to use a simulator ( which I really don't want either ). So my hope it, that using XCode 14.3.1, with running and debugging on an iOS 17 device somehow, will be possible, to find issues. Does the latest Patch 1 changes anything on the debugging situation? My question is, to which XCode, IOS versions I shall safely update, when I still need to debug devices? Are there any tricks or workarounds available? The worst case will be to end up with mobile development, where neither iOS nor Android debugging works reliable. Edited February 20 by Rollo62 Share this post Link to post
Rollo62 536 Posted February 20 (edited) OMG: It's worse. It seems XCode 14.3.1 is not running on Sonoma anymore, why . https://forums.developer.apple.com/forums/thread/731005 Is this the case, or is there any hack how this can be done? Updating Apple products is always a pain in the a**, but this time it really seems to break my workflow completely. So do I have to upgrade to XCode 15.2, or is there any way out? Edited February 20 by Rollo62 Share this post Link to post
Rollo62 536 Posted February 20 (edited) It stays strange, the tip in the link works partly: Quote You can still run it using Terminal open /Applications/Xcode.app/Contents/MacOS/Xcode When unzipped and copied XCode to /Applications ( about 24 GB ), then I used this command "open /Applications/Xcode.app/Contents/MacOS/Xcode" first time This looks promising, starting a UI asking which components to install, I kept the checked Macos and iOS frameworks Then it prepared something but seemed to crash. When I started a second time, it give output like this in the terminal, but doesn't start really in normal mode. The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s /bin/zsh`. For more details, please visit https://support.apple.com/kb/HT208050. username$ /Applications/Xcode.app/Contents/MacOS/Xcode ; exit; 2024-02-20 13:16:59.811 Xcode[5677:87640] Regex scanner "(null)" shouldn't have a Tokenizer. Ignoring it. 2024-02-20 13:16:59.940 Xcode[5677:87640] WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES. 2024-02-20 13:17:00.246 Xcode[5677:87640] DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default (DVTEnableCoreDevice=disabled) 2024-02-20 13:17:00.256 Xcode[5677:87704] CoreSimulator detected version change. Framework version (885.2) does not match existing job version (857.14). Attempting to remove the stale service in order to add the expected version. objc[5677]: Class _EntryGenericToGL is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsServices.framework/Versions/A/GPUToolsServices (0x14e59ce28) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GPUToolsAdvancedUI.framework/Versions/A/GPUToolsAdvancedUI (0x14d3a83c0). One of the two will be used. Which one is undefined. objc[5677]: Class _EntryGLToGeneric is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsServices.framework/Versions/A/GPUToolsServices (0x14e59ce78) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GPUToolsAdvancedUI.framework/Versions/A/GPUToolsAdvancedUI (0x14d3a8410). One of the two will be used. Which one is undefined. objc[5677]: Class DYPixelFormatConverter is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsServices.framework/Versions/A/GPUToolsServices (0x14e59cec8) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GPUToolsAdvancedUI.framework/Versions/A/GPUToolsAdvancedUI (0x14d3a8460). One of the two will be used. Which one is undefined. objc[5677]: Class ASVError is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsCore.framework/Versions/A/GPUToolsCore (0x13c111268) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GPUToolsASVC.framework/Versions/A/GPUToolsASVC (0x13c0177c8). One of the two will be used. Which one is undefined. objc[5677]: Class DYGPUDerivedEncoderCounterInfo is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsShaderProfiler.framework/Versions/A/GPUToolsShaderProfiler (0x13c184098) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91c7c8). One of the two will be used. Which one is undefined. objc[5677]: Class DYGPUTimelineInfo is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsShaderProfiler.framework/Versions/A/GPUToolsShaderProfiler (0x13c1840e8) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91c818). One of the two will be used. Which one is undefined. objc[5677]: Class DYTimelineCounterGroup is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsShaderProfiler.framework/Versions/A/GPUToolsShaderProfiler (0x13c184138) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91c868). One of the two will be used. Which one is undefined. objc[5677]: Class DYWorkloadGPUTimelineInfo is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsShaderProfiler.framework/Versions/A/GPUToolsShaderProfiler (0x13c184188) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91c8b8). One of the two will be used. Which one is undefined. objc[5677]: Class GRCPerFrameDataClass is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/MTLToolsShaderProfiler.framework/Versions/A/MTLToolsShaderProfiler (0x14e17b858) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91ccc8). One of the two will be used. Which one is undefined. objc[5677]: Class DYShaderAnalyzerNextGPU is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/MTLToolsShaderProfiler.framework/Versions/A/MTLToolsShaderProfiler (0x14e17b808) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/GPUTools/PlugIns/GLToolsShaderProfilerMobileSupport.gtplugin/Contents/MacOS/GLToolsShaderProfilerMobileSupport (0x150fd8610). One of the two will be used. Which one is undefined. Looking through more of the comments, I see something like this: Quote I solved the problem uninstalling Xcode 15 and installing the 14.3, after that, I set the "/Application/Xcode.app" in the "Location:" field in the Visual Studio > preferences > SDK Locations > Apple. Then I clicked in Restart Visual Studio button and worked. — carlosmg_may 3 months ago Where I don't really see how this might help the VisualStudio, probably this will only use the commandline tools, ad not the UI. It seems to work maybe from a different location: Quote @hmlong not sure what technical reasons lays within, but actually Xcode 14.3.1 is able to work on Sonoma. Just launch it from package contents Contents/MacOS/Xcode. There seems another way, described later on, by changing the CFBundleVersion, but I can't get this running also Quote So we have no choice to keep using Xcode 14.3.1 and the way to do it is: - Download and unpack Xcode 14.3.1 - Right click and select "Show Package Contents" - Navigate to Contents - Open the Info.plist file - Alter CFBundleVersion from 21815 to 22265 - Save change - Right click Xcode 14.3.1 bundle and select "Open" Any ideas? Maybe I should purchase a plist-editor, to get this done, with the existing tools. Edited February 20 by Rollo62 Share this post Link to post
Rollo62 536 Posted February 20 (edited) It stays strange, the tip in the link works partly: Quote You can still run it using Terminal open /Applications/Xcode.app/Contents/MacOS/Xcode When unzipped and copied XCode to /Applications ( about 24 GB ), then I used this command "open /Applications/Xcode.app/Contents/MacOS/Xcode" first time This looks promising, starting a UI asking which components to install, I kept the checked Macos and iOS frameworks Then it prepared something but seemed to crash. When I started a second time, it give output like this in the terminal, but doesn't start really in normal mode. The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s /bin/zsh`. For more details, please visit https://support.apple.com/kb/HT208050. username$ /Applications/Xcode.app/Contents/MacOS/Xcode ; exit; 2024-02-20 13:16:59.811 Xcode[5677:87640] Regex scanner "(null)" shouldn't have a Tokenizer. Ignoring it. 2024-02-20 13:16:59.940 Xcode[5677:87640] WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES. 2024-02-20 13:17:00.246 Xcode[5677:87640] DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default (DVTEnableCoreDevice=disabled) 2024-02-20 13:17:00.256 Xcode[5677:87704] CoreSimulator detected version change. Framework version (885.2) does not match existing job version (857.14). Attempting to remove the stale service in order to add the expected version. objc[5677]: Class _EntryGenericToGL is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsServices.framework/Versions/A/GPUToolsServices (0x14e59ce28) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GPUToolsAdvancedUI.framework/Versions/A/GPUToolsAdvancedUI (0x14d3a83c0). One of the two will be used. Which one is undefined. objc[5677]: Class _EntryGLToGeneric is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsServices.framework/Versions/A/GPUToolsServices (0x14e59ce78) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GPUToolsAdvancedUI.framework/Versions/A/GPUToolsAdvancedUI (0x14d3a8410). One of the two will be used. Which one is undefined. objc[5677]: Class DYPixelFormatConverter is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsServices.framework/Versions/A/GPUToolsServices (0x14e59cec8) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GPUToolsAdvancedUI.framework/Versions/A/GPUToolsAdvancedUI (0x14d3a8460). One of the two will be used. Which one is undefined. objc[5677]: Class ASVError is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsCore.framework/Versions/A/GPUToolsCore (0x13c111268) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GPUToolsASVC.framework/Versions/A/GPUToolsASVC (0x13c0177c8). One of the two will be used. Which one is undefined. objc[5677]: Class DYGPUDerivedEncoderCounterInfo is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsShaderProfiler.framework/Versions/A/GPUToolsShaderProfiler (0x13c184098) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91c7c8). One of the two will be used. Which one is undefined. objc[5677]: Class DYGPUTimelineInfo is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsShaderProfiler.framework/Versions/A/GPUToolsShaderProfiler (0x13c1840e8) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91c818). One of the two will be used. Which one is undefined. objc[5677]: Class DYTimelineCounterGroup is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsShaderProfiler.framework/Versions/A/GPUToolsShaderProfiler (0x13c184138) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91c868). One of the two will be used. Which one is undefined. objc[5677]: Class DYWorkloadGPUTimelineInfo is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/GPUToolsShaderProfiler.framework/Versions/A/GPUToolsShaderProfiler (0x13c184188) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91c8b8). One of the two will be used. Which one is undefined. objc[5677]: Class GRCPerFrameDataClass is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/MTLToolsShaderProfiler.framework/Versions/A/MTLToolsShaderProfiler (0x14e17b858) and /Applications/Xcode.app/Contents/PlugIns/GPUDebugger.ideplugin/Contents/Frameworks/GTShaderProfiler.framework/Versions/A/GTShaderProfiler (0x14f91ccc8). One of the two will be used. Which one is undefined. objc[5677]: Class DYShaderAnalyzerNextGPU is implemented in both /Applications/Xcode.app/Contents/SharedFrameworks/MTLToolsShaderProfiler.framework/Versions/A/MTLToolsShaderProfiler (0x14e17b808) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/GPUTools/PlugIns/GLToolsShaderProfilerMobileSupport.gtplugin/Contents/MacOS/GLToolsShaderProfilerMobileSupport (0x150fd8610). One of the two will be used. Which one is undefined. Looking through more of the comments, I see something like this: Quote I solved the problem uninstalling Xcode 15 and installing the 14.3, after that, I set the "/Application/Xcode.app" in the "Location:" field in the Visual Studio > preferences > SDK Locations > Apple. Then I clicked in Restart Visual Studio button and worked. — carlosmg_may 3 months ago Where I don't really see how this might help the VisualStudio, probably this will only use the commandline tools, ad not the UI. It seems to work maybe from a different location: Quote @hmlong not sure what technical reasons lays within, but actually Xcode 14.3.1 is able to work on Sonoma. Just launch it from package contents Contents/MacOS/Xcode. The latst hint seems to work, after using a PList editor. I used "JSON PList Buddy" for that, here is what I have done. Quote - Download and unpack Xcode 14.3.1 - Right click and select "Show Package Contents" - Navigate to /Applications/XCode/Contents - Copy the Info.plist file inside of the XCode.app package - Paste info.plist to an external folder, e.g. 001_ Src - Use the JSON PList Buddy tool - Goto tab Plist -> JSON, to open the 001_ Src/info.plist - Save the info.plist to JSON, 002_Json/converted.json - Goto tab JSON -> Plist - Load the converted.json file from 002_Json/converted.json - Scroll down to "CFBundleVersion" : "21815", - Edit to "CFBundleVersion" : "22265", - Save file to converted.plist 002_Json/converted.plist - Copy and rename converted.plist to 003_Final/info.plist - Copy and overwrite existing info.plist to /Applications/XCode/Contents - Save changes - Right click Xcode 14.3.1 bundle and select "Open" Hooray, XCode starts again and shows Version 1.4.3.1 At least XCode is back for the moment, but I'm looking towards the next showstoppers soon. If Apple really doesn't want us to use XCode, they will finally win. Edited February 20 by Rollo62 Share this post Link to post
Rollo62 536 Posted February 21 It seems that unfortunately nobody else has some more insights regarding Sonoma and XCode 14.3.1 vs. XCode 15.2, so I want at least post my current results here. With the method described, see above, it seems that I could successfully (trick)-install XCode 14.3.1 under Sonoma (Intel), including normal debugging function under iOS and Macos. At least this works for iOS 16.4 devices so far, which is the latest SDK offered, although the iPhone has installed iOS 16.75. I have not yet made experiments with iOS 17, but I will try soon and see how this might behave. At the moment I tested only the Rx12.0 version, without the latest IDE patch, so my next move will be to check the behavior of the Patch 1. Share this post Link to post
Dave Nottage 557 Posted February 21 33 minutes ago, Rollo62 said: It seems that unfortunately nobody else has some more insights regarding Sonoma and XCode 14.3.1 vs. XCode 15.2, I might have, if I needed to use Xcode 14.3.1 - I have read back trying to work out why you need to. Delphi 11.3 and 12 works with Xcode 15.2 for me, aside from debugging with iOS 17 devices (as you discovered - known issue, yet to be resolved) Share this post Link to post
Rollo62 536 Posted February 21 (edited) 56 minutes ago, Dave Nottage said: aside from debugging with iOS 17 devices (as you discovered - known issue, yet to be resolved) Yes, I need debugging on devices, because I need to debug external devices too. Without debugging, this turns out to be a real pain, although I have implemented massive logging meanwhile. In the past debugging worked reliable sometimes on Android, sometimes on iOS / Macos, but always some way to go. In D12 and XCode 15 it seems not to work any longer, no matter what. Another way out would be to imp,ement the according Win32 functions, to at least debug there, but also this is not running out-of-the-box. Before I put too much energy into XCode 15, I better try with the last version, ... time is NOT on my side Edited February 21 by Rollo62 Share this post Link to post
Cristian Peța 103 Posted February 21 (edited) You only need a iOS 16 device. BTW I don't write today iOS app but but at that time I learned that upgrading iOS on the device should be done only when there is a confirmation that debugging from Delphi works on new iOS. Edited February 21 by Cristian Peța Share this post Link to post
Dave Nottage 557 Posted February 21 8 hours ago, Rollo62 said: Yes, I need debugging on devices, because I need to debug external devices too. Without debugging, this turns out to be a real pain, although I have implemented massive logging meanwhile. You're not going to be able to debug on iOS 17 devices using Delphi until EMBT fix it, regardless of the Xcode version. If you need debugging on real devices, use one with iOS 16.x (if you can find one) Share this post Link to post
Rollo62 536 Posted February 22 (edited) 20 hours ago, Cristian Peța said: You only need a iOS 16 device. That would be great, but I do see certain different behaviors when I run the iOS 16 App release via TestFlight on an iOS 17 device. Those issues will be hard to find without proper debugging. 12 hours ago, Dave Nottage said: You're not going to be able to debug on iOS 17 devices using Delphi until EMBT fix it, regardless of the Xcode version. If you need debugging on real devices, use one with iOS 16.x (if you can find one) I think so too, any ideas when a fix will be available? The deadline is around April, I assume from then XCode 15 is hardly required, or allows Apple a grace time until our IDEs will be fixed? Would be great if there would be any official statement about this issue and the status of fixing it. I have iOS 16 and iOS 17 device available, but only a MacBook (Intel), so I cannot use the simulator ( which I also would not put in the ring, if not really needed ). Regarding the XCode internal changes, I'm not clear about how deep they were, but I expect the worst from what I have read so far. If you have more insights about the relevance of the changes, it would be great to get more info. I would assume that linker, debugger, PAServer and a lot more functions were affected. Edited February 22 by Rollo62 Share this post Link to post