Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 164 lines (136 sloc) 9.307 kb
aa5339e9 »
2009-07-17 Initial commit of Version 2.0
1 /*
2 * Author: Andreas Linde <mail@andreaslinde.de>
3 *
4 * Copyright (c) 2009 Andreas Linde. All rights reserved.
5 * All rights reserved.
6 *
7 * Permission is hereby granted, free of charge, to any person
8 * obtaining a copy of this software and associated documentation
9 * files (the "Software"), to deal in the Software without
10 * restriction, including without limitation the rights to use,
11 * copy, modify, merge, publish, distribute, sublicense, and/or sell
12 * copies of the Software, and to permit persons to whom the
13 * Software is furnished to do so, subject to the following
14 * conditions:
15 *
16 * The above copyright notice and this permission notice shall be
17 * included in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26 * OTHER DEALINGS IN THE SOFTWARE.
27 */
28
29 These are the main features of this demo project:
30 - (Automatically) send crash reports to a developers database
31 - Let the user decide per crash to (not) send data or always send
32 - The user has the option to provide additional information in the settings, like email address for contacting the user
33 - Give the user immediate feedback if the crash is known and will be fixed in the next update, or if the update is already waiting at Apple for approval, or if the update is already available to install
34
35 These are the main features on backend side for the developer:
36 - Admin interface to manage the incoming crash log data
37 - Script to symbolicate crash logs on the database, needs to be run on a mac with access to the DSYM files
38 - Automatic grouping of crash files for most likely same kind of crashes
39 - Maintain crash reports and sort them by using simple patterns. Automatically know how many times a bug has occured and easily filter the new ones in the DB
40 - Assign bugfix versions for each crash group and define a status for each version, which can be used to provide some feedback for the user
41 like: Bug already fixed, new version with bugfix already available, etc.
42
43 Server side files:
44 - /server/database_schema.sql contains all the default tables
45 - /server/crash_v200.php is the file that is invoked by the iPhone app
46 - /server/config.php contains database access information
bbc1b61d »
2010-01-05 - Some more error messages for crash_v200.php
47 - /server/test_setup.php simple script that checks if everything required on the server is available
aa5339e9 »
2009-07-17 Initial commit of Version 2.0
48 - /server/admin/ contains all administration scripts
49 - /server/admin/symbolicate.php needs to be copied to a local mac, and the url has to be adjusted to access the scripts on your server
50
cf8f37fd »
2009-11-14 - Extended documentation for local symbolification of the crashlogs u…
51 SERVER INSTALLATION:
52
53 - Copy the server scripts to your web server:
54 All files inside /server except the content of the /server/local directory
aa5339e9 »
2009-07-17 Initial commit of Version 2.0
55 - Execute the SQL statements from database_schema.sql in your MySQL database on the web server
6117c466 »
2009-11-13 Overall:
56
cf8f37fd »
2009-11-14 - Extended documentation for local symbolification of the crashlogs u…
57
58 SERVER DATABASE CONFIGURATION:
59
6117c466 »
2009-11-13 Overall:
60 - Adjust settings in /server/CONFIG.PHP:
61 $server = 'your.server.com'; // database server hostname
62 $loginsql = 'database_username'; // username to access the database
63 $passsql = 'database_password'; // password for the above username
64 $base = 'database_name'; // database name which contains the below listed tables
65 - Adjust $default_amount_crashes, this defines the amount of crashes listed right away per pattern, if there are more, those are shown after clicking on a link at the end of the shortened list
66 - Adjust your local timezone in the last line: date_default_timezone_set('Europe/Berlin') (see http://de3.php.net/manual/en/timezones.php)
67 - If you DO NOT want to limit the server to accept only dataa for your applications:
68 - set $acceptallapps to true
69 - Otherwise:
70 - start the web interface
71 - add the bundle identifiers of the permitted apps, e.g. "de.buzzworks.crashreporterdemo" (this is the same bundle identifier string as used in the info.plist of your app!)
bbc1b61d »
2010-01-05 - Some more error messages for crash_v200.php
72 - Invoke test_setup.php via the browser to check if everything is setup correctly and Push can be used or not
cf8f37fd »
2009-11-14 - Extended documentation for local symbolification of the crashlogs u…
73
74 SERVER ENABLE PUSH NOTIFICATIONS:
75
6117c466 »
2009-11-13 Overall:
76 - NOTICE: Push Notification requires the Server PHP installation to have curl addon installed!
77 - NOTICE: Push Notifications are implemented using Prowl iPhone app and web service, you need the app and an Prowl API key!
78 - Adjust settings in /server/CONFIG.PHP:
79 - set $push_activated to true
80 - if you don't want a push message for every new pattern, set $push_newtype to false
81 - adjust $push_amount_group to the amount of crash occurences of a pattern when a push message should be sent
82 - add up to 5 comma separated prowl api keys into $push_prowlids to receive the push messages on the device
83 - adjust $push_default_version, defines if you want to receive pushes for automatically created new versions for your apps
84 - If push is activated, check the web interface for push settings per app version
cf8f37fd »
2009-11-14 - Extended documentation for local symbolification of the crashlogs u…
85
86
87 SETUP LOCAL SYMBOLIFICATION:
88
89 - NOTICE: These are the instructions when using Mac OS X 10.6.2
90 - Copy the files inside of /server/local onto a local directory on your Intel Mac running at least Mac OS X 10.6.2 having the iPhone SDK 3.x installed
91 - Adjust settings in local/serverconfig.php
92 - set $hostname to the server hostname running the server side part, e.g. www.crashreporterdemo.com
93 - if the /admin/ directory on the server is access restricted, set the required username into $webuser and password into $webpwd
94 - adjust the path to access the scripts (will be appended to $hostname):
95 - $downloadtodosurl = '/admin/symbolicate_todo.php'; // the path to the script delivering the todo list
96 - $getcrashdataurl = '/admin/crash_get.php?id='; // the path to the script delivering the crashlog
97 - $updatecrashdataurl = '/admin/crash_update.php'; // the path to the script updating the crashlog
98 - Copy the symbolicatecrash executable into an accessable path, e.g. via
99 cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash /usr/local/bin/
f8eec0f3 »
2010-01-09 Fix remote symbolication to find the files wherever they are on your mac
100 - Copy the .app package and .app.dSYM package of each version into any directory of your Mac
101 Best is to add the version number to the directory of each version, so multiple versions of the same app can be symbolicated.
102 Example: CrashReporterDemo_1_0/CrashReporterDemo.app
103 CrashReporterDemo_1_0/CrashReporterDemo.app.dSYM
104 CrashReporterDemoBeta_1_1/CrashReporterDemoBeta.app
105 CrashReporterDemoBeta_1_1/CrashReporterDemoBeta.app.dSYM
cf8f37fd »
2009-11-14 - Extended documentation for local symbolification of the crashlogs u…
106 - Test symbolification:
107 - Download a crash report into the local directory from above
108 - run "symbolicatecrash nameofthecrashlogfile ."
109 - if the output shows function names and line numbers for your code and apples code, everything is fine and ready to go, otherwise there is a problem :(
110 - If test was successful, try to execute "php symbolicate.php"
111 This will print some error message which can be ignored
112 - Open the web interface and check the crashlogs if they are now symbolicated
113 - If everything went fine, setup a cron job
114 - IMPORTANT: Don't forget to add new builds with .app and .app.dSYM packages to the directory, so symbolification will be done correctly
115 There is currently no checking if a package is found in the directory before symbolification is started, no matter if it was or not, the result will be uploaded to the server
116
117
118 IPHONE PROJECT INSTALLATION:
119
aa5339e9 »
2009-07-17 Initial commit of Version 2.0
120 - Include CrashReportSender.h and CrashReportSender.m into your project
121 - Include CrashReporter.framework into your project
122 - In your appDelegate.m include
f13afdab »
2010-01-08 Adjust README to incorporate latest code changes when invoking the Cr…
123 #import "CrashReportSender.h"
aa5339e9 »
2009-07-17 Initial commit of Version 2.0
124 - In your appDelegate applicationDidFinishLaunching function include
f13afdab »
2010-01-08 Adjust README to incorporate latest code changes when invoking the Cr…
125 [[CrashReportSender sharedCrashReportSender] sendCrashReportToURL:CRASH_REPORTER_URL delegate:self activateFeedback:NO];
aa5339e9 »
2009-07-17 Initial commit of Version 2.0
126 where CRASH_REPORTER_URL points to your crash_v200.php URL
127 - Done.
6117c466 »
2009-11-13 Overall:
128 - When testing the connection and a server side error appears after sending a crash log, the error code is printed in the console. Error code values are listed in CrashReportSender.h
129
cf8f37fd »
2009-11-14 - Extended documentation for local symbolification of the crashlogs u…
130
131
986ce569 »
2010-01-07 Merge branch 'Mac'
132 MAC PROJECT INSTALLATION:
cc1765ce »
2010-01-07 Updated README.txt with first Mac client instructions
133 - Include CrashReporterSender.framework into your project
f13afdab »
2010-01-08 Adjust README to incorporate latest code changes when invoking the Cr…
134 - In your appDelegate.m include
135 #import "CrashReportSender.h"
cc1765ce »
2010-01-07 Updated README.txt with first Mac client instructions
136 - In your appDelegate change the invocation of the main window to the following structure
137
f13afdab »
2010-01-08 Adjust README to incorporate latest code changes when invoking the Cr…
138 // this delegate method is required
cc1765ce »
2010-01-07 Updated README.txt with first Mac client instructions
139 - (void) showMainApplicationWindow
140 {
f13afdab »
2010-01-08 Adjust README to incorporate latest code changes when invoking the Cr…
141 // launch the main app window
142 // remember not to automatically show the main window if using NIBs
143 [window makeFirstResponder: nil];
144 [window makeKeyAndOrderFront:nil];
cc1765ce »
2010-01-07 Updated README.txt with first Mac client instructions
145 }
146
147
148 - (void)applicationDidFinishLaunching:(NSNotification *)note
149 {
150 // Launch the crash reporter task
f13afdab »
2010-01-08 Adjust README to incorporate latest code changes when invoking the Cr…
151 [[CrashReportSender sharedCrashReportSender] sendCrashReportToURL:CRASH_REPORTER_URL delegate:self companyName:COMPANY_NAME];
cc1765ce »
2010-01-07 Updated README.txt with first Mac client instructions
152 }
f13afdab »
2010-01-08 Adjust README to incorporate latest code changes when invoking the Cr…
153
cc1765ce »
2010-01-07 Updated README.txt with first Mac client instructions
154 - Done.
986ce569 »
2010-01-07 Merge branch 'Mac'
155
156
157
22fce0cd »
2009-08-25 Mac:
158
aa5339e9 »
2009-07-17 Initial commit of Version 2.0
159 Feel free to add enhancements, fixes, changes and provide them back to the community!
160
161 Thanks
162 Andreas Linde
163 http://www.andreaslinde.com/
164 http://www.buzzworks.de/
Something went wrong with that request. Please try again.