iOS Simulator known issues - objective-c

I have both provisioned devices set up to be built to by XCode and the built-in iOS simulator. In general I like to do quick bug-fixes and early-stage testing in the simulator because it tends to be able to do multiple runs more quickly.
Does anyone know of a resource that lists known issues with the simulator? By "known issues" I mean situations where the simulator's behavior deviates significantly from that of the device. Sometimes I won't know if something is a genuine bug or just a simulator problem and it's kind of a pain to run on a testing device just to verify.

Related

Capture logs (errors, warnings) in exported/deployed OSX app

I am exporting my app as a .app and testing it on different OSX versions and machines. Is there any way to capture warnings, errors, etc. to a log?
The application is not crashing so a crash log is not being generated.
The best way to capture these is using something similar to TestFairy (framework for android / ios beta testing), I suggest you take a look at that, to see what functionalities it provides and the search for something similar on mac os.
Found these two for Mac :
hockeyapp
plccrashreporter

Difference of memory organization between iOS device and iPhone simulator

I'm trying to develop an app using Xcode 4.3.3 with iPhone 5.1 simulator.
When i run this app on simulator, i got no warnings and it's working very well. But,when i try to make this work on iOS device,i got an warning message which is Received memory warnings. I got this warning message while the app starts to display images on the screen. I'm using SDWebImage project which is available in github to display images.I think this problem is releated to how memory organization differs from iOS device to simulator. I have looked this question How does building for iOS device and simulator actually differ? to see how the building app for iOS Device and Simulator differs. But,what i found about memory organization didn't satisfy me. Do you guys have any idea why this is happening ?
Another question : Is there any limitation for an application in the context of memory management? What i mean is, for example let's say 5MB memory is allocated ,will i get any messages which points to this issue ?
Thanks in advance.
You will never get memory warnings in the simulator unless you create them yourself (with the "Simulate Memory Warning" option). You have access to the entire memory of the Mac, including virtual memory. You had better not run out with a mobile app...
If you're seeing memory warnings on device, it means you're using too much memory. The best tool for determining where you're having trouble is Instruments and specifically the Allocations instrument. This will show you what is taking the most memory and where you should focus. Most memory warnings are due to a leak or retain loop.
you should better do not debug with the simulator , because the simulators memory is the mac , but your devices memory is very limit , and the capability of the simulator is better

Can I build and compile an app built for jail broken iOS and run as a development app on my device?

Just a quick q about iOS development..
I'd love to be able to run a certain game emulator on my iPad..
If it's released under open source is there any thing stopping me from compiling it and running it in an emulator or getting a provisioning profile and running it on my device?
Do jailbroken apps tend to use libraries that wont run on a vanilla copy of iOS?
I.e. Do they patch the kernel to get full control of the video controller etc..
Thanks
Daniel
I think the jailbroken apps can utilize eglibc or glibc, as when I jailbroke me iPod Touch, I remember looking over the installed packages, and remember seeing something along the lines of glibc.
In short, I think if the app is self-sufficient, you probably could package it with XCode, but if it requires some low-level APIs and libraries, you're out of luck.

Speed of program in iPhone simulator

How does the speed of a program when run in the simulator compare to a real iPhone or Ipod touch? Is it faster or slower?
iPhone simulator is simulator. It doesn't emulate real hardware, just mimics its behavior. In fact, apps compiled for simulator are just x86 binaries executed on Mac OS X machine directly. So it fully utilizes all processing power and network bandwidth of the development machine.
You can assume you're running regular Mac OS X app. In fact, it is. This is the answer for why we can't run iOS app in iOS simulator. You need compiled binary for x86. However, with this approach, you can't get exactly same behavior with real device.
Basic UIKit graphics are very fast because it's simulated on top of OS X's Quartz which is hardware accelerated, but the OpenGL ES context is an exception. It's really slow. Even it's a simulator, the simulator emulates OpenGL ES with software renderer to display correct result. It doesn't use hardware accelerations.
Android emulator is an emulator. It's essentially a VM emulates all of target machine behaviors, so it is far more slower than iPhone simulator. But it can behave exactly same with real device. You can even run Android app from Android market on Android emulator directly.
However there is some gotchas. There're so many Android hardware, but emulator only emulates a part of them. Google's implementation. If your device have its own special module, of course, it cannot be emulated. It's possible using some kind of emulator plugin from each hardware vendors, but as I know, almost no vendor offers it.
So, iPhone simulator is always a lot faster than real device. And Android emulator never been faster than real device even it had become a lot faster than initial release.
iPhone simulator (fully?) utilizes computer resources so it runs faster than real device.
That may mean that you need to always make application tests on real device to get adequate picture of application performance.

Simulator to run Symbian applications

Are there any simulators that run symbian applications?
Since its introduction, Symbian has provided an emulator to allow development of Symbian on a PC.
Currently, the Symbian Foundation is developing a simulator which will eventually replace the emulator. At present, however, this is a work in progress and is not really suitable for general purpose Symbian development.
What is the difference between the two? The links above will provide the full story, but the key difference is as follows:
The emulator is effectively a port of Symbian OS to a new architecture: whereas all Symbian devices in the market today are based on ARM architecture, the emulator is a port to x86. This port is not a particularly faithful representation of a real device however - for example, while Symbian OS on the device provides memory protection between user-side processes, the emulator runs as a single Windows process, with each Symbian process running as a separate emulated thread. This and other aspects of the emulator mean that your app may behave differently when moved from the emulator onto the device.
The simulator is based on QEMU, which provides instruction-level simulation of the ARM architecture. This means that the same binaries can be run on the simulator and on the device (at least in most cases - each device, including the simulator, still has its own adaptation layer which is not portable in this way). The simulator also more closely models a real device - providing, for example, the same level of memory protection.
The emulator is included in the Symbian SDK.
Assuming that you installed the SDK in the default location, to run the emulator just launch
C:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\release\winscw\udeb\epoc.exe
You can find here more detailed informations.