When debugging with XCode, app works fine, when running it on device or simulator, app crashes - iphone

My application crashes when freely running it on a real device or in the simulator. When I'm running it with XCode attached, the app works fine.
The app doesn't give me any errors and since I'm not running it with XCode attached, there is no message sent to the logger.
Any idea of what could be wrong or how I could find out what causes this crash?
Thanks!

You can read about CFRelease in detail in the following thread
Cheers

If you just want to test in a device why don't you try through iTunes. Find the Target of your project in the Finder, then drag it to iTunes. You can then sync the applications. This is not a solution but an alternative to run the app on your device.

Thanks Aditya,
The crash logs in the Organizer are actually very well detailed and they even include the line of code in the implementation file where the app crashed. When going to that line of code it seemed that I was CFRelease -ing a ABRecordRef, which is an integer of some kind...therefore I shouldn't release it
The weird thing is that it didn't crash or complain while debugging, but when running it on the device it did.

Related

iPhone crash logs

I have an app in ad-hoc mode and it crash right after starts. I have access to Xcode and i try to find crash log like here: iPhone crash log?
But i have no crash log from this app. Why?
Right after app starts i can see Default.png and few second later it crash, i've never even see the mainViewController. How do get a crashlog? How to detect this error? I don't have an access to source code. I have only ad-hoc distribution.
Problem not occurs on every devices. AFAIK this is only 3GS problem. Strange.
Instead of looking for the crash log, try connecting your phone to xcode but look at the Console screen instead, run the app and you should see output on the console, see if you get an error message there.
For users who don't have access to Xcode or are running on a PC you can download Apple's iPhone Configuration Utility which also gives you access to the device console.

Crash iPhone app

I have developed an application on iPhone.
If i run it from XCode, no problem : XCode installs the app on the device, then the app is running, OK.
But then, I unplug the device from Mac, and i run the app : crash happens, OK.
I would like to know if there is a way to attach XCode as debugger when I run an app from the device, and not from XCode. Such like Windbg and dump of application crashed.
If you re-attach your device to XCode, you can access the crash log.
Go to the Organizer, select Devices, select your device, and then under your device name, you will see "Device Logs". You will be able to select and examine any of them in the next window to the right.
You will also be able to see the Console.
These should help in determining what caused the crash.
I think this is mostly due to memory issue. Check in instruments that your application consumes more memory. If so try to reduce memory conception by releasing unnecessary view controllers and mostly UIImageViews

App Crashes at Apple but not in test

My app has been (correctly) rejected by Apple as it crashes when you try to use the offline maps. The crash is in the route-me code libraries so the crash log isn't that helpful. In test it is fine, and does not crash, so I can't recreate the test condition successfully.
I am running on the same version of iOS (4.3.3) as Apple. I've tried forcing the location code to return a location on California.
Has anyone else experienced the same problem?
When I had problems with getting an app accepted to the App Store on Apple's end but not my own it ended up being some of the build dependencies for an external library I was using. I had set them in my Debug build but not my Release builds. Since I didn't test on Release builds, I never noticed the crashing. Apple did however, since that's what I sent them.
It may be an issue on their end.
This happened to me ( iPhone Crash with "No Backtrace" ). I resubmitted with no changes and my app was approved. Months later I have never reproduced or heard complaints of a single crash.
I'd recommend resubmitting an identical binary. While you wait for approval, try re-running a clean build, deleting and reinstalling the app from your device, and ad-hoc testing on "clean" devices that you haven't deployed to before to try and reproduce the crash.
I had the same problem with Apple. When I was running my app with offline maps on the iPhone simulator, iPhones or iPad, I had no problem. But with Instrument, the app was crashing when I set the delegate of the MapView to the ViewController.
The way to fix is really simple :
Had the code [RMMapView class]; just before the [mapView setDelegate:self];.
If I remember correctly, the compiler was not able to find a .xib file. Sorry don't remember exactly why I made this, but it works.

iphone - debugging on device crashes immediately

When I try to debug my app on the iphone device, the splash screen shows and then the app crashes immediately. If I run the app in the simulator or on the device (not from XCode) it runs fine. I tried putting a breakpoint in the main method and it doesn't seem to hit it. There are no logs generated. ideas? suggestions?
Are you using a Apple Developer account or have you hacked the phone to develop on it? If its hacked, that is probably the problem. There is extra data being passed to the device because of the hack causing it to crash. Not sure if there is an easy work around except paying for a developer account.

Crash logs generated by iPhone Simulator?

Are there any crash logs generated by iPhone Simulator?
the Simulator crashes a lot but not leaving any traces in Console... the crash log will be useful.
The console will show the NSLog() output from an app running in the simulator. The crash logs are saved to file.
I have found some in my home directory under
~/Library/Logs/DiagnosticReports/
They have a file extension of .crash
Something I haven't yet figured out is how to get them to generate even if the debugger grabs the EXC_BAD_ACCESS signal.
Update
Currently, (OSX 10.11.6), the .crash logs in ~/Library/Logs/DiagnosticReports, are when the emulator itself crashes. Logs for an app crashing (but the emulator device is still running fine), are in:
~/Library/Logs/CoreSimulator
Per crash, there is a sub-folder with a unique id. Sort by date, so that your recent crash is the first sub-folder. Inside that, start by looking at stderr.log and system.log.
Also directly under CoreSimulator, see CoreSimulator.log and Simulator.log.
I am pretty sure that you can see this in the OS X Console app located in Utilities. If I'm wrong though, be sure to vote me the heck down so I delete this.
UPDATE:
Specifically (as of OSX 10.11.6),
When an app crashes on emulator, a subfolder (with a unique id) is added to:
~/Library/Logs/CoreSimulator
Within that, start by examining stderr.log and system.log.
When the emulator itself crashes, a subfolder is added to:
~/Library/Logs/DiagnosticReports
Don't confuse this path with
/Library/Logs
(lacking ~ at start), which has different reports about your mac.
Here’s something that worked for me in a special case... My app was crashing with SIGKILL as it terminated. I would see the exception in main.m for a few seconds, and then the app would finish terminating – thus, no chance to get the back trace.
I did a lot of searching on “where does simulator store its crash logs” and never managed to find an answer. However, the following trick came in quite handy and I was able to grab the crash log on the fly:
Basically, open /Applications/Utilities/CrashReporterPrefs.app and change the setting to “Developer”. This will cause CrashReporter to display a popup with the crash log after your app crashes.
I found this in the “Viewing iOS Simulator Console and Crash Logs” section in this doc from Apple:
http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application.html
The crash crash logs will appear under ~/Library/Logs/CrashReporter.
If the iPhone simulator program crashes (not the iPhone app running within the simulator), then there will be an entry for iPhoneSimulator.
If the iPhone App within the simulator crashes, the crash log will appear with the display name of the app.
When Xcode gets crash logs from a connected device, it stores them in sub-folders of ~/Library/Logs/CrashReporter/MobileDevice
This is much more reliable. In only a few steps I was able to find the source line number & method name:
cd to the dir having the .app & .dSYM files
run /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-apple-darwin MyApp.app/MyApp
set print asm-demangle on
set print symbol-filename on
p/a 0×00015c64 -> address got by opening the crash log in “Console” app or just double clicking the the .crash file.
For me, it was an expression that I had added to the debugger watch window. When a breakpoint was getting hit, the bad expression was causing XCode to segfault.
You may also want to take a look at this related answer: https://stackoverflow.com/a/14984297/679240
None of the answers above worked on the "Big Sur" OS version. The only way to find the log was through the "Console" app (Application/Utilities/Console)