Using TimeProfiler from Instruments against ios5.1 device from Xcode 4.6 - xcode

I've just upgraded to Mountain Lion and Xcode 4.6 but have kept my phone on iOS 5.1 to ensure I can test my apps are backward compatible. I'd like to profile them using Instruments' TIme Profiler but I don't get any details when attaching to the app running on the device. Doing the same procedure works fine with the simulator thought. I Select my device as the target, "Build for Profiling" then "Profile", choose "Time Profiler" and the app starts on the device but I don't get any data at all, only a few little black flags to show low memory warnings. If I do the same thing targeting the simulator I get lots of data in the Call Tree panel. Is it not possible to Time Profile apps on devices? I think I have before.

It is possible to Time Profile apps on devices, but you might have unearthed an issue with Xcode 4.6 /iOS5.1 / device
instument: Leaks Time profiler
device:
iPad mini/iOS6.1 YES YES
iPhone4S/iOS5.1 YES IT DEPENDS...
iPhone3GS/iOS6.1 YES YES
simulator/iOS5.1 YES YES
"IT DEPENDS..."
...on whether you want your profile data live: the data seems to get recorded but you won't see it while the profiler is running. When you STOP, the call tree and samples list appears. Sometimes you have to do this twice to get a full list of samples (the first time you just get one sample)
This doesn't seem like something you'd want to rely on...
update
The same behaviour is exhibited under OSX 10.7/XCode4.4 and OSX 10.6.8/XCode4.2 so nothing seems to have changed. In fact the live use of Time Profiler on a device seems to be a new feature with iOS6+

Related

Xcode 12.3 keeps freezing

I updated to the latest AppStore release of Xcode (12.3, 12C33).
It worked fine for an hour or two. After that it started to constantly freeze after being open for a few seconds to minutes.
I've tried the following, all without success so far:
restart macOS
clear derived data
tried with different projects
updating to latest macOS 11
Any other ideas or suggestions how to fix this?
Update
I can confirm that this is fixed in Xcode 12.5
I found an answer by Darr on the question "Xcode freezes after upgrade to 12.3" on Apple's developer forums that worked for me:
Unpairing my device connected via network and using only lightning cable seems to have resolved the issue for me.
Xcode > Window > Devices and Simulators > device > Connect via network
After going mad, I fixed this by removing all devices from Devices and Simulators (I had connect via network activated).
For now, it's working fine.
Power off your Apple Watch
Xcode may hang if the host Mac is connected to an iOS device which has one or more companion watches. The hangs occur when the watches aren't fully prepared for development, or if they are experiencing poor wireless connectivity. (72490921) (FB8945320)
Workaround: Power off the watches, or unpair them from the iPhone.
Xcode 12.4 Release Notes
You can force Xcode to freshly prepare a watch for development using these steps:
Force-quit Xcode.
Power-off and disconnect all iOS device from the Mac.
Reboot the Mac.
Launch Xcode, close all projects, and open the Devices and Simulators window.
Power-on and unlock an iOS device and its companion watchOS devices by entering the passcode as required.
Plug the iOS device into the Mac using USB cable.
Check each iOS device and each watch for any pairing request and approve the requests.
Monitor the status of device preparation in the Devices and Simulators window. If Xcode presents device-preparation errors, follow the guidance in the error message to resolve the error.
Once Xcode finishes preparing the iOS device and its companion watches for development, repeat steps 5 through 8 for each remaining iOS device and its companion watches until you verify that Xcode has prepared all devices for development. You may now open your Xcode projects and resume development.
I've been having the same problem. I had an iOS device connected via USB, unplugged it and it un-froze. Then I continued to have issue requiring force close each time.
I then clear derived data and things have been fine. I opened a StickerPack project and also had the same issue. Clearing DerivedData also fixed it.
Clear Derived Data:
Xcode pulldown menu > Preferences > Locations tab
Click the little arrow next to the path under Derived Data.
Delete the entire folder for you project. It will look like "MyAppName-bwonddotztrgkkfexrjxoncvmjit"
See this explanation about whether it's safe to delete DerivedData for your project.
I had the same problem with appstore version and someone advised to install from site, now it works fine. https://developer.apple.com/download/more/
Disable WLAN on my iMac fixes the problem currently.
Hope they will releast a fix very soon.
Xcode 12.3 is unstable and many times it crashes.
I reverted back to Xcode 12 and copied disk image of 14.3 in Device Support folder of Xcode (Contents > Developer > Platforms > iPhoneOS.platforms-DeviceSupport).
This I needed to debug on iPhone device having version iOS 14.3
https://github.com/mspvirajpatel/Xcode_Developer_Disk_Images/releases
I recently had similar situation. My Xcode 12.3 project could not be opened. I tried to open directly from popup that appears on start of the Xcode.
What worked for my was to downgrade Xcode to 12.2 and launch Xcode on new project. And then click my old one.
Maybe it would work without downgrading but I didn't check.
I had this problem too. I fixed it by going Devices and Simulators in the Windows file and disconnecting the iPhone reference I had for my phone when testing and app. Since the phone was no longer connected, its presence seemed to create a freeze.
In my case XCode 12.5 hangs/freezes on startup more or less instantly, right after it opens kind of an empty workspace.
I removed everything that I could imagine that deals with XCode on my machine, but it didn't help.
At the end I just used the hotkey for "Close Workspace" - Ctrl+Alt+Cmd+W
I hit this combo very often, very fast right after opening XCode and it worked!
The strange empty workspace showed up and closed instantly - now I could select other projects and everything works again.
There could be the multiple reasons and in my case reason was source control
preferences > Source Control > uncheck Enable source control
I have these performance problems with the newly updated Xcode from the AppStore to 12C33 (Xcode frozen for many seconds, instability of interface builder, etc.) only with apps which have frameworks added with cocoa pods and when working in the xcworkspace-file. (Integration of frameworks with Catharge even fail with error message 65). I'm running Xcode under macOS Catalina. Don't know what the technical reason could be, hence would appreciate if someone has an idea on this how to fix it.
Update: In the meantime I could fix it:
I eliminated my own devices from the device list and did then a deintegration and a new install of the cocoa pods for the projects. Afterwards I setup my devices again in the device list and all worked well again. Only eliminating and reintegration of my devices as described above didn't work in my case.

Location Simulation not working in Xcode 10 and iOS 12

I am developing an app that uses GPS. In the simulator I always used the location simulation feature of Xcode which always worked for me.
I selected the Debug - Location - Freeway Drive option in Xcode 10.
Whenever I select some preset to simulate, Xcode shows the following error:
[Client] #Spi, Interrupted
GPS is enabled on the simulated device and the app has permission to access the GPS. I already tried to restart the simulator multiple times, selected another device, but no device works. Does anyone have a solution to this?
Regards
Xcode 10 is broken with respect to Location Services in my experience. I've had to go back to 9.4 to develop and debug apps, but even then I have had problems with running apps originally modified with Xcode 10 running in iOS 12.
Apple is having serious, SERIOUS quality control issues and legacy issues with each new release of Xcode and iOS. I'm very frustrated and annoyed.
I was having this issue and reseting the simulators seems to have fixed it for now:
$ xcrun simctl erase all
Simply click City Bicycle Run and then City Run in Debug -> Location in the Simulator over and over again until it works. At least it worked for me that way
I'm suffering the same issue with Xcode 10.1 and iOS 12. Several restarts of the App and toggling between different locations (None, Apple, City Bicycle Ride) make it work again.
Quite annoying
This worked intermittently as a workaround for me:
On the simulator debug menu, select location and freeway drive (or whatever you want) several times until it starts to track the location.
It also helps to build the app on the simulator again
Good luck!
Looks like the location simulator has not been fixed in Xcode 10.1 update.
In the simulator, go into device settings / Privacy / Location Services. Toggle Location Services off and then back on.

Proper way to debug watchos2 app in XCode7

I'm rewriting my watch app to work in watchos2 but have problems debugging on the actual watch (XCode7). What is the correct way how to do this?
1) Obvious (but naive) approach - connect your phone with paired watch, in XCode select Extension scheme to run on Phone + Watch. Click play and it should work, right? This seems to work only just after fresh pairing and breaks very quickly (after few debug runs). See issues and behaviour below
2) Run phone app first then add run of extension - this approach worked for me longer but eventually broke as well.
3) Unpair and pair again - more than painful experience, time consuming and not practical at all. Will help for a while though.
Main problems:
phone app not communicating - I've seen not reachable or messages just time out
watch app stops running - XCode is saying it's running but it's not - won't even attach. If I run it manually on watch most of the times it will attach but then the phone app is not reachable
watch app won't even install - I suspect when the XCode is saying it's running it in fact it doesn't because when I remove the app from watch and then run XCode goes through the whole install process and "running" but the icon doesn't even appear on the main screen
phone stops reacting when I use option 2) and try to run something else while app is attached
phone seems to be blocked, selecting other apps (even going back to my app) won't work until I kill the session
Setup: The phone and watch is paired correctly, phone can see watch, watch can see phone, other apps are working. Watch "trusts" the computer as well, app is "shown on apple watch". Phone is 5s 9.0.1.
I've tried various restart combinations (phone|watch|xcode|mac), shuffled cables, disconnect, reconnect, etc. but that didn't help either.
Did anybody find a usable way how to debug watchos2 app from XCode? Nobody else seems to be complaining about this with released XCode7 though I've seen lots of similar issues in beta builds.
Use Apple watch recharging cable, connect your watch to developing Mac that runs Xcode.
It provides much more successful and fast debugging.
I have been dealing with the same issue this last days, I just updated to iOS 9.2, watchOS 2.1 and XCode 7.2, and now everything works.
After update XCode to 7.2, iOS9.2 my phone and WatchOS2.1 my Apple Watch the debug process is better. I suggest to update all your devices.

Xcode5 won't allow Frame Debugger / Analyze button is greyed out

Xcode 4.2+ and Xcode 5 have a very powerful debugger for OpenGL ES. Until recently, the debugger itself would crash often (it didn't work reliably for me until Xcode5.0), but it sometimes disables itself and refuses to run at all.
This being an Apple application, they don't bother with error messages, they simply refuse to let you press the Analyze button:
I can't find any reference in Apple's docs to a situation that would "disable" the analysis. I know that it can work on this machine, because it worked fine on a different device.
Device that works:
iPad3, running iOS 6.x
Device that Xcode5 refuses to work with:
iPad Mini, running iOS 7.x
...I've tried updating to latest 7.x - no change. Xcode just refuses to work properly. All other debugging works fine.
It's not a perfect answer, but I've noticed something that might explain it...
When you pause the debugger, this triggers the button to grey-out. So, if you needed to analyse the frame at a particular point in your app ... you can't.
It sucks, and I have no idea how you're supposed to debug something without using the debugger, but ... it might be why I was getting disabled button!

Xcode Instruments - Enable NSZombie Detection? Where is it?

I have watched this video
http://www.markj.net/iphone-memory-debug-nszombie/
The guy shows an option called Enable NSZombie Detection on Allocations inside instruments, but my Instruments doesn't shows this option. This guy's video was done using a one year old version of Instruments and I am using Xcode 3.2.5. Do you guys know where this option is now? How can I enable it for iPhone apps?
thanks
In XCode 4.0, this 'Enable Zombie' option is only present in iPhone simulator and not when you profile on actual device.
The zombie option is available in Xcode 3.2.6 under the allocations tool if you run in the simulator. For debugging memory crashes due to too many dealloc, the simulator will work just as well as the device nearly every time. BTW I am 'The guy' in the question ;-)
You can find it in Instruments in the Allocations Instrument. The easiest thing to do is to select:
Run -> Run with Performance Tool -> Allocations
This will start the application and Instruments will start recording. However, the Zombie detection may be off. To turn it on, stop the recording, click on the 'i' icon, and check 'Enable NSZombie detection'. Once it is enabled, start the recording again.
It should be noted that in XCode 4.0, one can only enable zombie detect in the simulator, not when running on a device.

Resources