3

I submitted my first free iPhone app to the app store and users are complaining about bugs I've never seen, nor can I reproduce. How do developers allow their users to send feedback, as well as collect bug/crash reports for their iOS apps after they've been deployed to the app store?

Thanks so much in advance for your help!

BeachRunnerFred
  • 18,070
  • 35
  • 139
  • 238

6 Answers6

2

The best solution is to...

First, write all your logs to a rotating file log. Then create a ViewController (maybe along with the settings screen) that has a text area where users can give a description of the bug. When the click the submit button take the current log, along with any pertinent phone information, and send it to your support email address.

Sam Dolan
  • 31,966
  • 10
  • 88
  • 84
  • Thanks sdolan! I was hoping for some solution that involved collecting data about the users behavior, this sounds great. I also found this class "MFMailComposeViewController", would you suggest using this over a standard view controller? Also, are there any privacy concerns about collecting info about the user's phone? Do I need to inform them that I'm collecting this data? Thanks again! – BeachRunnerFred Oct 12 '10 at 17:46
  • @BeachRunnerJoe: I wouldn't use the `MFMailComposeViewController` for this. You don't need to collect anything but a message (and maybe a from email if you don't have user logins). As far as privacy, I was talking about just getting the phone system information (OS version, etc.) which I don't see any issues with. Oh, and you're welcome :) – Sam Dolan Oct 12 '10 at 17:50
  • That's good to know. You mentioned that you wouldn't use the MFMailComposeViewController, why is that? – BeachRunnerFred Oct 12 '10 at 17:56
  • @BeachRunnerJoe: Check out the second sentence. :) Basically, you just don't need all of the fields the the controller provides, so I wouldn't use it. Though you could look at the examples surrounding the view controller to understand how to send out emails. – Sam Dolan Oct 12 '10 at 17:57
  • Excellent, I was under the impression that using the MFMailComposeViewController was necessary to send emails. I'll check out the example code and apple docs surrounding this. – BeachRunnerFred Oct 12 '10 at 18:00
  • I take that back. I would just use the `MFMailComposeViewController` and fill it with your support email (and make it uneditable) and prefill the subject and from email (if you know it) to take advantage to everything it provides. I'd also take a close look at the `PLCrashReporter` that @aegzorz mentioned to see if it fits your needs. – Sam Dolan Oct 12 '10 at 18:08
  • This is a great answer, but what exactly is a *rotating* log file? – Apophenia Overload Apr 26 '11 at 18:16
  • @Apophenia Overload: A rotating log file is where once the log file gets to a certain size you move it to a new file (e.g. logfile.1.log) and start writing for a new one. This is helpful because it keeps the log file small so it's easier to seek within it/smaller to send, and allows you to delete the older ones without manipulating one large log file while the app may (potentially) be writing to it. – Sam Dolan Apr 26 '11 at 22:40
  • Ah, I see. So how would you create a log file that is automatically sent and then wiped every time it reaches that size? In Obj-C, I mean. – Apophenia Overload Apr 27 '11 at 00:32
  • @Apophenia Overload: There's an implementation @ https://github.com/aharren/LibComponentLogging-LogFile/blob/master/LCLLogFile.m you could have a look at. – Sam Dolan Apr 27 '11 at 00:48
1

Take a look at PLCrashReporter for sending crash reports from your app.

MFMailComposeViewController is the only way to send email afaik.

aegzorz
  • 2,209
  • 15
  • 18
  • That looks great, thank you! Currently, my app isn't experiencing any crashes, only functionality-crippling bugs. Obviously it's difficult to reproduce bugs from simple descriptions posted in the app store reviews. Do you know of any libraries, like PLCrashReporter, that are designed to track user behavior or should I just use the standard iOS APIs and implement these logs myself? Thanks again! – BeachRunnerFred Oct 12 '10 at 17:58
  • For tracking user behaviour you can use something like Flurry http://www.flurry.com/ – aegzorz Oct 12 '10 at 19:18
0

There are few libraries that allow this. Just google:

InstaBug BlitFeedback BugClipper AppHance

Hope that helps.

0

There is an control called Tattle-UI specially for Beta-tester during development phase. It's an basic control using Screenshot with marking and audio feedback, finally we can share it with our developers by mail. But it wouldn't be integrate with app which is on App store. They may reject with this type of feature.

Mani
  • 17,549
  • 13
  • 79
  • 100
0

Since the rules for app submission require a website with an email address for support, this would seem to be the solution. Do you not have this?

[edit]
IIRC, crash reports can be uploaded via itunes and then submitted to you.
[/edit]

KevinDTimm
  • 14,226
  • 3
  • 42
  • 60
0

Create a log that documents the user's behavior, then attach that log to the attachment property in the MFMailComposeViewController. That will also allow people to send you additional feedback along with the logging you put in your own code.

beeeefy
  • 527
  • 4
  • 10