memory instruments not working in xcode - xcode

After some upgrades to Xcode i am experiencing a strange situation:
when i start instruments to profile my apps (both on ios or mac) it works well with all the instruments (for example cpu monitor, or i/o monitors) but i cannot use the memory management ones: Allocations, Leaks, Object graph. If i start the profile window by clicking on leaks it just opens an empty "Instruments document", and if i drag them from the library panel they don't show up, but all the others do. Anybody is experiencing this behaviour? Maybe some missing library?
My Xcode version is "Version 4.2 Build 4D199" and my instruments version is "Version 4.2 (4233)"

I solved this by updating Xcode to version 4.2.1 (Build 4D502).
One thing that I noticed, since I've installed Xcode using the Mac App Store, was that the update process behaves like the install - it downloads an app called "Install Xcode" which you run to install/update. So be sure to run the installation app after first time download or update.

Related

When I attached my device to the xcode and try to build my project it's generating error

Could not locate device support files.
This iPhone 5s (Model A1457, A1518, A1528, A1530) is running iOS 10.3.1 (14E304), which may not be supported by this version of Xcode.
You need to update Xcode whenever the iOS version you want to work with is higher than the highest version that Xcode's simulator has installed. This can be done one of two ways. The simplest is to use the App Store to download/update Xcode. If the App Store doesn't show any updates, you must manually download the latest Xcode build from https://developer.apple.com/.
You will need to manually download from the Developer portal when the version of Xcode on your computer was downloaded there previously. For example, many beta testers may download the file directly instead of using the Mac App Store, since it is a beta download.
I would recommend trying to keep updates done through the App Store by downloading Xcode from there initially. The benefit to this is that it can automatically update as well as save space on your computer (Xcode is a big file, and you may not have enough space to download a new version if you still have the old version).
As of the comments, I will now write an answer. :-)
Whenever you encounter this error there might be two reasons for that:
The OS version is too old
The iPhone's/iPad's OS is too new for your Xcode version
If it is too old, you may need to download older SDKs and OS versions.
You can do so in Xcode. Go to "Preferences" -> "Components" and download the appropriate Simulator.
If the devices OS is up to date, you have to make sure your Xcode is also up to date.
Either you update Xcode through the AppStore OR (and I prefer this way, as the AppStore is used to hang up in a certain state and cannot be completed any longer until you restart the Mac, at least I had this several times).
Side note: Xcode requires multiple GB of free storage. Make sure you have enough free storage left for an update.
You can download the latest Xcode version from the https://developer.apple.com portal:
Go to Downloads:
And then select the item of interest (in your case Xcode)

Problems with Xcode 7.2.1

just install the new version of Xcode (7.2.1), he took a little longer than expected.
But when it finished and run the xcode continues with version 7.1.1
I thought it would be solved by restarting the Mac, but no.
Any idea what can be spent? or happened to me to be done?
!EDITED!
My MAC version.
My xcode options
My applications
I had exactly the same problem. I installed 4GB large 7.2.1 version of Xcode from the AppStore over an existing 7.2 version, and whichever way I was launching Xcode it was always the same old 7.2 popping up. What was worse I could not download 7.2.1 again, as AppStore app was not showing Install button anymore, but rather Launch button instead (like it was installed).
Finally I found a solution. I went to Downloads for Apple Developers site (a login to a developer account was required), I dowloaded Xcode_7.2.1.dmg 4.7GB large from there, launched an installation... which successfully replaced the older 7.2 version of Xcode.
Another answer suggests installing Xcode via a Developer Member Center download. I'd like to caution against this, and suggest an alternative approach.
Shortly before Xcode 7 became available, I upgraded an Xcode 6 installation to 6.4 by using the download. I did this to save download time for upgrading multiple machines (I put the installer on a flash drive). I subsequently discovered that using the downloaded installer broke tracking the version history in the App Store, and I was no longer able to upgrade via the App Store. Also, I was no longer notified of pending Xcode updates via the MAS "Updates" panel.
So a possible consequence for you may be that the App Store may not be able to handle your future Xcode updates, or even notify you when an update is pending.
What I ended up doing was deleting my then-current Xcode installation (I used AppDelete to get all of the components of the installation), and starting from scratch using the App Store. I recommend doing the same. Probably the best way to start is to try deleting Xcode via Launchpad. But if that doesn't work (say, it doesn't delete all versions if you still have multiple versions), try AppDelete or a similar app.
I should note that one reason I used the download to upgrade Xcode 6 was that I'd done so previously without breaking the App Store's ability to track Xcode's version history. Whether that previous behavior was a fluke, or whether the later behavior (losing the version history) was a fluke, I can't say.
If you've already installed via the Member Center installer, you can check to see if you'll have this problem by looking up Xcode in MAS. If the store shows you have the version you manually installed, then all is well (probably!). If not, either you'll have to keep track of updates by yourself, or you should re-establish MAS version tracking by deleting Xcode and starting from scratch via MAS. I'd be interested to learn whether the store is tracking your manual installation.

Xcode 4.4 - There was an internal API error

Hi I just upgraded to Mountain Lion. I created an empty Single View Application and run it. The first time it runs fine but the next runs will give me the "There was an internal API error" pop-up warning TWICE. It's the same with my other projects. They run okay once but gets this error the next runs. There was no warning or any specific warning message of any kind.
Any idea how to solve this?
Would really appreciate your help.
I have it working on iOS6 Beta 4!! This is what I did but other variations may also work:-
Install XCode 4.5 Developer Preview 4
Delete your app from the device
Run your app from Dev Preview 4
Delete your app again (not sure if you have to do this)
Return to XCode 4.4.1
Run your app, stop running, run again!!!
Of course you could continue developing in 4.5, but I prefer to wait.
Installing 4.5 Beta 4 installs updated device support. Once this is done once (possibly on any device) it should work fine. If you use the same device on a different machine you will have to again run it once from 4.5 Beta 4 before using your preferred version of Xcode (You do not need to delete the app from your device this time).
Edit: I am pretty sure that if you make a change to your core data you will need to run from 4.5 for the first time also.
Don't know if this helps, but I've deleted all files in ${HOME}/Library/Developer/Xcode/iOS DeviceSupport and it worked as a charm (Xcode 4.4.1, OSX 10.7)
I had this problem when I upgraded my device to Preview4 but had my MBP still running Xcode Preview3. Updating to Xcode Preview4 made the problem go away for me, no restarts necessary.
Deleting the app manually from the device/simulator will allow you to build and run successfully. A long term solution is to not use a Beta Xcode :)
Sounds crazy but you can also not use the Beta version of XCode 4.
However, you must keep it in your left hand to authorize your iPhone to compile with the non Beta version (don't ask me why, it works).
If you run your app with XCode 4.5 preview & IOS6 Beta 4, the second time you run your app on the device, you'll get the internal API error.
In theory, you cannot use XCode 4.4 to compile on your iOS6 Beta 4 iPhone.
But...
It seems that, if you launch XCode 4.5 Preview, connect your iPhone (so it is recognized), run the application on it (even if you get the error), quit XCode 4.5, launch XCode 4.4 and .. tadaaaa... your iPhone is now recognized as an authorized device to compile on...
And of course, XCode 4.4 doesn't generate the api error...
I have Xcode 5.0.2 and iPhone with iOS 7.0.6.
Every time when I launched my project on iPhone, I saw "There was an internal API error". And it was launched on simulator without any problems.
I did all the stuff that usually helps (like remove an app, clean, restart Xcode, restart a mac, etc.).
This problem went away only after I restored the iPhone. Sad but true.
I don't know so far, why it appeared.

Xcode Instruments is stripping symbols despite all build settings to the contrary

Problem
Instruments' Time Profiler is stripping all symbols except system libraries from my app, despite the fact that I have disabled this behavior in all relevant build settings in Xcode — but only on one development machine. The other dev machine behaves normally.
Description
Instruments' Time Profiler is stripping all symbols except system libraries, despite the fact that I have disabled this behavior in all relevant build settings in Xcode — but this is only happening on one of my development machines. I have two development machines running the same version of OS X, Xcode, and Instruments, and each machine is using an identical copy of the same Xcode project with identical build settings, schemes, and other configurations, and the app is profiled using the same test device (iPhone 4S with the latest public version of iOS 5).
Machine 1
- Mac OS X 10.7.4
- Xcode 4.3.2 (4E2002)
- Instruments 4.3 (4321)
Machine 2
- Mac OS X 10.7.4
- Xcode 4.3.2 (4E2002)
- Instruments 4.3 (4321)
Steps To Reproduce
Open included sample project on each machine.
Make sure the iPhone 4S is selected as the test device.
Select Product > Profile
When Instruments launches, select Time Profiler and continue.
Run the app.
Notice how the symbols are stripped when running on the iMac (Machine 1) but not on the MacBook Air (Machine 2).
Expected Behavior
Symbols from my own code should appear in the Time Profiler on both machines.
Regression
I have tried all of the following, with no change in the actual results:
Rebooting the machine.
Trying other Xcode projects
Deleting the "Derived Data" for all projects in the Xcode Organizer.
Re-symbolicating the document in Instruments (carefully selecting the correct DSYM file in ~/Library/blahBlahBlah…)
Final Notes
Here is a link to a .zip file of a sample project: Sample Project .zip
I was finally able to get it to work by a method that's just shy of a nuke-and-pave scenario:
Make absolutely sure all symbol stripping is disabled for your current build configuration. Make sure you've done this for your Release config if that's what's being profiled for Instruments.
Delete the app from the iOS device.
Restart the iOS device.
Restart the Mac (I don't trust Xcode or Lion at all to quit all relevant processes otherwise).
Launch Xcode, go to Organizer > Projects and delete Derived Data for the affected project.
Clean your project. Hell, why not?
Build and profile for Instruments.
Choose the Time Profiler in Instruments for clarity.
The first run will not show the symbols, but don't quit. Leave Instruments running!
Re-symbolicate the document in Instruments, navigating carefully to the correct dSYM file for the current build. This should be easier since you've deleted the derived data in step 5.
Now you should be able to see your symbols. It helps if you hide non-objective-C symbols.
Why do I suggest that you delete the app and restart the iOS device in Steps 2 and 3? I have a suspicion that Xcode doesn't perform a clean installation of each build, but may install deltas, such that the symbol addresses present in Instruments are a mixture of the current build plus previous builds. If so, then this issue is even more common for someone like me, who shares a single test device between more than one Mac. This assumption could be wildly incorrect.
If the above steps don't work for you, please let me know in the comments. I'd like to create a detailed radar report at some point in the future.
I'm not sure that it has been fixed in the 4.3 but this is a known problem in 4.2 seen here
Instruments
There is a known issue with the Profile action from Xcode 4.2. After a build in which no source files have changed, Instruments will be unable to gather symbols for the target application.
This affects projects where both:
The Release configuration is selected for the Profile action.
(default)
The Strip Linked Product build setting is set to "Yes”, or
a custom Run Script build phase strips the product. (non-default)
The workaround is to do any one of the following:
Perform a "Clean" on the product before initiating the Profile
action.
Do a Clean of the product and temporarily set the Strip Linked
Product build setting to "No" while Profiling.
Set the configuration of the Profile action to Debug.
Run successive profiles directly from within Instruments when you do
not need to rebuild. When developing Mac apps, using the GC Monitor
template in Instruments may cause Instruments to crash. To
workaround the problem please consider migrating your application to
ARC.
I've had a similar problem for days. I was able to profile the Debug configuration, but not Release. First I tried to make a copy of the release configuration (as suggested somewhere on the web), but that copy did not work either.
Then I made a copy of Debug, called it Profile, tried it and the symbols of Profile were shown in the profiler. Great! I then changed the optimization levels etc. to the same as Release, and now it works! Just wanted to share this, as this comment would have spared me hours...
Have been facing the same and stumbled upon this thread.
I realized that I first profiled the app with release build and after changing the scheme in Xcode for the same app, the profiler was still unable to symbolize. I have tried all obvious solutions you mentioned above but in vain.
The profiler somehow is still referring to the first build (release build)'s settings and hence it is not able to symbolize. So, I just changed the app's bundle identifier for testing purpose so that a new app is created altogether for profiling purpose. I could check the code where leaks exist now.
Try it out and let me know if this works for you too. Still pondering over why Instruments is failing to symbolize though.
I had a similar issue where I had no symbols in my os x application that I built from the command line (so in this case it is not an iphone or xcode issue). It turned out the problem was due to a bad DYLD_LIBRARY_PATH that contained my PATH. When I got rid of all those non-library paths, such as /usr/bin/, it worked.
I have a lot of third party frameworks whose symbols and binaries are unfortunately getting lost.
Additionally, my app's binary was getting lost.
I.e. if I selected File > Symbols, clicked my target, and found the similarly named item, the Binary Path was showing up red.
The solution was to go to Instruments > Preferences > Symbols, and add /Users/<MY_USER>/Library/Developer/Xcode/DerviedData to the search paths. Library is not indexed by Spotlight. After doing this, I have at least had the symbols for my app. The little circle next to my app's name goes from Yellow to Green when I do this, and persists between restarting Instruments, unlike other solutions to manually set the binary.
Let me know if you can tell me how to get all the ones for my third party frameworks. I use Carthage for some, others installed manually. Have had no luck with these yet.
I've managed to solve this by:
Disconnecting the device
Deleting the iOS Device Support files for the device's version of iOS in ~/Library/Developer/Xcode/iOS Device Support
Reconnecting the device and letting Xcode reinstall device support.
To be safe I first quit Xcode and Instruments, deleted derived data, and did a clean build as mentioned above, but no need to delete the app or restart any devices this way.
Try open XCode 3 and him Organizer. And try add from this Organizer a devices to both machines.
Just open Organizer and wait him processes. If you're see a button "Use for development" then click him.
Sometimes, XCode 4 can't add a device a truely for full development.

Cocoa Screensaver Framework error message

I'm trying to make a screen saver using the cocoa screensaver framework. The project builds fine and generates the .saver file, but when I try to run it in the preferences test window, it displays the error message:
"You cannot use the screen saver with this version of Mac OSX. Please contact the vendor to get a newer version of the screen saver"
I have the xcode settings to Release | x86_64, and I am running OSX 10.6.6 on a 2.4 GHz Intel Core i5 Macbook Pro. I've searched around online, and most of the solutions to this error message seem addressed to making sure the build is 64-bit, which the x86_64 setting should indeed take care of. I am trying to play a QT movie in the screensaver, if that makes any difference.
I am at a loss, any help would be appreciated. Thank you.
Make sure the Garbage Collector settings is set to at least "Supported". A lot of hosted frameworks will now require this setting - for instance Preference Panels need to be at least at "Supported" or it will cause System Preferences to restart its self (as with 32bit)

Resources