Tag: crashlytics

与Bitrise for iOS本机应用程序的持续集成

这是我第一次使用CI。 我们需要一项能够帮助我们部署本地移动应用程序的服务(我负责iOS应用程序)。 从项目的配置到管道的创建,我们发现了一项伴随您的服务……Bitrise! 它使您可以免费试用该服务30天,之后可以订阅订阅。 有关更多信息,请访问价格页面。 组态 第一种配置非常直观。 有一个向导,可让您通过链接链接Bitbucket / Github帐户,并在存储库帐户中设置SSH密钥。 Bitrise检查您的iOS项目中是否已经存在迦太基文件或Fastfile,并允许您创建适当的步骤。 开始吧! 配置完成后,您可以访问仪表板。 在“ 构建 ”选项卡中,所有都是比特率构建。 有一个“部署到Bitrise”步骤,使您可以保留所有权限。 每个构建都将用颜色标识:如果一切顺利,则为绿色;如果进行了手动中止,则为黄色;如果失败,则为红色。 “ 工作流程 ”是Bitrise的核心。 它允许您使用可以从系统可用的多种选择中选择的步骤来创建管道。 如果不适合您,则始终可以选择标识外壳程序的“脚本”步骤。 此选项卡将打开一个页面,该页面上有一个部分可加载配置文件和证书(开发,临时,生产)。 另一个页面,您可以在其中插入要在脚本中使用的环境变量 ,以用于所有工作流程或仅针对某些工作流程。 触发器允许您在存储库的分支上执行操作(推,拉,合并)时配置工作流程的激活。 如果您正在使用Bitbucket,则必须转到“ Settings / Webhoocks ”并配置由Bitrise管理的各种操作。 bitrise.yml显示了通过在工作流程中插入各个步骤而生成的.yml文件。 请举个例子吗?

Fastlane:简化iOS部署

Fastlane是一款适用于iOS和Android开发人员的工具,可自动完成繁琐的任务,例如生成屏幕截图,处理配置文件和发布应用程序。 它还支持CircleCI,Jenkings或Travis CI等CI服务器,因此您可以自定义部署工作流。 即使Fastlane在Android上完美运行,在本文中,我们也将重点关注它的iOS部分。 Fastlane可以帮助您创建脚本(使用ruby),并逐步指示如何自动将内部版本发送到Fabric,HockeyApp,TestFairy,TestFlight或App Store。 以及更多类似的内容: 轻松创建,更新,下载和修复配置文件(使用一个命令) 生成并更新您的推送通知配置文件 释放内部版本号,并在发布内部版本后将更改提交给git 车道和快车道动作 车道和快车道动作 在lane中将其视为具有一组构建“步骤”的方法,其中每个步骤代表一个快速通道动作。 通道及其构建步骤在Fastfile文件中定义,我们将在下面看到。 您可以在此处查看所有操作的详细文档。 如果您一直在存档您的应用程序并将其“手动”发送到Fabric,那么……这将会改变 假设 : 我假设您 在项目上配置了 Fabric / Crashlytics ,并且已将其链接到Fabric控制台上的组织。 安装Fastlane 有几种安装Fastlane的方法,但是在这种情况下,我们将使用Homebrew。 打开终端运行: 酿造桶安装fastlane 2.然后,导航到我们的项目目录并运行: fastlane init 之后,您应该会看到类似以下内容的内容: 3.确保输入4 ,然后按Enter,然后按照说明进行操作。 在这种情况下,我们将使用4,因为我们的意图是将Beta版本发送到Fabric Beta 您将得到如下所示的新文件夹: 将构建发送到Fabric 现在,让我们只关注fastlane目录中的Fastfile文件。 在您喜欢的文本编辑器中,打开Fastfile并执行以下操作: 哇! 您已经创建了一个基本lane来剪切构建并将其发送到Fabric Beta组织。 看看crashlytics Action文档,您可以知道可以使用哪些其他参数来crashlytics生活。 Fastlane文件 Fastlane动作 Chuck Norris可以使用盲文进行编码。 谢谢阅读! 并随时留下任何反馈。 另外,您是否想浪费一些时间阅读rant和其他更新,请在twitter @guerrix上关注我

iOS发行版的新金标准:99.99%的无崩溃🏆

当心那些紫色的警报! 用Memory Graph暂停应用程序后,我能够在一个网络调用中找到一个复杂的保留周期,如左侧的NSOperations列表所示,其中Xcode调用带有紫色感叹号的保留周期。 在下面,您可以看到这些NSBlockOperations相互之间的所有强引用。 这显着提高了信噪比-允许新问题很快出现在我们的雷达上,而不会迷失在已知问题的海洋中。 然后,我们可以在自动更新扩展到我们的大多数用户之前暂停分阶段发布,评估严重性并快速解决问题。 我们将继续提高标准,并将每个版本的崩溃率进一步提高至99.99%。

使用Firebase Crashlytics修复崩溃

换一种说法: 在装有iOS 11的任何类型的iPhone上,前台都会发生崩溃 这是我们的出发点。 解决崩溃 在Firebase Crashlytics引入面包屑之前,您可能会与支持团队聊天并向他们询问以下问题: 崩溃是否可以重现? 复制路径总是一样吗? 崩溃到底发生在哪里? 尤其是当崩溃导致堆栈跟踪时,几乎没有任何结果: 现在,有了新的面包屑,我们只需打开“ Logs页面,就可以在崩溃发生之前看到用户的面包屑。 它告诉我们用户在启动后立即收到了转移(存储桶) 最终接收失败: 这比堆栈跟踪给我们的要多得多! 复制路径是否一致? 通过在会话之间导航并比较面包屑,我们可以轻松地比较会话并定义每个用户的复制路径是否相同。 这将使崩溃的范围进一步缩小,并使我们有可能更快地重现崩溃。 使用自定义参数 面包屑的妙处在于它们可以为您提供更多信息。 我们可以看到接收到的传输是一个简短的URL。 接收到的传输的类型是不带密码的移动传输: 结论 使用所有这些信息可以帮助我们更快地解决崩溃问题。 事实证明,我们以错误的方式解雇了一个视图控制器。 有时,我们甚至无法通过面包屑来解决崩溃问题。 这是我们团队的游戏规则改变者,使我们更接近拥有100%无崩溃用户的梦想。 更快地解决崩溃问题也意味着需要更多时间来开发功能。 解决崩溃更快 解决最难的崩溃 腾出更多时间来开发功能,而不是解决崩溃问题。

Fabric Crashlytics设置痛苦

今天浪费了一些时间尝试将Fabric / Crashlytics与应用程序集成。 问题: Fabric报告缺少DSYM,这意味着它无法表示崩溃。 解决方案: 我忘记调整调试构建的构建设置,以输出“带有DSYM文件的DWARF”。 根据StackOverflow: 转到项目的构建设置,然后在构建设置中搜索调试信息格式,然后搜索“调试信息格式”,然后将“调试信息格式”设置为“带有dSYM文件的DWARF” 参考: http://stackoverflow.com/questions/29209582/make-sure-your-project-build-settings-are-generating-a-dsym-file-debug-informat

修复内向崩溃

几乎所有的iOS开发人员都已经发生了这种情况。 我们确实看到某些崩溃确实发生在“我的代码”区域之外,例如CFNetwork。 发生这种情况时,项目负责人经常会弹出一个问题:“计数是多少?”,如果不听,可能会出现这样的问题:“我们还有99.5%的崩溃率吗?” “是? 那么我们可以忽略它。 让我们专注于门票。” 这些崩溃最糟糕的部分是,我们不知道为什么会发生这种情况,最重要的是它发生在哪里。 我们只是空白。 堆栈跟踪没有显示与跟踪它们相关的任何内容。 在我早期的开发人员时代,我经常忽略了此类崩溃。 但是我认为,我们至少应该知道此类崩溃的根源。 也许这可以帮助我们追踪崩溃,或者,如果不是这样,则至少可以通过低估这种情况不会在应用程序的主要流程中弹出来了解其严重性。 因此,这就是我们在系统中跟踪此类崩溃的方式。 使用, Crashlytics自定义键/日志 自定义键可帮助您获取导致崩溃的应用程序的特定状态。 您可以将任意键/值对与崩溃报告相关联,可以从Fabric仪表板直接查看。 记录一些有关导致崩溃的事件的上下文通常很有用。 Crashlytics提供了日志记录工具来简化此过程。 这些消息与崩溃数据相关联,如果您查看特定的崩溃,则这些消息在Fabric仪表板中可见。 我们保存一个像 Crashlytics.sharedInstance()。setObjectValue(“ value”,forKey:“ key”) 和日志一样 CLSLogv(“正在记录-%@,%@”,getVaList([“ LogA”,“ LogB”])) 我们可以使用它们为崩溃添加更多细节。 在我们的系统中,我们有一个名为CrashTrackerController的父UIViewController ,我们的大多数视图控制器都从该子类继承而来。 从这一点出发,我们记录并保存自定义密钥 这就是其中一个日志的样子 这对我们来说确实很好。 现在,我们知道发生崩溃的控制器,通过查看日志,我们可以了解生成崩溃的最新流程。

iOS:'看起来“Crashlytics”不是一个有效的Fabric Kit

我已经更新了Crashlytics但仍然在启动时出现此错误: 错误:***终止应用程序由于未捕获的exception'FABException',原因:'[织物]看起来“Crashlytics”不是一个有效的光纤套件。 请确保您只通过织物套件[织物:]。 这是我的代码 : func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. Fabric.with([Crashlytics.self]) return true }

在进行内部testing时,不会在crashlytics上收到崩溃

我已经整合了与吊舱crashlytics。 我曾经用Testflighttesting应用程序。 我注意到有几个在iTunes连接崩溃,但没有收到来自面料/ crashlytics的任何电子邮件。 我尝试像退出(1)手动尝试应用程序崩溃,并在下次启动应用程序时收到一封电子邮件。 因此,假设crashlytics框架成功整合。 你有什么build议,我想看看?

如何将Crashlytics集成到iOS框架目标中?

我有一个iOS框架的目标,我需要集成崩溃报告系统。 所以Crashlytics看起来不错,但是 这个Xcode项目没有任何Mac或iOS目标 那么,有没有什么办法可以将Crashlytics直接整合到iOS框架中呢?

运行使用XCode 7部署的应用程序会导致崩溃

我开发的应用程序在xcode 6中。然后设备连接我运行应用程序与debugging。 之后,我可以从Xcode断开设备,并再次运行应用程序。 它运行。 但今天开始运行应用程序与运行button在xcode 7 – >应用程序运行正常,一些问题,并运行良好。 当我从我的Mac断开设备,并尝试通过按设备上的应用程序图标运行应用程序,并得到崩溃 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libsystem_kernel.dylib 0x0000000197747270 __pthread_kill + 8 1 libsystem_pthread.dylib 0x00000001977e516c pthread_kill + 108 2 libsystem_c.dylib 0x00000001976beb14 abort + 108 3 …g_rt.asan_ios_dynamic.dylib 0x00000001019d56d0 0x101984000 + 333520 4 […]