Author: Andreas Linde <[email protected]>
Copyright (c) 2009-2012 Andreas Linde.
All rights reserved.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
/server/database_schema.sql
”包含所有默认表/server/crash_v200.php
”是 iPhone 应用调用的文件/server/config.php
”包含数据库访问信息/server/test_setup.php
”是一个简单的脚本,用于检查服务器上是否存在必需的所有内容/server/admin/
”包含所有管理脚本/server/admin/symbolicate.php
”需要复制到本地 Mac,并且 URL 需要调整以确保可以访问服务器的脚本服务器需要至少 PHP 5.2 和一个 MySQL 服务器安装!
/server/local
目录的内容database_schema.sql
的 SQL 语句调整 /server/CONFIG.PHP
中的设置
$server = 'your.server.com'; // 数据库服务器主机名 $loginsql = 'database_username'; // 访问数据库的用户名 $passsql = 'database_password'; // 以上用户名的密码 $base = 'database_name'; // 包含以下列出的表的数据库名称
调整 $default_amount_crashes
,这定义了每个模式立即列出的事故数量,如果有更多,将在缩短列表末尾的链接后显示
date_default_timezone_set('Europe/Berlin')
(参见 http://de3.php.net/manual/en/timezones.php)$acceptallapps
设置为 true"de.buzzworks.crashreporterdemo"
(这是与您的应用的 info.plist
中使用的相同包标识符字符串!)通过浏览器调用 test_setup.php
以检查是否已正确设置并可以使用 Push
如果您正在升级旧版本,请首先调用 'migrate.php' 以更新数据库设置
将新数据库字段添加到以下表
apps
`hockeyappidentifier` text default NULL
crash
`jailbreak` int(11) unsigned default '0'
如果您从早期版本升级,请确保数据库符合 database_schema.sql 中定义的模式。
/server/CONFIG.PHP
中的设置$push_activated
设置为 true$push_newtype
设置为 false$notify_amount_group
以确定何时发送推送消息的模式的崩溃发生次数$notify_default_version
,定义是否希望接收为您的应用程序自动创建的新版本的推送消息/server/local
内的文件复制到运行至少 Mac OS X 10.6.2 的本地 Intel Mac 本地目录中,该电脑安装了 iPhone SDK 3.xlocal/serverconfig.php
中的设置$hostname
设置为运行服务器端部分的服务器主机名,例如 www.crashreporterdemo.com
/admin/
目录受到访问限制,请将所需的用户名设置到 $webuser
并将密码设置到 $webpwd
$hostname
后附加)$downloadtodosurl = '/admin/actionapi.php?action=getsymbolicationtodo';
// 提供待办列表脚本的路经$getcrashdataurl = '/admin/actionapi.php?action=getlogcrashid&id=';
// 提供崩溃日志脚本的路经$updatecrashdataurl = '/admin/crash_update.php';
// 更新崩溃日志脚本的路经/server/local/
目录中的修改后的 symbolicatecrash.pl
文件设置为可执行: chmod + x symbolicatecrash.pl
将每个版本的 .app
包和 .app.dSYM
包复制到 Mac 的任何目录中。最好给每个版本的目录添加版本号,这样就可以为同一应用程序的多个版本进行符号化。例如
QuincyDemo_1_0/QuincyDemo.app
QuincyDemo_1_0/QuincyDemo.app.dSYM
QuincyDemoBeta_1_1/QuincyDemoBeta.app
QuincyDemoBeta_1_1/QuincyDemoBeta.app.dSYM
测试符号化
symbolicatecrash nameofthecrashlogfile .
php symbolicate.php
这将打印一些可以忽略的错误消息.app
和 .app.dSYM
包的新构建添加到目录中,以确保正确进行符号化。在开始符号化之前,目前无法检查目录中是否有找到包,无论有或没有,结果都将被上传到服务器BWQuincyManager.h
、 BWQuincyManager.m
和 Quincy.bundle
包含到您的项目中CrashReporter.framework
包含到您的项目中SystemConfiguration.framework
添加到您的项目中在您的 appDelegate.h
中包含
#import "BWQuincyManager.h"
并让您的 appDelegate 实现 BWQuincyManagerDelegate
协议
在您的 appDelegate applicationDidFinishLaunching 函数中包含
[[BWQuincyManager sharedQuincyManager] setSubmissionURL:@"http://yourserver.com/crash_v200.php"];
完成。
BWQuincyManager.h
中Quincy.framework
包含到您的项目中在您的 appDelegate.h
中包含
#import <Quincy/BWQuincyManager.h>
在您的 appDelegate.h
中将 BWQuincyManagerDelegate 协议添加到您的 AppDelegate 中
@interface DemoAppDelegate : NSObject <BWQuincyManagerDelegate> {}
在您的 appDelegate
中更改 main 窗口的调用为以下结构
// this delegate method is required
- (void) showMainApplicationWindow
{
// launch the main app window
// remember not to automatically show the main window if using NIBs
[window makeFirstResponder: nil];
[window makeKeyAndOrderFront:nil];
}
- (void)applicationDidFinishLaunching:(NSNotification *)note
{
// Launch the crash reporter task
[[BWQuincyManager sharedQuincyManager] setSubmissionURL:@"http://yourserver.com/crash_v200.php"];
[[BWQuincyManager sharedQuincyManager] setDelegate:self];
}
请注意,Mac 版本现在不再符合 Mac App Store Sandbox 的要求!
完成。
分支结构遵循 Vincent Driessen 定义的 git flow 概念:[http://nvie.com/posts/a-successful-git-branching-model/](http://nvie.com/posts/a-successful-git-branching-model/)
Master 分支
主分支,其中 HEAD 的源代码始终反映生产就绪状态。
Develop 分支
将其视为主分支,其中 HEAD 的源代码始终反映则为下一个发布版提供的最新交付的开发更改状态。有些人称这为“集成分支”。
Feature 分支
这些分支用于开发即将推出或将来某个版本的新功能。功能分支的要点是它存在于功能开发期间,但最终将合并到 develop(以将新功能最终添加到即将推出的版本中)或丢弃(在实验不令人满意的情况下)。
Release 分支
这些分支支持新生产版本的准备。通过使用此方法,develop 分支被清除以接收下一个大型版本的特性。
Hotfix 分支
Hotfix 分支与 release 分支非常相似,它们也是为了准备新生产版本而准备的,虽然这次是计划外的。
支持 PHP 5.0+ 和 MySQL 的 Web 服务器。
需要Max OS X 10.5及以上版本
需要iOS 4.3及以上版本(从2.1.9版本开始,不再支持armv6架构!)
如果您在启用了自动内存管理(ARC)的项目中包含QuincyKit,则需要将所有QuincyKit源文件的编译器标志设置为-fno-objc-arc
。在Xcode中这样做,请转到您的活动目标并选择“构建阶段”标签。在“编译器标志”列中,为QuincyKit的每个源文件设置-fno-objc-arc
。
以下是使用过的第三方开源库
请随时添加增强功能、修复、更改并提供给社区!
谢谢
Andreas Linde
http://www.andreaslinde.com/ http://www.buzzworks.de/ http://www.hockeyapp.net/