Crash reports from app on App Store - iphone

I have just released an application on the App Store but for some users the app will crash. I am not able to reproduce this problem and therefore I was wondering if there is any way to get a crash report from the user so that I can get an idea of why the app will crash.

Being only a very part-time iOS developer and having a small app that doesn't have too much going on, I've not until recently had cause to try and find crash logs. Google led me to this very old thread.
Just in case anyone else ends up on the same wild goose chase - at the time of writing (mid-2018) iTunes Connect has been rebuilt as App Store Connect and, in the web portal, all you can see is number of crashes and so-forth. To download energy usage and crash report logs from Apple servers, you actually go to XCode. Window -> Organizer -> Energy or Crashes tab [EDIT: Still correct in June 2022, XCode 13.4.1].

You can get crash reports via iTunes Connect. Here's how:
Log into iTunes Connect
Click "Manage your Applications"
Select your app
Click the app icon under "Current Version"
Click "Crash Reports" on the right side

URL : https://developer.apple.com/news/?id=nra79npr
But make sure you have configured your appstoreconnects credentials in xcode.

Just in case someone is still looking for this answer in 2019, here is how i did it.
1.) Login to Apple iTunes Connect
2.) Goto My Apps >> Select your app >> Activity
3.) Select your build number
4.) Select Download dSYM in General information
The below link helped me and you can find other ways to download dSYM (e.g.: from Xcode) from here.
References: https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile-ios/configuration/retrieve-dsyms-bitcode-apps

hey i thorogly search and find this
iOS 5 and later Tapping Settings > General > About > Diagnostics & Usage will allow you to choose between Automatically Send and Don't Send.
iOS 4 and earlier By default, opting in is a one-time decision. If you'd like to change your decision, you can reset warnings for your iOS 4 or earlier device so that you will be asked again.
How to reset warnings within iTunes Connect your iPad, iPhone, or iPod touch to your PC or Mac. Wait until your device has appeared on the left side of the iTunes window under Devices. Right-click (Mac or PC) or Control-click (Mac) the icon for your device. From the shortcut menu, choose Reset Warnings:
The next time you sync after resetting warnings, you should see:
To disagree and stop sending Apple diagnostic and usage information, click No Thanks.
If you don't see the window above Disconnect your device from your computer. Open an application on your device. Press and hold the Sleep/Wake button until the red slider appears, and then press and hold the Home button until the application quits. If you're using iOS 2.x or earlier, press and hold the Home button until the application quits. Connect your device and sync it with iTunes. The option to agree or disagree to diagnostics collection should appear again.
Chearz;)

Related

Are logs made with NSLog or CCLog stored in the iPhone? Can I retrieve them?

When testing my iOS application on a device connected to Xcode, logs from NSLog or CCLog appear in the console, which is very useful for me to debug.
When the device is not connected to Xcode, obviously I don't get such logs. And when it crashes, I simply don't know why.
Because of this, I made a question here: Is there an output log like Xcode's available locally in my iPhone?. But I have noticed that those "Device Logs" are not the logs I expected. In fact, they are greatly different from the logs I see in my Xcode console, and none of them reflects a NSLog or CCLog I have done in my project. So I guess I was looking in the wrong place.
Are NSLogs or CCLogs stored somewhere I can retrieve? I don't really understand the "Device Logs", but they really don't seem to tell me anything useful or specific.
Connect your device to your computer and in XCode, windows Organizer, you can see the devices. You can select your device and then click on Console. It should show you all the NSLog statements
Your crashes are logged in your device so you can retrieve them when you connect your phone to the XCode.
1 - Plug it in
2 - Open you XCode and go to Organizer (cmd + shift + 2)
3 - Click on Devices and then on the upper left click on Device Logs.
To add something to the other (pretty standard) answers, here's a solution for which you don't need Xcode: the idevicesyslog utility from the libimobiledevice library can also display all logs.
Bonus: if you have a jailbroken phone, you can install syslogd from Cydia and all your syslog will be saved to a file named /var/log/syslog.
Best option is to run your app from Xcode connected to a real device and look at console output (Shift-Command-Y to display/hide console view by default).
Second best option is to connect device afterwards to your mac and use iPhone Configuration Utility to view your app specific console log.
Third best option is to use some 3rd party iPhone app, which can read console log in the device (when you're on field trip or something). Warning: I made the "Console On Device" app just for this purpose, needed to debug crashes while travelling. It can display app specific logs and allows emailing them.
In my experience, most users never look at logs, so they are useless and just waste time, space, and battery. Some people look at the logs and get worried for no good reason at all, give you bad reviews ("I looked at the logs and there are lots of bugs in the code"), all with no benefit to anyone.
So get rid of the NSLogs. Best to define a macro that does NSLog in a debug build and nothing in a release build. There shouldn't be any NSLog in your source code except for that macro.

Anyone else having problems installing iPhone Enterprise apps on released IOS 5?

Anyone having problems deploying Enterprise apps on iPhone/iPads running the released version of iOS 5 using the OTA ("over the air") methodology?
During the installation process, we get the alert box: "the app could not be installed at this time". Tapping the Retry button does nothing. In some cases, repeated tapping of the Retry button eventually results in a gray, empty launch icon being left on the home screen. No app installed. No other errors.
Anyone else seeing this or have a resolution?
The below description is a bit involved, but please bear with me as it may help others who run into the situation. I will post the resolution if get a resolution from Apple. So far, no joy there.
Our app refuses to install OTA on iOS 5. This same app WILL install on iPhone/iPad devices running iOS 4.x.x AND the same app will install on iOS 5 devices physically connected to a desktop machine using the iTunes app.
The Apple Developer forums under the IOS 5 Beta category complained about the problem but no indication of resolution as of last week just before the official release of iOS 5.
Cookies are set to be accepted.
Bowser cache and history cleared.
Using mobile safari originally installed with original iOS version 4.x.x.
System hardware and operating system configuration
iPad 2, iPhone 4 or any iPhone device running iOS 5 RELEASED version.
Browser and version
Mobile safari that is installed with iOS 4 on ipad2. Don't know if mobile safari upgrades with ios 5 upgrade.
Using a corporate wifi network. Yes, we are behind a firewall and use a proxy server. Since iOS4 devices install without problems, I don't think installation being blocked by the proxy or firewall.
Enterprise app built with Xcode 4 and ios5 sdk provided with it. Built to be backward compatible with iOS 4.0.
Distribution provisioning profile is correct as we have been using it for several weeks.
This app installs properly on iOS 4 devices both over the air and via iTunes application method.
This app installs properly on ios5 devices through the physical connection with iTunes application on the Mac desktop.
Steps to reproduce:
User types in the URL in mobile safari on iPhone/iPad running ios5.
The resulting webpage shows the download app link.
User taps on the link and is asked if they want to install the app.
User taps the yes, install button.
App proceeds to install.
A gray launch icon shows up on the home screen with the progress bar empty at the bottom of the icon.
Message below the icon indicates "loading".
Seconds later, user gets the "cannot download app at this time" error message as seen in screen shot attached.
Tapping the retry button results in the same action just described.
Tapping done results in the download stopping.
If you tap retry several times, user sometimes is left with the gray empty launch icon, which will not launch and cannot be deleted.
Note: In the apple developer forums, under the iOS 5 beta category, people are describing the exact same problem with no resolution.
Had the same problem, and was able to resolve it. However, the error noted is not specific to a single cause that handles every case... some detailed investigation needs to occur.
Your best bet is to connect the device to your Mac, and using the Organizer of xCode view the console logs while you are attempting to do a wireless deployment. There will be some useful information available -- please post the logs.
For my case -- the icon files were missing from the build, as a result of moving from xCode3 to xCode4 and also, the distribution plist was referencing an image that returned a 404. Both were logged in the console, but not very clearly.
Also, as a sanity check, manually verify the URL to your IPA file also.
I had this same problem and was sure everything was correct in my project; but restarting Xcode and doing a clean revealed my Enterprise scheme had somehow defaulted to the wrong provisioning profile.
Re-selecting the correct profile and re-archiving the app fixed the issue for me, I'm able to install an enterprise app on both iOS4 and 5.
I wanted to chime in after fighting this for a few hours. It is iOS 5 specific.
We had an htaccess password protection on the directory. Removing this allowed the app to finally download. So if you have htaccess, perhaps you can point the user to a parent directory that is password protected, then navigate to the subdirectory containing the app that isn't password protected. This is a temporary solution, apple needs to fix this.
Another thing to consider is the URL you specified in your over-the-air Application.plist file. I received the same error message ("-application- could not be installed at this time") because the URL I specified was too unspecific. Rather than writing "directory/directory/application.ipa", I had written "directory/directory/". You must include your application in the complete URL of the plist file's configuration.
If you didn't do this, don't fret! You don't have to rebuild the entire thing from step one, you can open your .plist file in any standard text editor and simply change the URL.
We had the same thing.
Our mistake was to point to a wrong 512.png icon in the manifest.
Which was no problem on iOS4 but turned out to stop iOS5 into a "...at this time" alert.
Wanted to chime in on my experience.
In my case, we were changing the address where the IPA file was hosted. Although I updated the PLIST file with the proper URL to the IPA file, iOS was still going after the old URL almost as if it cached the PLIST data. Creating a copy of the PLIST file and renaming it resolved the issue (data within the file remained unchanged)
I met the same problem today. The app can be installed in ios4, but failed in ios5 with "** could not be installed at this time" alert.
According to patricksan's suggestion, I download iPhone Configuration Utility 3.5 for Mac OS X, and try to catch the log while install the app through OTA.
The log helped me finally, one sentence of the log says entitlement 'get-task-allow' has value not permitted by a provisioning profile. It remind me that if the code signing identity in build settings of Project and Targets are correct, after checking them in Xcode, I found the code signing identity are not correct one, they should be iPhone distribution:.... other than iPhone developer:..... After correcting them, and re-Archiving the ipa file, it can be installed in iOS 5 now.
Check your Info.plist for Required device capabilities property. I recommend to delete completely this property if you haven't any restrictions on use.

How can I stop iTunes sync from removing one of my development apps?

I have a half-dozen apps installed on my iPhone via Xcode's Build and Run function, and they've always been unaffected by syncing the phone with iTunes. Now one of the apps has started disappearing from the iPhone every time I sync with iTunes. If I watch the sync progress at the top of the iTunes window, I can see the step where it says "Removing 'Appname'."
If I connect the iPhone and browse its sync settings, on the Apps tab, the app icon is visible on the home screen, but it does not appear in the "Sync Apps" list where I can check which apps to sync. Oddly, if I put the app into a folder, and iTunes removes it, and then I reinstall it from Xcode, it will go back into that same folder.
The only difference I can think of between this app and the others is that this was originally an iPad-only app, and then I changed it to an iPhone/iPad app. The app does work fine on the phone until iTunes removes it. I've confirmed that "iPhone/iPad" is selected for the Targeted Device Family setting for all configurations. I've also tried removing the development provisioning profile from the phone and reinstalling it.
Does anyone know why iTunes would be removing this app even though it leaves the others alone?
Drag and drop app build and provisioning profile into iTunes sync phone and see if issue is persistent. I think its because itunes cannot find your app in its App library.

iphone - device logging

While fiddling around with the settings on the device I'm testing my app on (iPod Touch) I saw a development setting where I can turn logging on.
Does anyone know where this logs to? I know I can see log statements via the console but I'm hoping to get some log statement when the device isn't connect to my computer.
Your device will continue logging even when it's not connected to your mac. To see the logs, you need to open Xcode, click the 'Window' menu item, and then 'Organizer'. Then select your device and then select the 'Device Logs' tab. For some reason (for me at least) viewing the logs seems flaky, so if nothing shows up, you may need to completely quit Xcode and restart it.
You have to go into the Xcode organizer, and click on your device. The logs will then show up in that window.

Is there a way to see the progress status when we submit application to iTunes Connect

When we upload application from Xcode organizer, after we click the "Submit Application to iTunes Connect" button, is there a way to see the progress percentage?
There is no progress bar, but you can see what they currently do with your application via iTunes Connect.
But those aren't very detailed informations. Just wait and drink tea, it won't speed up anyway.
Because of the lack of feedback from the xcode uploader, I just use the Application Uploader utility. See the utility folder in the xcode applications folder.