技巧总结篇
开发中可能会遇到的各种技巧。。。
Xcode部分
Organzier 用户上传的的崩溃日志
用户上传崩溃日志,可以在Xcode的Organzier里面查看。
Xcode->Windows->Organizer
优点是很详细,很方便。但是,并非所有用户都会上传崩溃信息。所以这个只能作为其他崩溃统计信息的补充。不能当做主力来源。sad。。。
断点调试Autolayout
有时候可能会遇到这样的自动布局bug
2019-08-09 15:29:39.111289+0800 FastClean[18148:888972] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<NSLayoutConstraint:0x60000263a850 H:|-(15)-[UIButton:0x7fd6d5f366f0](LTR) (active, names: '|':UIView:0x7fd6d5f36030 )>",
"<NSLayoutConstraint:0x60000263a620 UIButton:0x7fd6d5f366f0.right == UIView:0x7fd6d5f36030.right - 15 (active)>",
"<NSLayoutConstraint:0x600002647e80 'UIView-Encapsulated-Layout-Width' UIView:0x7fd6d5f36030.width == 0 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x60000263a620 UIButton:0x7fd6d5f366f0.right == UIView:0x7fd6d5f36030.right - 15 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
那么你可以添加一种布局短点,在布局出现问题时可以添加Symbolic breakpoint
断点。
内容填为UIViewAlertForUnsatisfiableConstraints
。
如下:
然而并没有什么卵用,直接断到线程堆栈上。啥有用的信息都没有…………
那么应该怎么搞呢,这里有个小技巧。在上面那个断点中添加action
po [[UIWindow keyWindow] _autolayoutTrace]
如下图:
会得到类似下图的view层次结构:
还是不够直接啊… 那么你可以
(lldb) e id $myView = (id) 0x7fd6d5d239e0
(lldb) e (void)[$myView setBackgroundColor:[UIColor blackColor]]
那么该元素就会被着色,你就可以看到它了!
iPhone部分
Mac软件部分
接口调试工具 Paw
长这个样子⬇️
这是一个调试接口用的工具,可以很方便的调试网络请求。
详情如下⬇️
返回结果解析
Application Loader
上传APP
Xcode 11把Application Loader去掉了,使用上很不方便,下面是官方提供的命令:
或者像我这样懒的,从Xcode10里面把 Application Loader 抽取出来,hhh
放上下载连接(蓝奏云):
下载 密码:f7qy