通过 cycript 注入进程,打印出 UI 结构信息,但是有时会发现显示信息不全,如下所示:

# cycript -p Cydia
cy# UIApp.keyWindow.recursiveDescription().toString()
`<UIWindow: 0x727430; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x706e90>; layer = <UIWindowLayer: 0x504bf0>>| <UILayoutContainerView: 0x4ee2a0; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x4edcb0>>|    | <UITransitionView: 0x72aab0; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x700650>>|    |    | <UIViewControllerWrapperView: 0x12860b30; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x12824700>>|    |    |    | <UILayoutContainerView: 0x74f140; frame = (0 0; 320 568); autoresize = W+H; gestureRecognizers = <NSArray: 0x4f8500>; layer = <CALayer: 0x74ae10>>|    |    |    |    | <UINavigationTransitionView: 0x4e75b0; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x4cd4f0>>|    |    |    |    |    | <UIViewControllerWrapperView: 0xe89b700; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0xe88df70>>|    |    |    |    |    |    | <CyteWebView: 0xe90f020, https://cydia.saurik.com/ui/ios~iphone/1.1/home/>|    |    |    |    |    |    |    | <_UIWebViewScrollView: 0x878200; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = H; gestureRecognizers = <NSArray: 0xe912340>; layer = <CALayer: 0xe911d80>; contentOffset: {0, -64}; contentSize: {320, 835}>|    |    |    |    |    |    |    |    | <UIWebBrowserView: 0x87ba00; frame = (0 0; 320 835); text = '\u6b22\u8fce\u4f7f\u7528 Cydia\u2122
\u5f00\u53d1\u8005\uff1aJay Freem...'; opaque = NO; gestureRecognizers = <NSArray: 0xe90f8a0>; layer = <UIWebLayer: 0x4ee060>>|    |    |    |    |    |    |    |    |    | <LegacyTileHostLayer: 0x4802220> (layer)|    |    |    |    |    |    |    |    |    |    | <LegacyTileLayer: 0x128410f0> (layer)|    |    |    |    |    |    |    |    |    |    | <LegacyTileLayer: 0x12829060> (layer)|    |    |    |    |    |    |    |    | <UIImageView: 0x483a6b0; frame = (3 449.5; 314 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; laye
cy# UIApp.keyWindow.recursiveDescription().toString()
`<UIWindow: 0x727430; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x706e90>; layer = <UIWindowLayer: 0x504bf0>>| <UILayoutContainerView: 0x4ee2a0; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x4edcb0>>|    | <UITransitionView: 0x72aab0; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x700650>>|    |    | <UIViewControllerWrapperView: 0x12860b30; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x12824700>>|    |    |    | <UILayoutContainerView: 0x74f140; frame = (0 0; 320 568); autoresize = W+H; gestureRecognizers = <NSArray: 0x4f8500>; layer = <CALayer: 0x74ae10>>|    |    |    |    | <UINavigationTransitionView: 0x4e75b0; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x4cd4f0>>|    |    |    |    |    | <UIViewControllerWrapperView: 0xe89b700; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0xe88df70>>|    |    |    |    |    |    | <CyteWebView: 0xe90f020, https://cydia.saurik.com/ui/ios~iphone/1.1/home/>|    |    |    |    |    |    |    | <_UIWebViewScrollView: 0x878200; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = H; gestureRecognizers = <NSArray: 0xe912340>; layer = <CALayer: 0xe911d80>; contentOffset: {0, -64}; contentSize: {320, 835}>|    |    |    |    |    |    |    |    | <UIWebBrowserView: 0x87ba00; frame = (0 0; 320 835); text = '\u6b22\u8fce\u4f7f\u7528 Cydia\u2122
\u5f00\u53d1\u8005\uff1aJay Freem...'; opaque = NO; gestureRecognizers = <NSArray: 0xe90f8a0>; layer = <UIWebLayer: 0x4ee060>>|    |    |    |    |    |    |    |    |    | <LegacyTileHostLayer: 0x4802220> (layer)|    |    |    |    |    |    |    |    |    |    | <LegacyTileLayer: 0x128410f0> (layer)|    |    |    |    |    |    |    |    |    |    | <LegacyTileLayer: 0x12829060> (layer)|    |    |    |    |    |    |    |    | <UIImageView: 0x483a6b0; frame = (3 449.5; 314 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; laye

可以使用 writeToFile 将信息保存为文件,下载文件查看信息是完整的,并且中文也能显示清楚

cy# [Uiapp.keyWindow.recursiveDescription().toString() writeToFile:"/var/mobile/viewdump.txt" atomically:NO encoding:4 error:NULL];

还有一种方法是降级 Cycript,查看当前版本号是 0.9.954,尝试降级到 0.9.590, 再打印信息就没问题了

# cycript -p Cydia
cy# UIApp.keyWindow.recursiveDescription().toString()
`<UIWindow: 0x739250; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x71d9a0>; layer = <UIWindowLayer: 0x71d1c0>>| <UILayoutContainerView: 0x5cfa90; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x5ce060>>|    | <UITransitionView: 0x5d7470; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x5d7650>>|    |    | <UIViewControllerWrapperView: 0x5f6cb0; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x5fa040>>|    |    |    | <UILayoutContainerView: 0x766540; frame = (0 0; 320 568); autoresize = W+H; gestureRecognizers = <NSArray: 0x5f6290>; layer = <CALayer: 0x48041e0>>|    |    |    |    | <UINavigationTransitionView: 0x4803e40; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x5c7630>>|    |    |    |    |    | <UIViewControllerWrapperView: 0xe707ea0; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0xe707f80>>|    |    |    |    |    |    | <CyteWebView: 0x763ae0, https://cydia.saurik.com/ui/ios~iphone/1.1/home/>|    |    |    |    |    |    |    | <_UIWebViewScrollView: 0x10abc00; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = H; gestureRecognizers = <NSArray: 0xe5f8fb0>; layer = <CALayer: 0xe5f9e90>; contentOffset: {0, -64}; contentSize: {320, 835}>|    |    |    |    |    |    |    |    | <UIWebBrowserView: 0x8e0600; frame = (0 0; 320 835); text = '\u6b22\u8fce\u4f7f\u7528 Cydia\u2122
\u5f00\u53d1\u8005\uff1aJay Freem...'; opaque = NO; gestureRecognizers = <NSArray: 0x5d53d0>; layer = <UIWebLayer: 0x748fc0>>|    |    |    |    |    |    |    |    |    | <LegacyTileHostLayer: 0x7137d0> (layer)|    |    |    |    |    |    |    |    |    |    | <LegacyTileLayer: 0xe6f9870> (layer)|    |    |    |    |    |    |    |    |    |    | <LegacyTileLayer: 0x75f4c0> (layer)|    |    |    |    |    |    |    |    | <UIImageView: 0xe6bda10; frame = (3 449.5; 314 2.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0xe6bdb50>>|    |    |    |    |    |    |    |    | <UIImageView: 0xe6bebb0; frame = (314.5 3; 2.5 374); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0xe6becf0>>|    |    |    |    | <UINavigationBar: 0x765a00; frame = (0 20; 320 44); opaque = NO; autoresize = W; gestureRecognizers = <NSArray: 0x429f00>; layer = <CALayer: 0x7666c0>>|    |    |    |    |    | <_UIBarBackground: 0x765d00; frame = (0 -20; 320 64); userInteractionEnabled = NO; layer = <CALayer: 0x7660a0>>|    |    |    |    |    |    | <UIImageView: 0x765f20; frame = (0 64; 320 0.5); userInteractionEnabled = NO; layer = <CALayer: 0x764790>>|    |    |    |    |    |    | <UIVisualEffectView: 0x766730; frame = (0 0; 320 64); layer = <CALayer: 0x766860>>|    |    |    |    |    |    |    | <_UIVisualEffectBackdropView: 0x766a30; frame = (0 0; 320 64); autoresize = W+H; userInteractionEnabled = NO; layer = <UICABackdropLayer: 0x766b30>>|    |    |    |    |    |    |    | <_UIVisualEffectFilterView: 0x74ab60; frame = (0 0; 320 64); autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0x75d340>>|    |    |    |    |    | <UINavigationButton: 0xe6e68a0; frame = (242 7; 70 30); opaque = NO; layer = <CALayer: 0xe6d56a0>>|    |    |    |    |    |    | <UIButtonLabel: 0xe7add30; frame = (0.5 5; 69.5 20.5); text = '\u91cd\u65b0\u52a0\u8f7d'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0xe716c10>>|    |    |    |    |    |    |    | <_UILabelContentLayer: 0xe70c040> (layer)|    |    |    |    |    | <UINavigationButton: 0xe6a8d50; frame = (8 7; 35 30); opaque = NO; layer = <CALayer: 0xe6a8850>>|    |    |    |    |    |    | <UIButtonLabel: 0xe7013d0; frame = (0 5; 35 20.5); text = '\u5173\u4e8e'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0xe701610>>|    |    |    |    |    |    |    | <_UILabelContentLayer: 0xe701be0> (layer)|    |    |    |    |    | <<UINavigationItemView: 0xe719280; frame = (142.5 8; 35 27); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xe719210>>: item=<<UINavigationItem: 0x5f9430>: title:'\u4e3b\u9875'> title=\u4e3b\u9875>|    |    |    |    |    |    | <UILabel: 0xe719380; frame = (0 3.5; 35 21.5); text = '\u4e3b\u9875'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0xe7194e0>>|    |    |    |    |    |    |    | <_UILabelContentLayer: 0xe7892d0> (layer)|    |    |    |    |    | <_UINavigationBarBackIndicatorView: 0x7680e0; frame = (8 11.5; 13 21); alpha = 0; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7682f0>>|    | <UITabBar: 0x5ce0e0; frame = (0 519; 320 49); autoresize = W+TM; layer = <CALayer: 0x5ce480>>|    |    | <_UIBarBackground: 0x5cfef0; frame = (0 0; 320 49); userInteractionEnabled = NO; layer = <CALayer: 0x5ce650>>|    |    |    | <UIImageView: 0x5d4bb0; frame = (0 -0.5; 320 0.5); userInteractionEnabled = NO; layer = <CALayer: 0x5cd770>>|    |    |    | <UIVisualEffectView: 0x5d4820; frame = (0 0; 320 49); layer = <CALayer: 0x5bc0c0>>|    |    |    |    | <_UIVisualEffectBackdropView: 0x5d69f0; frame = (0 0; 320 49); autoresize = W+H; userInteractionEnabled = NO; layer = <UICABackdropLayer: 0x5d6d70>>|    |    |    |    | <_UIVisualEffectFilterView: 0xe6be200; frame = (0 0; 320 49); autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0xe6be2e0>>|    |    | <UITabBarButton: 0x5f4390; frame = (2 1; 60 48); opaque = NO; layer = <CALayer: 0x5f7480>>|    |    |    | <UITabBarSwappableImageView: 0x5f76e0; frame = (9 2.5; 41 31); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x5f7950>>|    |    |    | <UITabBarButtonLabel: 0x5f4620; frame = (16 35; 27.5 12); text = 'Cydia'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x5f49d0>>|    |    | <UITabBarButton: 0x4800580; frame = (66 1; 60 48); opaque = NO; layer = <CALayer: 0x4800ea0>>|    |    |    | <UITabBarSwappableImageView: 0x48197d0; frame = (9.5 2.5; 41 31); opaque = NO; userInteractionEnabled = NO; tintColor = UIDeviceWhiteColorSpace 0.572549 1; layer = <CALayer: 0x4801120>>|    |    |    | <UITabBarButtonLabel: 0x48006f0; frame = (14.5 35; 31 12); text = '\u8f6f\u4ef6\u6e90'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x4800500>>|    |    |    |    | <_UILabelContentLayer: 0xe5f99f0> (layer)|    |    |    | <_UIBadgeView: 0xe5f8340; frame = (45.5 2; 18 18); text = ''; userInteractionEnabled = NO; layer = <CALayer: 0x4827500>>|    |    |    |    | <UIImageView: 0xe703e20; frame = (0 0; 18 18); opaque = NO; userInteractionEnabled = NO; tintColor = UIDeviceRGBColorSpace 1 0.231373 0.188235 1; layer = <CALayer: 0xe5f4fd0>>|    |    |    |    | <UIActivityIndicatorView: 0x5d7870; frame = (2 2; 14 14); layer = <CALayer: 0x5ceb00>>|    |    |    |    |    | <UIImageView: 0x5d7c30; frame = (0 0; 14 14); opaque = NO; userInteractionEnabled = NO; animations = { contents=<CAKeyframeAnimation: 0xdb0a4a0>; }; layer = <CALayer: 0x5d7d30>>|    |    | <UITabBarButton: 0x760010; frame = (130 1; 60 48); opaque = NO; layer = <CALayer: 0x761970>>|    |    |    | <UITabBarSwappableImageView: 0x760930; frame = (9 2.5; 41 31); opaque = NO; userInteractionEnabled = NO; tintColor = UIDeviceWhiteColorSpace 0.572549 1; layer = <CALayer: 0x761ae0>>|    |    |    | <UITabBarButtonLabel: 0x7601a0; frame = (19.5 35; 20.5 12); text = '\u53d8\u66f4'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x760310>>|    |    |    |    | <_UILabelContentLayer: 0xe5f91e0> (layer)|    |    |    | <_UIBadgeView: 0xe5f5220; frame = (45 2; 27 18); text = '14'; userInteractionEnabled = NO; layer = <CALayer: 0xe5f5470>>|    |    |    |    | <UIImageView: 0xe6a6100; frame = (0 0; 27 18); opaque = NO; userInteractionEnabled = NO; tintColor = UIDeviceRGBColorSpace 1 0.231373 0.188235 1; layer = <CALayer: 0xe6a6200>>|    |    |    |    | <UILabel: 0xe5f5640; frame = (5 1; 17 16); text = '14'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0xe5f57a0>>|    |    | <UITabBarButton: 0x760e30; frame = (194 1; 60 48); opaque = NO; layer = <CALayer: 0x75e8d0>>|    |    |    | <UITabBarSwappableImageView: 0x762900; frame = (9.5 2.5; 41 31); opaque = NO; userInteractionEnabled = NO; tintColor = UIDeviceWhiteColorSpace 0.572549 1; layer = <CALayer: 0x761ec0>>|    |    |    | <UITabBarButtonLabel: 0x760fa0; frame = (14.5 35; 31 12); text = '\u5df2\u5b89\u88c5'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x761110>>|    |    |    |    | <_UILabelContentLayer: 0xe706ab0> (layer)|    |    | <UITabBarButton: 0x762a10; frame = (258 1; 60 48); opaque = NO; layer = <CALayer: 0x7632a0>>|    |    |    | <UITabBarSwappableImageView: 0x763ee0; frame = (9 2.5; 41 31); opaque = NO; userInteractionEnabled = NO; tintColor = UIDeviceWhiteColorSpace 0.572549 1; layer = <CALayer: 0x761940>>|    |    |    | <UITabBarButtonLabel: 0x762b80; frame = (19.5 35; 20.5 12); text = '\u641c\u7d22'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x760b30>>|    |    |    |    | <_UILabelContentLayer: 0xe706a30> (layer)`

原文地址:https://www.exchen.net/ios-hacker-%E8%A7%A3%E5%86%B3-cycript-%E4%BF%A1%E6%81%AF%E6%98%BE%E7%A4%BA%E4%B8%8D%E5%85%A8%E7%9A%84%E9%97%AE%E9%A2%98.html

解决 Cycript 信息显示不全的问题相关推荐

  1. NoteExpress文献导入,信息显示不全的问题

    NoteExpress文献导入 信息显示不全 问题描述: 利用NoteExpress导入文献全文,但是发现有的文献的作者.时间.期刊信息等无法显示,如图所示. 可以看到,这两个参考文献的年份.作者等都 ...

  2. IE8 下 select option 内容过长 , 展开时信息显示不全问题解决办法

    为什么80%的码农都做不了架构师?>>>    /*** IE8 下 select option 内容过长 , 展开时信息显示不全 , 简单折衷的方式就是给 option 加上 ti ...

  3. html2canvas+jspdf 完美解决html导出且分页 解决图片显示不全问题

    html2canvas+jspdf 完美解决html导出且分页 解决图片显示不全问题 参考文章: (1)html2canvas+jspdf 完美解决html导出且分页 解决图片显示不全问题 (2)ht ...

  4. 电脑ping服务器ip显示数据丢失,Win7系统如何测试网络丢包率解决网页显示不全的问题...

    Win7系统在上网过程中打开网页经常遇到网页显示不全,或者玩游戏卡顿的现象,但是过一会儿又恢复了.怎么回事呢?可能是因为网络丢包率太高导致的,我们可以Ping一下网络,找到故障原因.那么接下来小编和大 ...

  5. 解决ListView显示不全、滑动冲突问题

        在开发中,ListView是使用得最多的控件,有时候会遇到ListView因为各种原因引起的数据显示不全,例如,嵌套了ScrollView等.这个解决的办法很多,这里记录一下我自己用过的方法, ...

  6. RxJava2 堆栈信息显示不全解决方案

    本文首发我的博客,github 地址 文章目录 现象 第一种方案,自定义 Hook 解决 RxJavaExtensions 使用 原理 一些思考 参考资料 推荐阅读 现象 大家好,我是徐公,今天为大家 ...

  7. Csocket OnReceive接收数据部分(解决接收数据不全的问题+获取时间+将数据写入文本文档)

    void CDebugDlg::OnReceive() {BYTE cbDataBuffer[1024];BYTE buff;int len,a,leng;CString b,c,d;CString ...

  8. 永恒之柱2显示服务器,永恒之柱2游戏黑屏是什么原因怎么解决_画面显示不全解决方法教程攻略...

    IGN给出了最近发售的<永恒之柱2>8.5分的评价,称游戏中出色地塑造了不少人物形象,也拥有着迷人的海岛景色,虽然略有瑕疵,仍然不失为一款佳作. <永恒之柱2:死亡之火>在&l ...

  9. 解决html2canvas截图不全问题

    最近公司要求做一个生成海报,html2canvas是个不错的选择,随之而来的问题,当页面的滚动条不在顶部的时候出现,截图不全,顶部出现白屏问题,我当时是各种百度各种搜索问题还是没有得到解决. 我知道的 ...

最新文章

  1. [转]gitHub客户端Desktop的安装使用总结 ---基础篇
  2. 基于R语言的时间序列分析预测
  3. vue 中的动态传参和query传参
  4. 【bzoj4444】[Scoi2015]国旗计划 倍增
  5. 精选13款Spring Boot 优质GitHub开源项目!
  6. 调用打码平台api获取验证码 (C#版)
  7. 【gigabyte】开机循环进入技嘉主板界面、BIOS功能识别不出硬盘
  8. Redis相关面试题
  9. winform设置默认打印机
  10. 2020-11-20
  11. 【移动光猫H2-2的完全破解心路历程及配置】
  12. 关于 Python Pip的安装
  13. 第一篇博客,写给自己
  14. 2021这一年 | 用数字技术实现普惠金融
  15. 澳门惊现Google地图街景车
  16. SAF(Storage Access Framework)使用攻略
  17. toooomuch和toooomuch2的wp
  18. spring cloud gateway 与spring cloud版本对应问题
  19. java中appletviewer是什么意思_自动生成供AppletViewer运行Java Applet的HTML文件
  20. 【demo】Excel批量设置超链接(java代码实现)

热门文章

  1. Docker手动构建 nginx+py3+uwsgi环境
  2. error CS1002: ; expected 错误解决
  3. C语言-------基础知识小结(1)。
  4. 类与类之间关系,用C#和JavaScript体现
  5. 在Vista以上版本运行WTL程序,有时候会提示“这个程序可能安装补正确...”的错误...
  6. 回首经典的SQL Server 2005
  7. PageRank算法简介及Map-Reduce实现
  8. 正则表达式的20个小应用
  9. JQuery跨站脚本漏洞
  10. 【数据结构与算法】之深入解析如何确定单链表有环并求环的入口和长度