I have been developing for iOS but am new to Instruments. I was going through some tutorials for using instruments but most of them use Run with performance tool->object allocations, which is not present in my XCode (3.2.5) . If I select "Allocations" (which is present in my XCode), there is no option to select zombies (as is expected in Object Allocations). And also, Run with performance tool -> Zombies is disabled. Why does XCode disable the zombies option?
This post talks about it: Xcode "Run With Performance Tool" disabled?
I believe you are building an iOS program. As said by Apple engineers, most items under Run with Performance Tool need dTrace support, but dTrace is not available for iOS yet, not even for simulators.
I'm looking into this myself right now. If I find out more, I'll update this post. I was also hoping to use the Zombies performance tool for ios development. :(
Update: You might also look at How to run iPhone program with Zombies instrument? . I'm going to try that out.
Related
I started using Xamarin.UITest for cross-platform testing (IOS & Android).
With Android it worked instantly without any problem and it keeps forking even after any SDK update or JDK.. name it!
But for iOS there was so many issue encountered with the device agent that didn't want to start, the wrong Xcode commande one, the wrong Xcode. Some time it worked, but out of no where it crashes.. then you must clean, rebuild, retry, cross your fingers it doesn't crash or at least that it will launch..
But now April 19 2019, I had an iOS update, combine with an Xcode update and sadly, it doesn't work anymore. I made a lot of research and attempt to recover my test case:
Downgrade Xcode to 10.1
Downgrade Xcode commande line tool to 10.1
downgraded the OS!
To finally rethink it. It's not a good solid testing tool if it breaks at every updates.
On the AppCenter it still works for both platform. But to create your test, you have to run them locally.. You can't anymore with iOS and if you find how to make it work, let me tell you : "See you for the next update!"
So the question is:
What are the alternative to do some automated UI test for iOS & Android using Xamarin?
Xamarin.UITest Xcode 10.2 support
Sorry to hear about your difficulty with the Xcode update.
Unfortunately Xcode minor updates for the last several releases have tended to break local iOS simulator testing, and occasionally device testing. I've seen this be an issue since at least as early as Xcode 9.x versions.
For context, Xcode 10.2 support was added in this package: https://www.nuget.org/packages/Xamarin.UITest/2.2.7.2002-dev
If you or future readers of this discussion still do end up using Xamarin.UITest, I recommend checking the release notes when new minor versions of Xcode come out to see if that support has been confirmed. Typically the support has been added in the 1st Xamarin.UITest package released after a new minor version of Xcode has been released.
(I generally haven't seen this issue with patch versions though, for example Xcode 10.2.1 didn't seem to cause any issues when it came out if it was run against a test suite that was working for Xcode 10.2)
Other testing frameworks
As for other testing frameworks, if you're using App Center itself; then Appium (JUnit) or Calabash are both able to be used with App Center Test and can be used cross-platform to run against your IPA/APK, generally regardless of what was used to write the apps in the first place, like Xamarin.UITest. (Though each framework has slightly different set up requirements and limitations.)
Outside of App Center Test, there may be other testing frameworks you can use; but that gets more into individual developer opinion which strictly speaking is out-of-scope for Stack Overflow answers.
Appium Studio which holds all the pros of native Appium. It also supports parallel execution with built-in test reporting mechanism. They also provide cloud devices with which you can check whether it is feasible for your project. Check out their documentation for more features.
I am trying to profile a desktop OpenGL program with XCode. Neither instruments nor XCode's "capture GPU Frame" seem to be doing anything.
Are these features iOS only and just not labeled as such? If so, what are the options for profiling OSX OpenGL programs?
Yes, the Xcode "capture GPU frame" is only functional when running on iOS (at least, in Xcode 6.3 - perhaps this will be enabled in a future version). You can use the the OpenGL Profiler provided by Apple, which offers the similar functionality.
Are there any tools that would allow me to monitor memory usage and leaks? For example, I want to track memory usage when releasing objects manually vs automatically with ARC enabled.
It's called instruments, you can acces it from Product -> Profile -> Leaks in xcode
Instruments is probably the easiest to use and does a pretty good job. It comes with Xcode and you can run it directly from Xcode when you launch your application.
Instruments is quite good at this, but still I find myself using the leaks and heap utilities quite often.
Can anyone tell me where I can get more information regarding iOS architecture and xcode organiser window.
Thanks in advance.
Assuming that you're just getting started with iOS programming, I'd recommend either checking out the "Getting Started" documentation that Apple provides on its website, or grabbing a book that provides an overview of Objective-C and Cocoa Touch from your local bookstore. I've always enjoyed the stuff that Hillegass & Co. at Big Nerd Ranch produce, so I might recommend starting with their "iPhone Programming" manual.
Xcode's Organizer window is a little strange at first, since there are no real counterparts to it in Eclipse or Visual Studio, but most of the step-by-step tutorials that you can find online and in iOS programming books typically do walk through your use of the Project Organizer for managing your devices and provisioning profiles. (This is all it's really useful for, unless you start getting into advanced use of a version control system.) If you're a casual or beginning iOS developer, then once you get your development devices set up and your development profiles loaded onto those devices (documented clearly in step-by-step fashion on the Apple Developer site), you probably won't come back to the Organizer much unless you need to grab an output log or a screenshot from your device.
I am trying to find memory leaks from my Xcode project. I don't know, what happened - I can't select anything from Run->Run with performance tool - the list of things are disabled.
Please help me, I am a beginner.
The problem was i have deleted the build folder and was trying to run with performance tool, without building the code again, if you need to test your app with performance tool, you must compiled your code, and you need to have build folder in your project.
I believe you are building an iOS program. As said by Apple engineers, most items under Run with Performance Tool need dTrace support, but dTrace is not available for iOS yet, not even for simulators.