首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IOS10将所有xcode控制台日志打印到iPhone应用程序页面内的UITextview上

IOS10引入了一个新的特性,允许将所有Xcode控制台日志打印到iPhone应用程序页面内的UITextView上。这个特性对于开发人员来说非常有用,可以方便地查看应用程序的运行日志,以便进行调试和错误排查。

要实现将控制台日志打印到UITextView上,可以按照以下步骤进行操作:

  1. 创建一个UITextView控件,并将其添加到应用程序的视图层级中,可以通过Storyboard或者代码创建。
  2. 在应用程序的AppDelegate类中,找到application(_:didFinishLaunchingWithOptions:)方法,并添加以下代码:
代码语言:txt
复制
if let consoleTextView = window?.rootViewController?.view.viewWithTag(100) as? UITextView {
    freopen(nil, "a+", stderr)
    let consoleOutputFile = dup(fileno(stderr))
    let pipe = Pipe()
    dup2(pipe.fileHandleForWriting.fileDescriptor, fileno(stderr))
    pipe.fileHandleForReading.readabilityHandler = { handle in
        if let line = String(data: handle.availableData, encoding: .utf8) {
            DispatchQueue.main.async {
                consoleTextView.text += line
            }
        }
    }
    DispatchQueue.global(qos: .background).async {
        while true {
            if let line = readLine() {
                DispatchQueue.main.async {
                    consoleTextView.text += line + "\n"
                }
            }
        }
    }
}
  1. 在上述代码中,我们首先获取到之前创建的UITextView控件,并将其标记为100(可以根据需要自行调整标记值)。
  2. 接下来,我们将控制台输出重定向到一个文件,并将文件描述符复制到一个新的变量中。
  3. 创建一个管道,并将标准错误输出重定向到管道的写入端。
  4. 使用管道的读取端来监听控制台输出,并将输出逐行添加到UITextView中。
  5. 最后,我们在后台线程中持续读取控制台输出,并将每行输出添加到UITextView中。

通过以上步骤,我们就可以将控制台日志打印到iPhone应用程序页面内的UITextView上了。这样,开发人员可以方便地查看应用程序的运行日志,进行调试和错误排查。

腾讯云提供了丰富的云计算产品和服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。具体产品介绍和相关链接地址可以参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

移动端性能测试必备工具PerfDog性能狗

软件性能数据采集: PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序等)及Android模拟器,桌面应用程序PerfDog支持在Windows和Mac机器使用运行。...受iOS平台限制,暂时无法获取ios10及以下系统memory。后续版本增加。...受iOS平台限制,暂时无法获取ios10及以下系统Xcode Memory。后续版本增加。...工具左侧“Setting”以设定对应性能参数统计分析阈值等。 6. 场景Label标签: 通过标签按钮给性能数据标签,鼠标左键双击颜色区域可修改对应区域标签名。 7....5. iOS平台:Iphone小圆点/辅助触控(AssistiveTouch)及Iphone x刘海手机小白条/引导式访问(Guided Access)影响PerfDog采集数据准确性,请关闭。

2.5K40
  • OSLog与NSLog,OSLog实践

    -它还检查应用程序stderr流是否要去终端(比如当应用程序通过Xcode运行时)。如果是,它将日志消息写入stderr(这样它就会显示在Xcode控制台中)。...DDASLLogger:日志写入到控制台.app中。在iOS10开始过时 DDTTYLogger:日志写入到Xcode控制台。...DDFileLogger:很容易理解,是log写入到文件中。 DDOSLogger:在iOS10开始使用,在Log输出到 控制台.app 和 Xcode控制台。跟NSLog输出方式一致。...而我们常用NSLog会将日志写入到控制台.app和Xcode控制台。 所以,想要替换NSLog,官方推荐做法是: 在iOS10及以上系统版本,使用DDOSLogger。...默认情况下,log文件在多次启动时候是会重用,24小时log写入到同一个文件中,当文件大小超过1MB或者创建时间超过24小时,会新生成一个log文件,后面的log会写入到新文件中。

    1.2K20

    iOS12、iOS11、iOS10、iOS9常见适配

    一、iOS12(Xcode10) 1.1、升级Xcode10后项目报错 不允许多个info.plist Xcode10是默认选中最新New Build System(Default),在这个编译系统环境下...复制代码 2.7、iOS11中 UIKit’s Bars 变化 三、iOS10Xcode8) 3.1、(Why?Safe!)...NSHealthShareUsageDescription 蓝牙 NSBluetoothPeripheralUsageDescription 媒体资料库 NSAppleMusicUsageDescription 3.4、跳转到app隐私数据设置页面...iOS 10 干掉了所有系统设置 URL Scheme,这意味着你再也不可能直接跳转到系统设置页面(比如 WiFi、蜂窝数据、定位等)。...另外需要注意是,即使写了上述配置,在 HTTPS 页面中,HTTP javascript 或 css 不会被加载,因为苹果认为这降低了页面的安全性。

    2.1K31

    WeTest明星工具-移动端性能测试PerfDog初探

    软件性能数据采集 我们先来了解下通过该工具能采集到哪些性能数据: PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序等)及Android模拟器,桌面应用程序PerfDog支持在Windows...受iOS平台限制,暂时无法获取ios10及以下系统Xcode Memory。后续版本增加。...对于工具介绍,网络都有,我就结合自己实际体验来说吧。...选择模式后,界面会展示设备详细信息,如下: 选择测试应用 选择模式后,则可以选择要测试应用了(当前手机中所有app都可以被选择),如下页面: 选择对应被测应用,并操作对应app,界面展示如下...setting下,可以配置,如下: 5.3 保存框选数据 对某一时间段数据框选后,可以单独保存片段,在框选范围,右键即可,如下: 6.场景标签 通过标签按钮给性能数据标签,鼠标左键双击颜色区域可修改对应区域标签名

    1.2K50

    APP性能测试—PerfDog

    安装运行 下载安装 登录PerfDog官网,根据您PC平台选择想要下载桌面应用程序 Windows平台:解压下载包,双击打开PerfDog.exe桌面应用程序。...FPS FPS(1秒内平均画面刷新次数),包含3个参数FPS,Jank,Stutter Jank Janks表示1s卡顿次数,类似AndroidJank卡顿和iOSFramePacing平滑度统计原理...Xcode Memory XCode Debug gauges统计方式即XCode Memory。注:iOS9、iOS10系统暂时无法获取,其他版本ok。后续版本增加。...监控应用使用能耗情况(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead)。 和Xcode Energy Impact结果一致。...场景Label标签 通过标签按钮给性能数据标签,鼠标左键双击颜色区域可修改对应区域标签名。 ? Log日志功能 勾选日志框将会采集系统日志信息。 ?

    3.7K51

    【HTML5 理论知识】就H5调试技巧,浅谈:iPhone X 适配方案!

    客户端适配 解决方案 客户端直接webview安全区域限制在除去安全区域区域页面展示在下图灰色webview: image.png 利弊分析 优点:H5前端开发没有任何适配工作量。...缺点:页面会限制在客户端限制webview区域,没有满屏效果。...)和env(safe-area-inset-X) ,这些属性是与iOS11以上所有iPhone机型(不仅仅包括iPhone X)都相关,故以iOS版本为区别具体分析一下全屏下H5页面: 1....iPhone X模拟器 H5调试 介绍 加入适配代码后,在没iPhone X情况下,可以通过iPhone X模拟器调试,像手机QQ/手机空间里H5页面,可以通过在模拟器安装手机QQ/手机空间app...Xcode9.0以上 步骤:在Xcode打开一个空白项目,选择iPhoneX模拟器,并点击运行按钮即可。 image.png 安装应用 在Xcode直接编译客户端代码。

    3.3K80

    ATX自动化测试框架-iOS

    ,Xcode控制台会输出如下log: ?...我们就可以通过ServerURLHere->后面的连接去监听设备了,WDA里面有一个js脚本,建立一个inspector页面,供我们方便查看元素: ?...测试脚本 bundle_id 首先要知道应用bundle_id, 有两种方法: 连接手机,终端使用命令 ideviceinstaller -l 查看当前手机所有已安装应用: ?...原理大概就是:从文件名获取源分辨率,从设备获取设备分辨率,然后图片按照比例缩放 问题 真机有可能会在第6步时候遇到Test Failed错误,点我 如果Xcode直接显示Test Succeed,...因为numpy版本冲突,但是os x10.10之后, 对系统文件夹有SIP保护,所以没有办法对特定系统文件夹进行修改,解决方法 在升级iOS10之后, 坐标系貌似有所改变, 原来(x, y)变成了

    3.3K40

    iOS 10 消息推送(UserNotifications)秘籍总结

    看完楼主装一手好X,我来总结一点点你都知道通知方面的知识点! 楼主装逼,他 背景 iOS10 新特性一出,各个大神就早已研究新特性能给场景智能化所带来好处(唉,可惜我只是一个小白)。...上图可以分为三个阶段: 第一阶段:APNS Pusher应用程序把要发送消息、目的iPhone标识打包,发给APNS。...第二阶段:APNS在自身已注册Push服务iPhone列表中,查找有相应标识iPhone,并把消息发到iPhone。...第三阶段:iPhone把发来消息传递给相应应用程序, 并且按照设定弹出Push通知。 Remote Notifications2.jpeg 从上图我们可以看到: 首先是应用程序注册消息推送。...应用程序接受deviceToken。 应用程序deviceToken发送给PUSH服务端程序。 服务端程序向APNS服务发送消息。 APNS服务消息发送给iPhone应用程序

    2.7K40

    一文带你趟过mac搭建appium测试环境遇到

    做UI自动化,最难一步就是在环境搭建,怎么去搭建一个UI自动化测试环境,会难住很多人,在Mac搭建appium如何搭建呢,本文带着大家去领略如何在mac搭建appium测试环境...,所以必须要安装,如果要在iOS10+系统使用appium,则需要安装ios-deploynpm install -g ios-deploy #如果是iOS10以上系统才需要安装 appium-doctor...安装npm install appium-doctor -g 安装后执行 appium-doctor --ios 可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有那一项是...启动成功 然后我们打开xcode ? 启动完毕后,我们选择 ?...---- 环境已经完成了,接下来,我们去要获取页面的定位元素,我们要怎么去获取呢,appium自身带了一套元素定位,那么我们看看怎么去启动呢,下面就是详细教程 我们在测试中需要查看设备id,我们可以执行

    2.8K40

    干货 | 携程火车票iOS项目开发体验优化实践

    查找了大量资料,发现AppleScript是一个与macOS结合非常紧密脚本语言,它显著特点就是可以控制其他macOS应用程序,通过使用它可以完成一些繁琐重复工作。...这个工具不仅能直接展示出组件间依赖层级关系,而且可以直接在工具提交组件包请求,不用再到浏览器打包平台进行频繁切换页面的点击操作。...图8 在ZTPodTool,不仅可以便捷地操作每个组件源码与二进制切换、组件包,而且支持测试包(图9)。...为了更完善这个功能,我们在开发人员点击打包后,可以选择是否同时组件包,再结合上面提到打包后自动通知测试人员功能,现在流程是这样(图11): 图11 从上面简化流程可以看出,我们原有的串行任务改为了可并行执行任务...经过多次实验对比,排除打包排队情况干扰,所有组件bundle平均打包时间为203秒,全bundle测试包时间为367秒,部分源码打包时间为384秒,所以理想环境情况打包效率提升32.6%。

    1.2K30

    如何在Electra越狱设备使用LLDB调试应用程序

    如果不存在则, 在Mac运行Xcode 为iOS打开ObjC项目(或从头创建一个新项目) 保持Xcode运行状态。将你iOS设备连接到USB。...接着在Xcode中你应该看到,如下红框内所示信息: ? 等到“准备调试支持iPhone”完成。然后在设备检查 /Developer/usr/bin/debugserver。...如果Mac未安装iproxy,请通过brew进行安装: ? 然后在Mac控制台中运行: ? 最后,iPhone连接到USB。就是这样,我们准备开始。...LLDB attach到已经运行进程 在你Mac控制台上,连接iPhone: ? 在iPhone控制台中运行 ? 找到你想要attach进程pid。然后运行 ?...现在,在Mac打开另一个控制台,然后运行 ? 在LLDB控制台中运行 ? 在LLDB下运行应用程序 在你Mac控制台上,连接iPhone: ? 在iPhone控制台中运行 ?

    2.3K40

    【IOS开发进阶系列】IOS常用开发技巧专题

    1     工程配置类 1.1     添加预编译文件     AFNetworking添加到预编译头文件,意味着这个框架会被自动添加到工程所有源代码文件中。...1.2     给SDK头文件加权限     如果您是从DMG安装Xcode,看看这个技术通过Joar Wingfors,以避免通过保留所有权,权限和硬链接意外修改SDK头: $ sudo ditto.../Volumes/Xcode/Xcode.app /Applications/Xcode.app 2     调试技巧 2.1     日志打印类 2.1.1 让Xcode控制台支持LLDB类型打印...因为在Xcode断点调试时候, 在控制台输入 po self.view.frame 或者 po id 类型时候就死翘翘了。     不信?...这时定位崩溃原因非常困难,因为出问题对象已经重新分配了。一个解决方法就是要求Xcode将对象设置为“僵尸”,而不是重新分配。

    43340

    IOS App测试那些坑和解决方案

    iPhone 手机上软件发生闪退或开发 iOS 应用程序时出现闪退,一般都会自己或系统生成崩溃日志,那么我们从哪里以及怎么获取到崩溃日志呢?...iPhone 手机一台 数据线一条 Xcode 开发工具(可选) 而由于 iOS 系统沙盒机制,一般我们不能直接访问它获取,但可以有下面的几种方法获取。 1.在 iTunes Store 获取。...4.如果是应用开发者,自己代码中记录崩溃日志,并上传到服务器,发生崩溃后从网站日志管理中获取对应崩溃日志即可。 架流程 Mac 就一个市场,架需要官方审核。.../Scripts/bootstrap.sh Xcode 打开 WebDriverAgent 项目(我使用是免费证书,免费证书如何弄请百度),修改 TARGETS 下所有对象 Bundle Id ?...image此时控制台界面可以看到设备 IP: ?

    4.2K40

    iOS开发之iOS10适配

    公司项目,临上线之前做了一下iOS10适配,发现一大堆坑,瞬间觉得苹果不友好了。 一、证书问题 打开xcode8.0时编译运行时出现下面问题: ?...作为Xcode7.3.1一部分,我们设定常熟范围从iPhone OS 2到#define NSFoundationVersionNumber_iOS_8_4 1144.17,在iOS 10(Xcode...,比如:相机,相册,联系人等,在Xcode8中打开编译的话,统统会crash,控制台会输出下面这样日志: ?...不过,WWDC 16 中,Apple 表示继续在 iOS 10 和 macOS 10.12 里收紧对普通 HTTP 访问限制。...从 2017 年 1 月 1 日起,所有的新提交 app 默认是不允许使用 NSAllowsArbitraryLoads来绕过 ATS 限制,也就是说,我们最好保证 app 所有网络请求都是 HTTPS

    1.4K20

    appium+python自动化60-appium命令行参数

    —isolate-sim-device 假 Xcode 6在某些平台上存在一个错误,在这些平台上,如果所有其他模拟器设备首次被删除,某个模拟器只能无误地启动。...此选项会导致Appium删除Appium正在使用设备以外所有设备。请注意,这是一个永久删除,您负责使用simctl或xcode来管理Appium使用设备类别。...adb服务器实例 —async-trace 假 长堆栈跟踪添加到日志条目。...(Android)通过卸载应用程序而不是清除应用程序数据来重置应用程序状态。在Android,这也会在会话完成后删除应用程序。...假 [DEPRECATED] - (仅限IOS)如果设置,iOS系统日志将被写入控制台 —enable-heapdump 假 启用NodeJS内存转储收集功能。

    2.8K10

    iOS项目Project 和 Targets配置详解

    最右边面板可以选择添加哪一种或哪几种设备图标,每一个型号设备图标的尺寸是不同。在中间有一个个小格子,我们所有切好图标直接拖过来,他们会自动找到自己应该放在格子里。...启动页面的作用:在我们点击应用图标启动应用时,应用启动需要一定操作时间,再启动期间,为了增强应用程序启动时用户体验,您应该提供一个启动图像。启动图像与应用程序首屏幕看起来非常相似。...启动页面在屏幕适配中作用:每个机型,比如同时支持iPhone和iPad程序,需要分别为iPhone跟iPad指定启动图片。...当为iPhone 5指定了新启动图片,系统就认为这个应用程序是已经适配了iPhone 5。当旧iPhone 5程序运行在iPhone 6上面,假如没有经过适配。...Copy  Bundle Resources 复制资源文件阶段:是指生成product.app包含哪些资源文件,同样可以通过红框中【+】【-】按钮进行添加或删除资源来控制编译资源文件。

    2.9K11
    领券