-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
1656 lines (1099 loc) · 292 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.2.0">
<link rel="apple-touch-icon" sizes="180x180" href="/Blog/images/apple-touch-icon-next.png">
<link rel="icon" type="image/png" sizes="32x32" href="/Blog/images/favicon-32x32-next.png">
<link rel="icon" type="image/png" sizes="16x16" href="/Blog/images/favicon-16x16-next.png">
<link rel="mask-icon" href="/Blog/images/logo.svg" color="#222">
<link rel="stylesheet" href="/Blog/css/main.css">
<link rel="stylesheet" href="/Blog/lib/font-awesome/css/all.min.css">
<script id="hexo-configurations">
var NexT = window.NexT || {};
var CONFIG = {"hostname":"github.com","root":"/Blog/","scheme":"Pisces","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":true},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"search.xml"};
</script>
<meta name="description" content="Your dreams don't work unless you do.">
<meta property="og:type" content="website">
<meta property="og:title" content="Stay hungry, Stay foolish.">
<meta property="og:url" content="https://github.com/DavidWanderer/Blog/index.html">
<meta property="og:site_name" content="Stay hungry, Stay foolish.">
<meta property="og:description" content="Your dreams don't work unless you do.">
<meta property="og:locale" content="zh_CN">
<meta property="article:author" content="听月">
<meta property="article:tag" content="iOS && Swift">
<meta name="twitter:card" content="summary">
<link rel="canonical" href="https://github.com/DavidWanderer/Blog/">
<script id="page-configurations">
// https://hexo.io/docs/variables.html
CONFIG.page = {
sidebar: "",
isHome : true,
isPost : false,
lang : 'zh-CN'
};
</script>
<title>Stay hungry, Stay foolish.</title>
<noscript>
<style>
.use-motion .brand,
.use-motion .menu-item,
.sidebar-inner,
.use-motion .post-block,
.use-motion .pagination,
.use-motion .comments,
.use-motion .post-header,
.use-motion .post-body,
.use-motion .collection-header { opacity: initial; }
.use-motion .site-title,
.use-motion .site-subtitle {
opacity: initial;
top: initial;
}
.use-motion .logo-line-before i { left: initial; }
.use-motion .logo-line-after i { right: initial; }
</style>
</noscript>
</head>
<body itemscope itemtype="http://schema.org/WebPage">
<div class="container use-motion">
<div class="headband"></div>
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-container">
<div class="site-nav-toggle">
<div class="toggle" aria-label="切换导航栏">
<span class="toggle-line toggle-line-first"></span>
<span class="toggle-line toggle-line-middle"></span>
<span class="toggle-line toggle-line-last"></span>
</div>
</div>
<div class="site-meta">
<a href="/Blog/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<h1 class="site-title">Stay hungry, Stay foolish.</h1>
<span class="logo-line-after"><i></i></span>
</a>
<p class="site-subtitle" itemprop="description">听月的博客</p>
</div>
<div class="site-nav-right">
<div class="toggle popup-trigger">
<i class="fa fa-search fa-fw fa-lg"></i>
</div>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="main-menu menu">
<li class="menu-item menu-item-home">
<a href="/Blog/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/Blog/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/Blog/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/Blog/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
</li>
<li class="menu-item menu-item-search">
<a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
</a>
</li>
</ul>
</nav>
<div class="search-pop-overlay">
<div class="popup search-popup">
<div class="search-header">
<span class="search-icon">
<i class="fa fa-search"></i>
</span>
<div class="search-input-container">
<input autocomplete="off" autocapitalize="off"
placeholder="搜索..." spellcheck="false"
type="search" class="search-input">
</div>
<span class="popup-btn-close">
<i class="fa fa-times-circle"></i>
</span>
</div>
<div id="search-result">
<div id="no-result">
<i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>
</div>
</div>
</div>
</div>
</div>
</header>
<div class="back-to-top">
<i class="fa fa-arrow-up"></i>
<span>0%</span>
</div>
<div class="reading-progress-bar"></div>
<main class="main">
<div class="main-inner">
<div class="content-wrap">
<div class="content index posts-expand">
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://github.com/DavidWanderer/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/Blog/images/avatar.gif">
<meta itemprop="name" content="听月">
<meta itemprop="description" content="Your dreams don't work unless you do.">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Stay hungry, Stay foolish.">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/" class="post-title-link" itemprop="url">英语语法综述</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2024-06-18 08:42:55" itemprop="dateCreated datePublished" datetime="2024-06-18T08:42:55+08:00">2024-06-18</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/Blog/categories/%E8%8B%B1%E8%AF%AD/" itemprop="url" rel="index"><span itemprop="name">英语</span></a>
</span>
</span>
<br>
<span class="post-meta-item" title="本文字数">
<span class="post-meta-item-icon">
<i class="far fa-file-word"></i>
</span>
<span class="post-meta-item-text">本文字数:</span>
<span>4.1k</span>
</span>
<span class="post-meta-item" title="阅读时长">
<span class="post-meta-item-icon">
<i class="far fa-clock"></i>
</span>
<span class="post-meta-item-text">阅读时长 ≈</span>
<span>4 分钟</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h2 id="为什么学语法?"><a href="#为什么学语法?" class="headerlink" title="为什么学语法?"></a>为什么学语法?</h2><p>造句。说话写文章用短句子,长句子,不同短句又可以组合成新的长句。我们只有把长句子拆开来,直到拆到不能再继续拆了,否则句意会不完整的“基本句”,才好研究语法。如果基本句研究透了,长句子就是他们的组合。</p>
<h2 id="什么是简单句(Simple-Sentences)"><a href="#什么是简单句(Simple-Sentences)" class="headerlink" title="什么是简单句(Simple Sentences)"></a>什么是简单句(Simple Sentences)</h2><p>把不能再拆的“基本句”称为简单句。除去“嗯!”,“哦”,“啊!”这样的感叹句,或者省略句或者向整句提问的问句,全部都是在说什么怎么样。绝大多数的句子粗略的分,就是“什么”+“怎么样”,而这个“什么”和“怎么样”分别对应了两个最基本的“句子成分”。两个最基本的句子成分是“主语(subject)”+“谓语(predicate)”。换句话说,几乎所有的英语句子结构都是主语+谓语。</p>
<p>主语(人/物)+谓语(动作(动词)/发生了什么事)</p>
<p>主语一般指“人/物”,不管抽象还是具体。谓语指的是“动作/发生了什么事”,这个动作并不是我们平时狭义说的要“动起来”的“动作”,这个广义的“动作”也就是我们所说的“动词”。</p>
<h2 id="动词"><a href="#动词" class="headerlink" title="动词"></a>动词</h2><h3 id="1-可以独立完成的动作(主语-不及物动词)"><a href="#1-可以独立完成的动作(主语-不及物动词)" class="headerlink" title="1.可以独立完成的动作(主语+不及物动词)"></a>1.可以独立完成的动作(主语+不及物动词)</h3><p>这种没有承受者的动作,叫不及物动词。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Papa Rabbit sleeps.</span><br><span class="line">兔老爹睡觉.</span><br></pre></td></tr></table></figure>
<h3 id="2-有1个动作的承受者(主语-单及物动词-宾语)"><a href="#2-有1个动作的承受者(主语-单及物动词-宾语)" class="headerlink" title="2.有1个动作的承受者(主语+单及物动词+宾语)"></a>2.有1个动作的承受者(主语+单及物动词+宾语)</h3><p>这种没有承受者就没有实际意义的动词属于“及物动词”。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Papa Rabbit likes you.</span><br><span class="line">兔老爹喜欢你.</span><br></pre></td></tr></table></figure>
<h3 id="3-有2个动作承受者(主语-双及物动词-间接宾语-直接宾语)"><a href="#3-有2个动作承受者(主语-双及物动词-间接宾语-直接宾语)" class="headerlink" title="3.有2个动作承受者(主语+双及物动词+间接宾语+直接宾语)"></a>3.有2个动作承受者(主语+双及物动词+间接宾语+直接宾语)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Papa Rabbit teaches you English.</span><br><span class="line">兔老爹教你英语。</span><br></pre></td></tr></table></figure>
<h3 id="4-只有1个动作承受者(主语-复杂及物动词-宾语-宾语补语)"><a href="#4-只有1个动作承受者(主语-复杂及物动词-宾语-宾语补语)" class="headerlink" title="4.只有1个动作承受者(主语+复杂及物动词+宾语+宾语补语)"></a>4.只有1个动作承受者(主语+复杂及物动词+宾语+宾语补语)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Papa Rabbit considers you smart.</span><br><span class="line">兔老爹认为你聪明。</span><br></pre></td></tr></table></figure>
<h3 id="5-非“动作”(主语-系动词-主语补语-表语)"><a href="#5-非“动作”(主语-系动词-主语补语-表语)" class="headerlink" title="5.非“动作”(主语+系动词+主语补语/表语)"></a>5.非“动作”(主语+系动词+主语补语/表语)</h3><p>把后者信息赋予前者,等同于赋值;把后者的状态赋予前者。赋予主语某种性质状态的“划等号”的动词被称为连系动词,连系动词也被称为系动词。系动词后面跟上主语补语,主语补语也叫表语。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">Papa Rabbit is tall.</span><br><span class="line">兔老爹是高的。</span><br><span class="line"></span><br><span class="line">Papa Rabbit is in the room.</span><br><span class="line">兔老爹在房间里。</span><br><span class="line"></span><br><span class="line">Papa Rabbit looks tall.</span><br><span class="line">兔老爹看起来高。</span><br><span class="line"></span><br><span class="line">Papa Rabbit smells nice.</span><br><span class="line">兔老爹闻上去香。</span><br></pre></td></tr></table></figure>
<h2 id="英语五种基本句型"><a href="#英语五种基本句型" class="headerlink" title="英语五种基本句型"></a>英语五种基本句型</h2><h3 id="五种基本句型"><a href="#五种基本句型" class="headerlink" title="五种基本句型"></a>五种基本句型</h3><p>基本句型是不能再分的句子,缺少任何一种成分,句子的意义都不完整。五种基本句型其实就是在说动词,以及动词需要几个对象才能完整表达意思。</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/simple_sentence.jpg" class="" title="英语五种基本句型截图">
<h3 id="句子小结"><a href="#句子小结" class="headerlink" title="句子小结"></a>句子小结</h3><p>英语中所有句子,当拆到不能再拆后,都是在说什么怎么样。<code>什么</code>是语法上的<code>主语</code>,<code>怎么样</code>是语法上的<code>谓语</code>,谓语都有一个核心动词叫<code>谓语动词</code>。</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/subject_predicate.jpg" class="" title="主语+谓语截图">
<p>谓语动词有五个基本类别,谓语动词的五个基本类别分别对应英语中的五种基本句型。</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/predicate.jpg" class="" title="谓语动词分类截图">
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/predicate_simple_sentence.jpg" class="" title="五种谓语动词对应五种基本句型截图">
<p>日常所说的主谓宾,其实只是以上五种基本句型中的一个类别,<code>主语+谓语动词+宾语</code>,也就是所谓的<code>主谓宾结构</code></p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/zhu_wei_bin.jpg" class="" title="主谓宾句型截图">
<h2 id="句子成分"><a href="#句子成分" class="headerlink" title="句子成分"></a>句子成分</h2><h3 id="1-主语"><a href="#1-主语" class="headerlink" title="1.主语"></a>1.主语</h3><h3 id="2-谓语动词"><a href="#2-谓语动词" class="headerlink" title="2.谓语动词"></a>2.谓语动词</h3><h3 id="3-宾语"><a href="#3-宾语" class="headerlink" title="3.宾语"></a>3.宾语</h3><h3 id="4-宾语补足语"><a href="#4-宾语补足语" class="headerlink" title="4.宾语补足语"></a>4.宾语补足语</h3><h3 id="5-主语补语(也叫表语)"><a href="#5-主语补语(也叫表语)" class="headerlink" title="5.主语补语(也叫表语)"></a>5.主语补语(也叫表语)</h3><h3 id="6-定语"><a href="#6-定语" class="headerlink" title="6. 定语"></a>6. 定语</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">The little white rabbit ate a large carrot.</span><br><span class="line">这只小白兔吃了一根大胡萝卜。</span><br></pre></td></tr></table></figure>
<p>这里的<code>The little white</code>就是<code>rabbit</code>的定语; <code>a large</code>就是<code>carrot</code>的定语。</p>
<h3 id="7-状语"><a href="#7-状语" class="headerlink" title="7.状语"></a>7.状语</h3><p>主要用来修饰谓语动词</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">The rabbit ate quickly.</span><br><span class="line">兔子快速的吃。</span><br></pre></td></tr></table></figure>
<p><code>quickly</code>就是<code>ate</code>的状语</p>
<h3 id="8-同位语"><a href="#8-同位语" class="headerlink" title="8.同位语"></a>8.同位语</h3><p>主要用来把主语或宾语再说一遍</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Papa Rabbit, an English teacher,eats carrot.</span><br><span class="line">兔老爹,一个英语老师,吃胡萝卜。</span><br></pre></td></tr></table></figure>
<p>这里的<code>an English teacher</code>其实就是把<code>Papa Rabbit</code>用不同的方式再说一遍,在这里和主语算是同等地位。</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/sentence_clouce.jpg" class="" title="句子成分截图">
<h2 id="简单句、复合句-并列句-、复杂句"><a href="#简单句、复合句-并列句-、复杂句" class="headerlink" title="简单句、复合句(并列句)、复杂句"></a>简单句、复合句(并列句)、复杂句</h2><p>到目前为止所说的都是简单句,简单句就是没法再拆成更多句子了。说话写文章可不全是简单句。我们会把简单句进行组合,形成<code>复合句(compound sentences)</code>和<code>复杂句(complex sentences)</code>。<code>compound sentences</code>是简单句的叠加,句子和句子是并列的关系,直接翻译为“复合句”,但是有的语法书上的术语是“并列句”。<code>complex sentence</code>说白了就是把一个句子套在另一个句子里,甚至一个句子套的一个句子还能再套一个句子,一直套下去。这是一种从属关系。<code>complex sentence</code>直接翻译是复杂句。在这里,一个句子套另一个句子,在英语语法上分别叫做主句(main clause)和从句(subordinate clause)。从句说白了就是把简单句修改一下来充当另一个句子的句子成分。比如,我们修改一个简单句,它可以作为另外一个句子的主语,这就是主语从句,依此内推,可以得到补语从句、宾语从句、表语从句、同位语从句,这几种从句都有名次性质,所以又被称为名词性从句,其他的还有定语从句和状语从句。</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/simple_sentences_subordinate_clause.jpg" class="" title="简单句和各种从句关系截图">
<h2 id="词性(词类)"><a href="#词性(词类)" class="headerlink" title="词性(词类)"></a>词性(词类)</h2><p>同一类句子成分里可能有不同的词类</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/subject_verb_obj.jpg" class="" title="同一类句子成分可能有不同的词类截图">
<h3 id="1-名词(nouns,表人和物)"><a href="#1-名词(nouns,表人和物)" class="headerlink" title="1.名词(nouns,表人和物)"></a>1.名词(nouns,表人和物)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Papa Rabbit is a rabbit.</span><br><span class="line">兔老爹是只兔子。</span><br></pre></td></tr></table></figure>
<p>这里的<code>rabbit</code>就是名词</p>
<h3 id="2-冠词(articles,英语中说明人和事物)"><a href="#2-冠词(articles,英语中说明人和事物)" class="headerlink" title="2.冠词(articles,英语中说明人和事物)"></a>2.冠词(articles,英语中说明人和事物)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Papa Rabbit is a rabbit.</span><br><span class="line">兔老爹是只兔子。</span><br></pre></td></tr></table></figure>
<p>这里的<code>a</code>就是冠词</p>
<h3 id="3-代词(pronouns,替代人和物)"><a href="#3-代词(pronouns,替代人和物)" class="headerlink" title="3.代词(pronouns,替代人和物)"></a>3.代词(pronouns,替代人和物)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">I am a rabbit.</span><br><span class="line">我是只兔子。</span><br></pre></td></tr></table></figure>
<p>这里的<code>I</code>就是代词</p>
<h3 id="4-形容词(adjectives,形容人和物)"><a href="#4-形容词(adjectives,形容人和物)" class="headerlink" title="4.形容词(adjectives,形容人和物)"></a>4.形容词(adjectives,形容人和物)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">I am a smart rabbit.</span><br><span class="line">我是只聪明的兔子。</span><br></pre></td></tr></table></figure>
<p>这里的<code>smart</code>就是形容词</p>
<h3 id="5-数词(numerals,表数量)"><a href="#5-数词(numerals,表数量)" class="headerlink" title="5.数词(numerals,表数量)"></a>5.数词(numerals,表数量)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">I ate two carrots.</span><br><span class="line">我吃了两根胡萝卜。</span><br></pre></td></tr></table></figure>
<p>这里的<code>two</code>就是数词</p>
<h3 id="6-副词(adverbs,修饰动词或形容词)"><a href="#6-副词(adverbs,修饰动词或形容词)" class="headerlink" title="6.副词(adverbs,修饰动词或形容词)"></a>6.副词(adverbs,修饰动词或形容词)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">I ate two carrots quickly.</span><br><span class="line">我很快地吃了两根胡萝卜。</span><br></pre></td></tr></table></figure>
<p>这里的<code>quickly</code>就是副词</p>
<h3 id="7-介词(prepositions,表示和其他词关系的词)"><a href="#7-介词(prepositions,表示和其他词关系的词)" class="headerlink" title="7.介词(prepositions,表示和其他词关系的词)"></a>7.介词(prepositions,表示和其他词关系的词)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">I ate two carrots with chopsticks.</span><br><span class="line">我用筷子吃了两根胡萝卜。</span><br></pre></td></tr></table></figure>
<p>这里的<code>with</code>就是介词</p>
<h3 id="8-叹词(interjections,表感叹)"><a href="#8-叹词(interjections,表感叹)" class="headerlink" title="8.叹词(interjections,表感叹)"></a>8.叹词(interjections,表感叹)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Ah,the carrot is tasty!</span><br><span class="line">啊,胡萝卜好美味!</span><br></pre></td></tr></table></figure>
<p>这里的<code>Ah</code>就是叹词</p>
<h3 id="9-连词(conjunctions,连接词和句)"><a href="#9-连词(conjunctions,连接词和句)" class="headerlink" title="9.连词(conjunctions,连接词和句)"></a>9.连词(conjunctions,连接词和句)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">I ate two carrots and a potato, because I was hungry.</span><br><span class="line">我吃了两根胡萝卜和一个马铃薯,因为我饿了。</span><br></pre></td></tr></table></figure>
<p>以上词类和动词一起,便是英语的十大词类</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/ten_category.jpg" class="" title="英语十大词类截图">
<h2 id="谓语动词的“三大本领”"><a href="#谓语动词的“三大本领”" class="headerlink" title="谓语动词的“三大本领”"></a>谓语动词的“三大本领”</h2><h3 id="1-动作时间(Tense)"><a href="#1-动作时间(Tense)" class="headerlink" title="1.动作时间(Tense)"></a>1.动作时间(Tense)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">现在</span><br><span class="line">过去</span><br><span class="line">将来</span><br><span class="line">过去将来</span><br></pre></td></tr></table></figure>
<h3 id="2-动作状态(Aspect)"><a href="#2-动作状态(Aspect)" class="headerlink" title="2.动作状态(Aspect)"></a>2.动作状态(Aspect)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">一般</span><br><span class="line">完成</span><br><span class="line">进行</span><br><span class="line">完成进行</span><br></pre></td></tr></table></figure>
<p>将动作时间和动作状态排列组合,理论上就有16种可能的时态</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/16_tense.jpg" class="" title="英语理论16种动词时态截图">
<h3 id="3-动作假设,情感(Mood,语法语气,并非说话语气)"><a href="#3-动作假设,情感(Mood,语法语气,并非说话语气)" class="headerlink" title="3.动作假设,情感(Mood,语法语气,并非说话语气)"></a>3.动作假设,情感(Mood,语法语气,并非说话语气)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">If I were a rabbit...</span><br><span class="line">(虚拟语气,用来表示意愿,和事实相反的假设等)</span><br><span class="line"></span><br><span class="line">I ate a carrot and...</span><br><span class="line">(陈述语气,)</span><br><span class="line"></span><br><span class="line">Eat this carrot and...</span><br><span class="line">(祈使语气)</span><br></pre></td></tr></table></figure>
<p>以上三个特点分别称为动词的Tense、Aspect、Mood,合称TAM。英语的谓动词本身往往不能独立完成刚才说的那些本领,而且谓语动词独自也无法完成比如表示否定,可能性,必须性等意思。想让谓语动词充分发挥,我们必须用到另一类经常和动词一起用的词,帮助“完成任务”。它们就是“助动词”,auxiliary verbs。</p>
<h3 id="助动词(auxiliary-verbs)"><a href="#助动词(auxiliary-verbs)" class="headerlink" title="助动词(auxiliary verbs)"></a>助动词(auxiliary verbs)</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">(协助)表示“吃过了(完成)” -> have -> have eaten</span><br><span class="line">(协助)表示“正在吃(进行)” -> be -> is eating</span><br><span class="line">(协助)表示“被吃” -> be -> is eaten</span><br><span class="line">(协助)表示“有能力吃” -> can -> can eat</span><br><span class="line">(协助)表示“有可能吃” -> might -> might eat</span><br><span class="line">(协助)表示“有义务吃” -> must -> must eat</span><br><span class="line">(协助)表示“不吃(否定)” -> do -> do not eat</span><br></pre></td></tr></table></figure>
<p>以上的can,might, must也被称为“情态动词”,可归类在“助动词”里–但是也有语法体系把情态动词单独归类–这是分类的不同,并不影响理解。但是还有个麻烦的事,就是很多助动词特别喜欢伪装,它们除了做助动词(没有实义,只是帮助谓语动词而已),还可以做实义动词,甚至还有其他词性。比如can还可以是易拉罐,might可以是力量,musty可以是发霉的,do可以是做某事,have可以是拥有,be可以是存在。这些也恰恰是容易让人混乱的地方。所以千万不要把助动词和它的其他身份(作实义动词时)弄混淆。</p>
<h3 id="非谓语动词"><a href="#非谓语动词" class="headerlink" title="非谓语动词"></a>非谓语动词</h3><p>动词除了可以在句子中充当谓语,还可以充当主语、宾语、宾语补语、主语补语、定语等,只不过需要把谓语动词修改成非谓语动词,非谓语动词可以充当除谓语动词以外的所有句子成分。不仅如此,非谓语动词几乎可以取代所有的从句,从而简化句子。只不过非谓语动词不再具有表示动作时间、状态、语态、语气的功能,也就是非谓语动词丧失了时态、语气、语态这些本领了。</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/Xnip2024-06-23_11-17-16.jpg" class="" title="非谓语动词作其他句子成分截图">
<p>非谓语动词有哪些:动词不定式、现在分词、动名词、过去分词</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/Xnip2024-06-23_11-23-18.jpg" class="" title="非谓语动词分类截图">
<h2 id="英语语法概述"><a href="#英语语法概述" class="headerlink" title="英语语法概述"></a>英语语法概述</h2><p>英语的核心是动词,分为谓语动词和非谓语动词,谓语动词分为5种,分别决定了简单句(不能再拆)的5种基本句型,同时也囊括以下句子成分:主语、谓语动词、宾语、宾语补语、主语补语(表语)。除此之外,句子成分还有:定语、状语、同位语。简单句可以组合成并列关系的“复合句”以及从属关系的“复杂句”,后者包括主句和从句,从句可以充当所有除谓语动词以外的句子成分。句子成分可以由不同词类充当,分别是:名词、代词、冠词、形容词、数词、副词、介词、叹词、连词。谓语动词可以表达动作的时间,状态,语气等,但是需要用到助动词(包含情态动词)。助动词还能帮助否定动词,表达动词的被动,可能性,义务性… 非谓语动词可以视作“改动后”的谓语动词,可以充当除谓语动词外的所有句子成分,取代几乎所有从句,简化句子。</p>
<img src="/Blog/2024/06/18/%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95%E7%BB%BC%E8%BF%B0/English_global_framework.jpg" class="" title="英语语法体系主体框架截图">
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://github.com/DavidWanderer/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/Blog/images/avatar.gif">
<meta itemprop="name" content="听月">
<meta itemprop="description" content="Your dreams don't work unless you do.">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Stay hungry, Stay foolish.">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/" class="post-title-link" itemprop="url">如何将Swift Package编译成XCFramework</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2024-05-12 09:05:18" itemprop="dateCreated datePublished" datetime="2024-05-12T09:05:18+08:00">2024-05-12</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/Blog/categories/Swift/" itemprop="url" rel="index"><span itemprop="name">Swift</span></a>
</span>
</span>
<br>
<span class="post-meta-item" title="本文字数">
<span class="post-meta-item-icon">
<i class="far fa-file-word"></i>
</span>
<span class="post-meta-item-text">本文字数:</span>
<span>3.6k</span>
</span>
<span class="post-meta-item" title="阅读时长">
<span class="post-meta-item-icon">
<i class="far fa-clock"></i>
</span>
<span class="post-meta-item-text">阅读时长 ≈</span>
<span>3 分钟</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h2 id="为什么要将Swift-Package编译成XCframework?"><a href="#为什么要将Swift-Package编译成XCframework?" class="headerlink" title="为什么要将Swift Package编译成XCframework?"></a>为什么要将Swift Package编译成XCframework?</h2><p>这是一个困扰我很久的问题,问题产生的背景是多个<code>Swift Package Manager</code>创建的独立<code>package</code>,希望组合成一个SDK,这些<code>package</code>有些是第三方的,比如<code>Alamofire、SwiftyJSON</code>,也有自己写的<code>package</code>,自己写的<code>package</code>是依赖第三方<code>package</code>,现在想把自己写的<code>package</code>打包成<code>XCFramework</code>提供给别人使用,如何在不改动依赖情况下,将自己写的<code>package</code>和第三方的<code>package</code>都打包成<code>XCframework</code>?</p>
<p>简单理解一下需求,就是需要将<code>SPM Package</code>及其依赖的第三方<code>SPM Package</code>打包成<code>XCFramework</code>提供给别人使用。</p>
<h2 id="有哪些解决方案?"><a href="#有哪些解决方案?" class="headerlink" title="有哪些解决方案?"></a>有哪些解决方案?</h2><h3 id="方案1:-swift-create-xcframework"><a href="#方案1:-swift-create-xcframework" class="headerlink" title="方案1: swift-create-xcframework"></a>方案1: <code>swift-create-xcframework</code></h3><p><code>swift-create-xcframework</code>是<code>github</code>上一个包装<code>xcodebuild</code>命令的命令行项目,通过这个命令行项目,你可以将自己写的<code>SPM Package</code>及其依赖的第三方<code>SPM Package</code>都打包成<code>XCFramework</code>。<a href="https://github.com/segment-integrations/swift-create-xcframework">项目地址</a></p>
<h3 id="方案1示例"><a href="#方案1示例" class="headerlink" title="方案1示例"></a>方案1示例</h3><h4 id="第一步:新建Package,然后编写Package-swift,设置第三方依赖"><a href="#第一步:新建Package,然后编写Package-swift,设置第三方依赖" class="headerlink" title="第一步:新建Package,然后编写Package.swift,设置第三方依赖"></a>第一步:新建<code>Package</code>,然后编写<code>Package.swift</code>,设置第三方依赖</h4><img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/1.jpeg" class="" title="Package.swift的截图">
<h4 id="第二步:编写Package中的代码"><a href="#第二步:编写Package中的代码" class="headerlink" title="第二步:编写Package中的代码"></a>第二步:编写<code>Package</code>中的代码</h4><img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/2.jpeg" class="" title="MyTool.swift的截图">
<p>编写代码,引用图片资源</p>
<img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/3.jpeg" class="" title="SwiftUIView.swift的截图">
<h4 id="第三步:在Package根目录,安装swift-create-xcframework"><a href="#第三步:在Package根目录,安装swift-create-xcframework" class="headerlink" title="第三步:在Package根目录,安装swift-create-xcframework"></a>第三步:在<code>Package</code>根目录,安装<code>swift-create-xcframework</code></h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ <span class="built_in">cd</span> MyLibrary</span><br><span class="line">$ brew install segment-integrations/formulae/swift-create-xcframework</span><br></pre></td></tr></table></figure>
<h4 id="第四步:查询Package中的Target"><a href="#第四步:查询Package中的Target" class="headerlink" title="第四步:查询Package中的Target"></a>第四步:查询<code>Package</code>中的<code>Target</code></h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ swift create-xcframework --list-products</span><br></pre></td></tr></table></figure>
<img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/4.jpeg" class="" title="查询Package中Target的截图">
<h4 id="第五步:编译打包Package中的全部target,多个target以空格分开"><a href="#第五步:编译打包Package中的全部target,多个target以空格分开" class="headerlink" title="第五步:编译打包Package中的全部target,多个target以空格分开"></a>第五步:编译打包<code>Package</code>中的全部<code>target</code>,多个<code>target</code>以空格分开</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ swift create-xcframework MyLibrary Alamofire</span><br></pre></td></tr></table></figure>
<p>编译完成的截图</p>
<img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/5.jpeg" class="" title="编译完成的截图">
<h4 id="第六步:编译完成后会在Package根目录生成对应target的XCFramework文件"><a href="#第六步:编译完成后会在Package根目录生成对应target的XCFramework文件" class="headerlink" title="第六步:编译完成后会在Package根目录生成对应target的XCFramework文件"></a>第六步:编译完成后会在<code>Package</code>根目录生成对应<code>target</code>的<code>XCFramework</code>文件</h4><img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/6.jpeg" class="" title="XCFramework生成后的截图">
<h4 id="第七步:编写Demo测试生成后的XCFramework文件"><a href="#第七步:编写Demo测试生成后的XCFramework文件" class="headerlink" title="第七步:编写Demo测试生成后的XCFramework文件"></a>第七步:编写Demo测试生成后的<code>XCFramework</code>文件</h4><img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/7.jpeg" class="" title="测试xcframework的demo截图">
<p>编写代码测试xcframework</p>
<img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/8.jpeg" class="" title="测试xcframework的demo截图">
<p><b>注意:<code>swift-create-xcframework</code>不是万能的,虽然它可以把自己写的SPM Package和Package依赖的第三方包都打包成XCFramework,但是如果自己的包和第三方的包里面引用了图片等资源,这些资源是不会打包进XCFramework的!!所以需要图片资源的可以继续看方案2。</b></p>
<h3 id="方案2:自己编写脚本"><a href="#方案2:自己编写脚本" class="headerlink" title="方案2:自己编写脚本"></a>方案2:自己编写脚本</h3><h4 id="第一步:编写打包脚本"><a href="#第一步:编写打包脚本" class="headerlink" title="第一步:编写打包脚本"></a>第一步:编写打包脚本</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> -x</span><br><span class="line"><span class="built_in">set</span> -e</span><br><span class="line"></span><br><span class="line"><span class="comment"># Pass scheme name as the first argument to the script</span></span><br><span class="line">NAME=<span class="variable">$1</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Build the scheme for all platforms that we plan to support</span></span><br><span class="line"><span class="keyword">for</span> PLATFORM <span class="keyword">in</span> <span class="string">"iOS"</span> <span class="string">"iOS Simulator"</span>; <span class="keyword">do</span></span><br><span class="line"></span><br><span class="line"> <span class="keyword">case</span> <span class="variable">$PLATFORM</span> <span class="keyword">in</span></span><br><span class="line"> <span class="string">"iOS"</span>)</span><br><span class="line"> RELEASE_FOLDER=<span class="string">"Release-iphoneos"</span></span><br><span class="line"> ;;</span><br><span class="line"> <span class="string">"iOS Simulator"</span>)</span><br><span class="line"> RELEASE_FOLDER=<span class="string">"Release-iphonesimulator"</span></span><br><span class="line"> ;;</span><br><span class="line"> <span class="keyword">esac</span></span><br><span class="line"></span><br><span class="line"> ARCHIVE_PATH=<span class="variable">$RELEASE_FOLDER</span></span><br><span class="line"></span><br><span class="line"> <span class="comment"># Rewrite Package.swift so that it declaras dynamic libraries, since the approach does not work with static libraries</span></span><br><span class="line"> perl -i -p0e <span class="string">'s/type: .static,//g'</span> Package.swift</span><br><span class="line"> perl -i -p0e <span class="string">'s/type: .dynamic,//g'</span> Package.swift</span><br><span class="line"> perl -i -p0e <span class="string">'s/(library[^,]*,)/$1 type: .dynamic,/g'</span> Package.swift</span><br><span class="line"></span><br><span class="line"> xcodebuild archive -workspace . -scheme <span class="variable">$NAME</span> \</span><br><span class="line"> -destination <span class="string">"generic/platform=<span class="variable">$PLATFORM</span>"</span> \</span><br><span class="line"> -archivePath <span class="variable">$ARCHIVE_PATH</span> \</span><br><span class="line"> -derivedDataPath <span class="string">".build"</span> \</span><br><span class="line"> SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES</span><br><span class="line"></span><br><span class="line"> FRAMEWORK_PATH=<span class="string">"<span class="variable">$ARCHIVE_PATH</span>.xcarchive/Products/usr/local/lib/<span class="variable">$NAME</span>.framework"</span></span><br><span class="line"> MODULES_PATH=<span class="string">"<span class="variable">$FRAMEWORK_PATH</span>/Modules"</span></span><br><span class="line"> mkdir -p <span class="variable">$MODULES_PATH</span></span><br><span class="line"></span><br><span class="line"> BUILD_PRODUCTS_PATH=<span class="string">".build/Build/Intermediates.noindex/ArchiveIntermediates/<span class="variable">$NAME</span>/BuildProductsPath"</span></span><br><span class="line"> RELEASE_PATH=<span class="string">"<span class="variable">$BUILD_PRODUCTS_PATH</span>/<span class="variable">$RELEASE_FOLDER</span>"</span></span><br><span class="line"> SWIFT_MODULE_PATH=<span class="string">"<span class="variable">$RELEASE_PATH</span>/<span class="variable">$NAME</span>.swiftmodule"</span></span><br><span class="line"> RESOURCES_BUNDLE_PATH=<span class="string">"<span class="variable">$RELEASE_PATH</span>/<span class="variable">${NAME}</span>_<span class="variable">${NAME}</span>.bundle"</span></span><br><span class="line"></span><br><span class="line"> <span class="comment"># Copy Swift modules</span></span><br><span class="line"> <span class="keyword">if</span> [ -d <span class="variable">$SWIFT_MODULE_PATH</span> ] </span><br><span class="line"> <span class="keyword">then</span></span><br><span class="line"> cp -r <span class="variable">$SWIFT_MODULE_PATH</span> <span class="variable">$MODULES_PATH</span></span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> <span class="comment"># In case there are no modules, assume C/ObjC library and create module map</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"module <span class="variable">$NAME</span> { export * }"</span> > <span class="variable">$MODULES_PATH</span>/module.modulemap</span><br><span class="line"> <span class="comment"># <span class="doctag">TODO:</span> Copy headers</span></span><br><span class="line"> <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"> <span class="comment"># Copy resources bundle, if exists </span></span><br><span class="line"> <span class="keyword">if</span> [ -e <span class="variable">$RESOURCES_BUNDLE_PATH</span> ] </span><br><span class="line"> <span class="keyword">then</span></span><br><span class="line"> cp -r <span class="variable">$RESOURCES_BUNDLE_PATH</span> <span class="variable">$FRAMEWORK_PATH</span></span><br><span class="line"> <span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">done</span></span><br><span class="line"></span><br><span class="line">xcodebuild -create-xcframework \</span><br><span class="line">-framework Release-iphoneos.xcarchive/Products/usr/<span class="built_in">local</span>/lib/<span class="variable">$NAME</span>.framework \</span><br><span class="line">-framework Release-iphonesimulator.xcarchive/Products/usr/<span class="built_in">local</span>/lib/<span class="variable">$NAME</span>.framework \</span><br><span class="line">-output <span class="variable">$NAME</span>.xcframework</span><br></pre></td></tr></table></figure>
<h4 id="第二步:保存编译脚本,并放到Package根目录中,给脚本加上可执行权限,然后打包"><a href="#第二步:保存编译脚本,并放到Package根目录中,给脚本加上可执行权限,然后打包" class="headerlink" title="第二步:保存编译脚本,并放到Package根目录中,给脚本加上可执行权限,然后打包"></a>第二步:保存编译脚本,并放到Package根目录中,给脚本加上可执行权限,然后打包</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ chmod +x build.sh</span><br><span class="line">$ ./build.sh MyLibrary</span><br></pre></td></tr></table></figure>
<p>编译打包截图:</p>
<img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/9.png" class="" title="编译打包截图">
<p>编译打包成功截图:</p>
<img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/10.png" class="" title="编译打包成功截图">
<p>最终生成的<code>XCFramework</code>包含资源文件</p>
<img src="/Blog/2024/05/12/%E5%A6%82%E4%BD%95%E5%B0%86Swift-Package%E7%BC%96%E8%AF%91%E6%88%90XCFramework/11.png" class="" title="生成之后的XCFramework截图">
<p><b>注意:自己写脚本打包虽然可以将资源文件打包进XCFramework,但是资源文件被放在了一个单独的Bundle里面,与Xcode生成的XCFramework还是不太一样。并且,脚本无法将依赖的库也打包成XCFramework,所以具体采用哪一个方案还要结合自己的情况选择。目前看来两种解决方案都有缺陷,造成这种缺陷的原因是,Xcode目前没有支持将SPM Package打包成XCFramework的功能,所以才有这么多偏方,如果哪天Xcode支持了这个功能,那这两个方法都可以被抛弃了。</b></p>
<h2 id="案例Demo"><a href="#案例Demo" class="headerlink" title="案例Demo"></a>案例Demo</h2><p><a href="https://github.com/DavidWanderer/MyLibrary">MyLibrary代码下载</a></p>
<h2 id="参考链接"><a href="#参考链接" class="headerlink" title="参考链接"></a>参考链接</h2><p><a href="https://github.com/segment-integrations/swift-create-xcframework">swift-create-xcframework</a></p>
<p><a href="https://github.com/unsignedapps/swift-create-xcframework?tab=readme-ov-file">swift-create-xcframework(已不再维护)</a></p>
<p><a target="_blank" rel="noopener" href="https://forums.swift.org/t/how-to-build-swift-package-as-xcframework/41414/3">How to build Swift Package as XCFramework</a></p>
<p><a target="_blank" rel="noopener" href="https://www.yigegongjiang.com/2023/swiftPackageFramework/">通过 Swift Package 制作二进制库</a></p>
<p><a target="_blank" rel="noopener" href="https://www.volcengine.com/theme/7738298-S-7-1">使用Swift Package Manager为二进制目标添加包依赖</a></p>
<p><a target="_blank" rel="noopener" href="https://juejin.cn/post/7240698967456251959">向Swift Package中添加资源文件</a></p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://github.com/DavidWanderer/Blog/2023/01/06/iOS%E7%BB%9F%E8%AE%A1SDK%E4%BD%93%E7%A7%AF%E5%A4%A7%E5%B0%8F/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/Blog/images/avatar.gif">
<meta itemprop="name" content="听月">
<meta itemprop="description" content="Your dreams don't work unless you do.">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Stay hungry, Stay foolish.">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/Blog/2023/01/06/iOS%E7%BB%9F%E8%AE%A1SDK%E4%BD%93%E7%A7%AF%E5%A4%A7%E5%B0%8F/" class="post-title-link" itemprop="url">iOS统计SDK体积大小</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2023-01-06 16:50:52" itemprop="dateCreated datePublished" datetime="2023-01-06T16:50:52+08:00">2023-01-06</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/Blog/categories/iOS/" itemprop="url" rel="index"><span itemprop="name">iOS</span></a>
</span>
</span>
<br>
<span class="post-meta-item" title="本文字数">
<span class="post-meta-item-icon">
<i class="far fa-file-word"></i>
</span>
<span class="post-meta-item-text">本文字数:</span>
<span>1k</span>
</span>
<span class="post-meta-item" title="阅读时长">
<span class="post-meta-item-icon">
<i class="far fa-clock"></i>
</span>
<span class="post-meta-item-text">阅读时长 ≈</span>
<span>1 分钟</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h2 id="如何精确统计SDK体积?"><a href="#如何精确统计SDK体积?" class="headerlink" title="如何精确统计SDK体积?"></a>如何精确统计SDK体积?</h2><p>客户端拿到的SDK可能是多个架构的,比如armv7、armv7s、i386、x86_64、arm64,而最终打到ipa里面却不可能包含这么多架构,中间经过裁剪优化,可能最终体积会大大减少。</p>
<p>我就碰到了一个类似的问题,升级sdk,单纯从.a和.framework的体积来计算升级前后的体积,结论是升级后,sdk体积会降低12.35M的大小。但是,打出ipa进行比对,发现升级后ipa反而增长2.1M。看到这样的结果,我也不知道如何解释。</p>
<h2 id="查看Mach-O文件-TEXT段大小"><a href="#查看Mach-O文件-TEXT段大小" class="headerlink" title="查看Mach-O文件__TEXT段大小"></a>查看Mach-O文件__TEXT段大小</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ xcrun size -lm <binary-path></span><br></pre></td></tr></table></figure>
<p>使用上面的指令,可以查看Mach-O文件Data部分结构和各Segment/Section的大小信息。</p>
<img src="/Blog/2023/01/06/iOS%E7%BB%9F%E8%AE%A1SDK%E4%BD%93%E7%A7%AF%E5%A4%A7%E5%B0%8F/1.png" class="" title="查看Mach-O文件详细大小截图">
<p>通过比较两个ipa文件中Mach-O文件__TEXT段的大小,发现升级后的Mach-O文件的确增大了3M左右。</p>
<h2 id="开启LinkMap选项,使用LinkMap分析SDK大小"><a href="#开启LinkMap选项,使用LinkMap分析SDK大小" class="headerlink" title="开启LinkMap选项,使用LinkMap分析SDK大小"></a>开启LinkMap选项,使用LinkMap分析SDK大小</h2><ul>
<li>普通项目,开启LinkMap,需要在<code>XCode -> Project -> Build Settings -> 把Write Link Map File选项设为yes,并指定好linkMap的存储位置</code></li>
<li>Bazel项目,开启LinkMap,需要在<code>.bazelrc</code>配置文件中添加下面几行配置:<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">aquery --objc_generate_linkmap=1</span><br><span class="line">build --objc_generate_linkmap=1</span><br><span class="line">cquery --objc_generate_linkmap=1</span><br></pre></td></tr></table></figure>
然后,找到<code>Edit Scheme</code>选项,切换到release模式,编译项目,获取到编辑后的Mach-O文件和LinkMap文件。如果不清楚LinkMap文件位置,可以在Xcode的编辑日志中搜索LinkMap关键字,编辑的时候会打印相关日志。</li>
</ul>
<h2 id="使用LinkMap文件分析SDK的大小"><a href="#使用LinkMap文件分析SDK的大小" class="headerlink" title="使用LinkMap文件分析SDK的大小"></a>使用LinkMap文件分析SDK的大小</h2><p>使用<a href="https://github.com/jayden320/LinkMap">LinkMap分析工具</a>来分析,选择LinkMap文件,勾选”分组解析”,点击开始,最终会列出全部的库文件所占用的体积。</p>
<img src="/Blog/2023/01/06/iOS%E7%BB%9F%E8%AE%A1SDK%E4%BD%93%E7%A7%AF%E5%A4%A7%E5%B0%8F/2.png" class="" title="分析LinkMap详细数据截图">
<p>最终通过比较两个LinkMap分析的数据,发现升级之后 SDK体积确实增长了3.26M。</p>
<h2 id="参考链接"><a href="#参考链接" class="headerlink" title="参考链接"></a>参考链接</h2><p><a target="_blank" rel="noopener" href="https://mp.weixin.qq.com/s/TnqAqpmuXsGFfpcSUqZ9GQ">今日头条优化实践: iOS 包大小二进制优化,一行代码减少 60 MB 下载大小</a><br><a target="_blank" rel="noopener" href="https://juejin.cn/post/6844904169938092045#heading-23">深入探索 iOS 包体积优化</a><br><a target="_blank" rel="noopener" href="https://www.jianshu.com/p/553f43eca0f8">iOS性能优化-包大小+linkMap分析和查找未使用类和方法</a><br><a target="_blank" rel="noopener" href="https://juejin.cn/post/6969152605758947336">iOS使用LinkMap分析包大小</a><br><a href="https://github.com/jayden320/LinkMap">LinkMap分析工具</a></p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://github.com/DavidWanderer/Blog/2022/10/16/Macbook-Pro%E5%BF%98%E8%AE%B0%E5%AF%86%E7%A0%81/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/Blog/images/avatar.gif">
<meta itemprop="name" content="听月">
<meta itemprop="description" content="Your dreams don't work unless you do.">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Stay hungry, Stay foolish.">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/Blog/2022/10/16/Macbook-Pro%E5%BF%98%E8%AE%B0%E5%AF%86%E7%A0%81/" class="post-title-link" itemprop="url">Macbook Pro忘记密码</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2022-10-16 01:08:39" itemprop="dateCreated datePublished" datetime="2022-10-16T01:08:39+08:00">2022-10-16</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/Blog/categories/%E9%80%9A%E7%94%A8/" itemprop="url" rel="index"><span itemprop="name">通用</span></a>
</span>
</span>
<br>
<span class="post-meta-item" title="本文字数">
<span class="post-meta-item-icon">
<i class="far fa-file-word"></i>
</span>
<span class="post-meta-item-text">本文字数:</span>
<span>485</span>
</span>
<span class="post-meta-item" title="阅读时长">
<span class="post-meta-item-icon">
<i class="far fa-clock"></i>
</span>
<span class="post-meta-item-text">阅读时长 ≈</span>
<span>1 分钟</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>周六打开电脑发现,密码怎么输都不对,无法登录电脑。一周没关机了,周五下班关机了,结果开起来密码忘记了。幸运的是,我在网上搜索相关的解决办法,很快就解决了我的问题,在这里记录一下哈~</p>
<h2 id="解决办法"><a href="#解决办法" class="headerlink" title="解决办法"></a>解决办法</h2><h3 id="1-重启电脑,长按开机键,进入恢复模式"><a href="#1-重启电脑,长按开机键,进入恢复模式" class="headerlink" title="1.重启电脑,长按开机键,进入恢复模式"></a>1.重启电脑,长按开机键,进入恢复模式</h3><p>由于我的电脑是Macbook M1带Touch Bar的款式,在尝试网上长按<code>Command + R</code>无效后,长按开机键进入了回复模式,大概的界面是这样的。</p>
<img src="/Blog/2022/10/16/Macbook-Pro%E5%BF%98%E8%AE%B0%E5%AF%86%E7%A0%81/1.webp" class="" title="Macbook恢复模式界面">
<h3 id="2-选择实用工具菜单,打开终端"><a href="#2-选择实用工具菜单,打开终端" class="headerlink" title="2.选择实用工具菜单,打开终端"></a>2.选择实用工具菜单,打开终端</h3><p>具体操作可以见上图。</p>
<h3 id="3-输入resetpassword命令,重置密码"><a href="#3-输入resetpassword命令,重置密码" class="headerlink" title="3.输入resetpassword命令,重置密码"></a>3.输入<code>resetpassword</code>命令,重置密码</h3><p>在终端直接输入<code>resetpassword</code>, 回车之后,会出现界面,提示重置密码。</p>
<img src="/Blog/2022/10/16/Macbook-Pro%E5%BF%98%E8%AE%B0%E5%AF%86%E7%A0%81/2.jpeg" class="" title="重置密码命令">
<h3 id="4-Deactivate-Mac"><a href="#4-Deactivate-Mac" class="headerlink" title="4.Deactivate Mac"></a>4.Deactivate Mac</h3><p>不知道是不是系统原因,我的电脑提示“在重置密码之前,需要先Deactivate Mac”,我就按照提示点了“Deactivate Mac”,这个操作暂时不清楚是干什么用的,不过不影响我的个人数据,最终我的数据没有丢失。</p>
<h3 id="5-开始重置密码"><a href="#5-开始重置密码" class="headerlink" title="5.开始重置密码"></a>5.开始重置密码</h3><p>操作完“Deactivate Mac”后,我就来到了重置密码的界面,按照要求,重新设置电脑密码,重启后就可以正常登录电脑了。</p>
<img src="/Blog/2022/10/16/Macbook-Pro%E5%BF%98%E8%AE%B0%E5%AF%86%E7%A0%81/3.webp" class="" title="重置密码界面">
<h2 id="参考链接"><a href="#参考链接" class="headerlink" title="参考链接"></a>参考链接</h2><p><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/307447869">Mac系统忘记开机密码怎么办?</a></p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://github.com/DavidWanderer/Blog/2022/09/23/iOS-15-Crash-Log%E8%A7%A3%E6%9E%90/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/Blog/images/avatar.gif">
<meta itemprop="name" content="听月">
<meta itemprop="description" content="Your dreams don't work unless you do.">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Stay hungry, Stay foolish.">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/Blog/2022/09/23/iOS-15-Crash-Log%E8%A7%A3%E6%9E%90/" class="post-title-link" itemprop="url">iOS 15 Crash Log解析</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2022-09-23 16:35:47" itemprop="dateCreated datePublished" datetime="2022-09-23T16:35:47+08:00">2022-09-23</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/Blog/categories/iOS/" itemprop="url" rel="index"><span itemprop="name">iOS</span></a>
</span>
</span>
<br>
<span class="post-meta-item" title="本文字数">
<span class="post-meta-item-icon">
<i class="far fa-file-word"></i>
</span>
<span class="post-meta-item-text">本文字数:</span>
<span>39k</span>
</span>
<span class="post-meta-item" title="阅读时长">
<span class="post-meta-item-icon">
<i class="far fa-clock"></i>
</span>
<span class="post-meta-item-text">阅读时长 ≈</span>
<span>35 分钟</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h2 id="iOS-15以上Crash-Log解析"><a href="#iOS-15以上Crash-Log解析" class="headerlink" title="iOS 15以上Crash Log解析"></a>iOS 15以上Crash Log解析</h2><p>iOS 15以前崩溃日志使用<code>symbolicatecrash</code>去解析,升级iOS 15以后,崩溃日志的组织格式有变化,变成<code>JSON</code>格式,需要使用以下的命令行解析崩溃日志:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">python3 /Applications/Xcode.app/Contents/SharedFrameworks/CoreSymbolicationDT.framework/Versions/A/Resources/CrashSymbolicator.py -d ./xxSDK.framework.dSYM -o ./1.crash -p ./0.ips</span><br></pre></td></tr></table></figure>
<p>解析前的崩溃日志(部分删减):</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br></pre></td><td class="code"><pre><span class="line">-------------------------------------</span><br><span class="line">Translated Report (Full Report Below)</span><br><span class="line">-------------------------------------</span><br><span class="line"></span><br><span class="line">Incident Identifier: 8ECE464B-8E3E-422E-AFD4-B1B8B2E431B6</span><br><span class="line">CrashReporter Key: eff5650d2e2bf936e1812e4b2d38a5ed26bda190</span><br><span class="line">Hardware Model: iPhone10,3</span><br><span class="line">Process: bililive [12926]</span><br><span class="line">Path: /private/var/containers/Bundle/Application/6E82AD84-A575-4423-822E-176FB3BBFEF6/bililive.app/bililive</span><br><span class="line">Identifier: com.bilibili.live.broadcast</span><br><span class="line">Version: 5.53.0 (5520010)</span><br><span class="line">Code Type: ARM-64 (Native)</span><br><span class="line">Role: Foreground</span><br><span class="line">Parent Process: launchd [1]</span><br><span class="line">Coalition: com.bilibili.live.broadcast [493]</span><br><span class="line"></span><br><span class="line">Date/Time: 2022-09-23 14:58:08.5849 +0800</span><br><span class="line">Launch Time: 2022-09-23 14:43:37.3104 +0800</span><br><span class="line">OS Version: iPhone OS 15.6 (19G71)</span><br><span class="line">Release Type: User</span><br><span class="line">Baseband Version: 7.61.00</span><br><span class="line">Report Version: 104</span><br><span class="line"></span><br><span class="line">Exception Type: EXC_CRASH (SIGABRT)</span><br><span class="line">Exception Codes: 0x0000000000000000, 0x0000000000000000</span><br><span class="line">Exception Note: EXC_CORPSE_NOTIFY</span><br><span class="line">Triggered by Thread: 81</span><br><span class="line"></span><br><span class="line">Application Specific Information:</span><br><span class="line">abort() called</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">Last Exception Backtrace:</span><br><span class="line">0 CoreFoundation 0x180d5fd1c __exceptionPreprocess + 216</span><br><span class="line">1 libobjc.A.dylib 0x19857fee4 objc_exception_throw + 56</span><br><span class="line">2 Foundation 0x18245bbbc NSAllocateMemoryPages + 196</span><br><span class="line">3 Foundation 0x182409a24 -[_NSPlaceholderData initWithBytes:length:copy:deallocator:] + 148</span><br><span class="line">4 UIKitCore 0x183321738 _UIImageRefFromData + 232</span><br><span class="line">5 UIKitCore 0x183322478 -[UIImage _initWithData:preserveScale:cache:scale:] + 64</span><br><span class="line">6 UIKitCore 0x1833997a8 +[UIImage imageWithData:] + 56</span><br><span class="line">7 xxSDK 0x10c7ef920 0x10c730000 + 784672</span><br><span class="line">8 xxSDK 0x10c7e44e8 0x10c730000 + 738536</span><br><span class="line">9 xxSDK 0x10c7f7358 0x10c730000 + 815960</span><br><span class="line">10 xxSDK 0x10c7f7310 0x10c730000 + 815888</span><br><span class="line">11 xxSDK 0x10c7f14b8 0x10c730000 + 791736</span><br><span class="line">12 xxSDK 0x10c7f87e4 0x10c730000 + 821220</span><br><span class="line">13 xxSDK 0x10c7ec8b4 0x10c730000 + 772276</span><br><span class="line">14 xxSDK 0x10c7ec1ec 0x10c730000 + 770540</span><br><span class="line">15 xxSDK 0x10c7eb95c 0x10c730000 + 768348</span><br><span class="line">16 libdispatch.dylib 0x180a20094 _dispatch_client_callout + 16</span><br><span class="line">17 libdispatch.dylib 0x1809f7ab8 _dispatch_continuation_pop<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 432</span><br><span class="line">18 libdispatch.dylib 0x180a0916c _dispatch_source_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 1560</span><br><span class="line">19 libdispatch.dylib 0x1809fb380 _dispatch_lane_serial_drain<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 308</span><br><span class="line">20 libdispatch.dylib 0x1809fbf44 _dispatch_lane_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 388</span><br><span class="line">21 libdispatch.dylib 0x180a058e0 _dispatch_workloop_worker_thread + 608</span><br><span class="line">22 libsystem_pthread.dylib 0x1dc014e10 _pthread_wqthread + 284</span><br><span class="line">23 libsystem_pthread.dylib 0x1dc01493c start_wqthread + 8</span><br><span class="line"></span><br><span class="line">Thread 0 name: Dispatch queue: com.apple.main-thread</span><br><span class="line">Thread 0:</span><br><span class="line">0 libsystem_kernel.dylib 0x1bb5abaac mach_msg_trap + 8</span><br><span class="line">1 libsystem_kernel.dylib 0x1bb5ac07c mach_msg + 72</span><br><span class="line">2 CoreFoundation 0x180cd3d88 __CFRunLoopServiceMachPort + 368</span><br><span class="line">3 CoreFoundation 0x180cd8090 __CFRunLoopRun + 1160</span><br><span class="line">4 CoreFoundation 0x180ceb250 CFRunLoopRunSpecific + 572</span><br><span class="line">5 GraphicsServices 0x1a1826988 GSEventRunModal + 160</span><br><span class="line">6 UIKitCore 0x1834eba94 -[UIApplication _run] + 1080</span><br><span class="line">7 UIKitCore 0x183284fd4 UIApplicationMain + 336</span><br><span class="line">8 ??? 0x1072735d8 main + 180</span><br><span class="line">9 dyld 0x10ba9c4d0 start + 444</span><br><span class="line"></span><br><span class="line">Thread 1 name: Dispatch queue: com.apple.root.default-qos</span><br><span class="line">Thread 1:</span><br><span class="line">0 libsystem_kernel.dylib 0x1bb5aee30 poll + 8</span><br><span class="line">1 ??? 0x108095540 pollset_work(grpc_pollset*, grpc_pollset_worker**, long long) + 1016</span><br><span class="line">2 ??? 0x1080c5274 cq_next(grpc_completion_queue*, gpr_timespec, void*) + 476</span><br><span class="line">3 ??? 0x107fe6334 __27-[GRPCCompletionQueue init]_block_invoke_2 + 104</span><br><span class="line">4 libdispatch.dylib 0x180a1f094 _dispatch_call_block_and_release + 24</span><br><span class="line">5 libdispatch.dylib 0x180a20094 _dispatch_client_callout + 16</span><br><span class="line">6 libdispatch.dylib 0x180a0474c _dispatch_root_queue_drain + 612</span><br><span class="line">7 libdispatch.dylib 0x180a04dec _dispatch_worker_thread2 + 160</span><br><span class="line">8 libsystem_pthread.dylib 0x1dc014dd4 _pthread_wqthread + 224</span><br><span class="line">9 libsystem_pthread.dylib 0x1dc01493c start_wqthread + 8</span><br><span class="line"></span><br><span class="line">Thread 2 name: com.apple.uikit.eventfetch-thread</span><br><span class="line">Thread 2:</span><br><span class="line">0 libsystem_kernel.dylib 0x1bb5abaac mach_msg_trap + 8</span><br><span class="line">1 libsystem_kernel.dylib 0x1bb5ac07c mach_msg + 72</span><br><span class="line">2 CoreFoundation 0x180cd3d88 __CFRunLoopServiceMachPort + 368</span><br><span class="line">3 CoreFoundation 0x180cd8090 __CFRunLoopRun + 1160</span><br><span class="line">4 CoreFoundation 0x180ceb250 CFRunLoopRunSpecific + 572</span><br><span class="line">5 Foundation 0x1823f8eec -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 232</span><br><span class="line">6 Foundation 0x182438000 -[NSRunLoop(NSRunLoop) runUntilDate:] + 88</span><br><span class="line">7 UIKitCore 0x18346af00 -[UIEventFetcher threadMain] + 512</span><br><span class="line">8 Foundation 0x182445bfc __NSThread__start__ + 792</span><br><span class="line">9 libsystem_pthread.dylib 0x1dc016348 _pthread_start + 116</span><br><span class="line">10 libsystem_pthread.dylib 0x1dc014948 thread_start + 8</span><br><span class="line"></span><br><span class="line">Thread 80 name: Dispatch queue: com.bilibili.live.imageQueue.ai.2d</span><br><span class="line">Thread 80:</span><br><span class="line">0 libsystem_platform.dylib 0x1dc007884 _platform_memmove + 100</span><br><span class="line">1 ??? 0x107000268 MNN::_blit(MNN::Tensor::InsideDescribe::Region const&, int, unsigned char const*, unsigned char*, void (*)(unsigned char*, unsigned char const*, int, int, int)) + 700</span><br><span class="line">2 ??? 0x1077b878c -[BBLiveBCVirtualCvAnimate detect:pose:] + 100</span><br><span class="line">3 ??? 0x1077bd6d8 -[BBLiveBCVirtualLiveAIManager imageDataWithFaceAnchor:] + 5456</span><br><span class="line">4 ??? 0x1077bc0d0 __46-[BBLiveBCVirtualLiveAIManager _readARSession]_block_invoke + 44</span><br><span class="line">5 libdispatch.dylib 0x180a1f094 _dispatch_call_block_and_release + 24</span><br><span class="line">6 libdispatch.dylib 0x180a20094 _dispatch_client_callout + 16</span><br><span class="line">7 libdispatch.dylib 0x1809fb4a4 _dispatch_lane_serial_drain<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 600</span><br><span class="line">8 libdispatch.dylib 0x1809fbf44 _dispatch_lane_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 388</span><br><span class="line">9 libdispatch.dylib 0x180a058e0 _dispatch_workloop_worker_thread + 608</span><br><span class="line">10 libsystem_pthread.dylib 0x1dc014e10 _pthread_wqthread + 284</span><br><span class="line">11 libsystem_pthread.dylib 0x1dc01493c start_wqthread + 8</span><br><span class="line"></span><br><span class="line">Thread 81 name: Dispatch queue: com.bilibili.live.session.render</span><br><span class="line">Thread 81 Crashed:</span><br><span class="line">0 libsystem_kernel.dylib 0x1bb5b1bbc __pthread_kill + 8</span><br><span class="line">1 libsystem_pthread.dylib 0x1dc020854 pthread_kill + 208</span><br><span class="line">2 libsystem_c.dylib 0x18b4496ac abort + 124</span><br><span class="line">3 libc++abi.dylib 0x198677dd8 abort_message + 128</span><br><span class="line">4 libc++abi.dylib 0x19866855c demangling_terminate_handler() + 300</span><br><span class="line">5 libobjc.A.dylib 0x1985858f8 _objc_terminate() + 124</span><br><span class="line">6 ??? 0x106033cd8 BLYCPPExceptionTerminate() + 2044</span><br><span class="line">7 libc++abi.dylib 0x198677274 std::__terminate(void (*)()) + 16</span><br><span class="line">8 libc++abi.dylib 0x19867721c std::terminate() + 60</span><br><span class="line">9 libdispatch.dylib 0x180a200a8 _dispatch_client_callout + 36</span><br><span class="line">10 libdispatch.dylib 0x1809f7ab8 _dispatch_continuation_pop<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 432</span><br><span class="line">11 libdispatch.dylib 0x180a0916c _dispatch_source_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 1560</span><br><span class="line">12 libdispatch.dylib 0x1809fb380 _dispatch_lane_serial_drain<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 308</span><br><span class="line">13 libdispatch.dylib 0x1809fbf44 _dispatch_lane_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 388</span><br><span class="line">14 libdispatch.dylib 0x180a058e0 _dispatch_workloop_worker_thread + 608</span><br><span class="line">15 libsystem_pthread.dylib 0x1dc014e10 _pthread_wqthread + 284</span><br><span class="line">16 libsystem_pthread.dylib 0x1dc01493c start_wqthread + 8</span><br><span class="line"></span><br><span class="line">Thread 82 name: AURemoteIO::IOThread</span><br><span class="line">Thread 82:</span><br><span class="line">0 ae_tob_channelstrip 0x10d25c338 mammon::algorithm::RNNoise48k::ComputeGRULayer(mammon::GRULayer const*, <span class="built_in">float</span>*, <span class="built_in">float</span>*) + 1400</span><br><span class="line">1 ae_tob_channelstrip 0x10d25b85c mammon::algorithm::RNNoise48k::computeRNN(<span class="built_in">float</span>*) + 620</span><br><span class="line">2 ae_tob_channelstrip 0x10d25b85c mammon::algorithm::RNNoise48k::computeRNN(<span class="built_in">float</span>*) + 620</span><br><span class="line">3 ae_tob_channelstrip 0x10d25b534 mammon::algorithm::RNNoise48k::compute(<span class="built_in">float</span>*, <span class="built_in">float</span>*, <span class="built_in">float</span>) + 188</span><br><span class="line">4 ae_tob_channelstrip 0x10d2571ac mammon::RNNoise48k::Impl::blockProcess(std::__1::vector<mammon::Bus, std::__1::allocator<mammon::Bus> >&) + 444</span><br><span class="line">5 ae_tob_channelstrip 0x10d25564c mammon::RingBufferWrapper<mammon::RNNoise48k::Impl>::processWithRingbuffer(std::__1::vector<mammon::Bus, std::__1::allocator<mammon::Bus> >&) + 856</span><br><span class="line">6 ae_tob_channelstrip 0x10d13a0ac sami::bl::EffectProcessorModel::process(sami::ProcessData&) + 88</span><br><span class="line">7 ae_tob_channelstrip 0x10d134ebc sami::bl::AudioChannelStripProcessorImpl::process(sami::ProcessData&) + 752</span><br><span class="line">8 ??? 0x1077957ac -[BBLiveBCIAudioChannelStrip processStereoAudioBuffer:dataInL:dataInR:samples:bufferLength:] + 764</span><br><span class="line">9 ??? 0x107795448 -[BBLiveBCIAudioChannelStrip processInterleavedAudioBuffer:channels:samples:bufferLength:] + 312</span><br><span class="line">10 ??? 0x107794318 -[BBLiveBCChannelStripAdapter process:numSamples:] + 68</span><br><span class="line">11 ??? 0x107439d80 -[BBLiveBCCommonStreamBiz streamContainer:audioDataInNumberFrames:intIOData:] + 280</span><br><span class="line">12 ??? 0x1077761fc -[BBLiveBCBasePushStreamContainer audioCapture:didOutputIntBuffer:numberOfFrames:timeStamp:] + 184</span><br><span class="line">13 xxSDK 0x10c7d6450 0x10c730000 + 681040</span><br><span class="line">14 xxSDK 0x10c7d7efc 0x10c730000 + 687868</span><br><span class="line">15 libEmbeddedSystemAUs.dylib 0x1bfc041ec AURemoteIO::PerformIO(unsigned int, unsigned int, unsigned int, AudioTimeStamp const&, AudioTimeStamp const&, AudioBufferList const*, AudioBufferList*, int&) + 1100</span><br><span class="line">16 libEmbeddedSystemAUs.dylib 0x1bfc0c6c4 _XPerformIO + 336</span><br><span class="line">17 libAudioToolboxUtility.dylib 0x198ea36f0 mshMIGPerform + 260</span><br><span class="line">18 libAudioToolboxUtility.dylib 0x198ea2e44 MSHMIGDispatchMessage + 36</span><br><span class="line">19 libEmbeddedSystemAUs.dylib 0x1bfc03bb0 void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, AURemoteIO::IOThread::IOThread(AURemoteIO&, caulk::thread::attributes const&, caulk::mach::os_workgroup const&)::<span class="string">'lambda'</span>(), std::__1::tuple<> > >(void*) + 556</span><br><span class="line">20 libsystem_pthread.dylib 0x1dc016348 _pthread_start + 116</span><br><span class="line">21 libsystem_pthread.dylib 0x1dc014948 thread_start + 8</span><br></pre></td></tr></table></figure>
<p>解析后的崩溃日志(有删减):</p>
<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br><span class="line">284</span><br><span class="line">285</span><br><span class="line">286</span><br><span class="line">287</span><br><span class="line">288</span><br><span class="line">289</span><br><span class="line">290</span><br><span class="line">291</span><br><span class="line">292</span><br><span class="line">293</span><br><span class="line">294</span><br><span class="line">295</span><br><span class="line">296</span><br><span class="line">297</span><br><span class="line">298</span><br><span class="line">299</span><br><span class="line">300</span><br><span class="line">301</span><br><span class="line">302</span><br><span class="line">303</span><br><span class="line">304</span><br><span class="line">305</span><br><span class="line">306</span><br><span class="line">307</span><br><span class="line">308</span><br><span class="line">309</span><br><span class="line">310</span><br><span class="line">311</span><br><span class="line">312</span><br><span class="line">313</span><br><span class="line">314</span><br><span class="line">315</span><br><span class="line">316</span><br><span class="line">317</span><br><span class="line">318</span><br><span class="line">319</span><br><span class="line">320</span><br><span class="line">321</span><br><span class="line">322</span><br><span class="line">323</span><br><span class="line">324</span><br><span class="line">325</span><br><span class="line">326</span><br><span class="line">327</span><br><span class="line">328</span><br><span class="line">329</span><br><span class="line">330</span><br><span class="line">331</span><br><span class="line">332</span><br><span class="line">333</span><br><span class="line">334</span><br><span class="line">335</span><br><span class="line">336</span><br><span class="line">337</span><br><span class="line">338</span><br><span class="line">339</span><br><span class="line">340</span><br><span class="line">341</span><br><span class="line">342</span><br><span class="line">343</span><br><span class="line">344</span><br><span class="line">345</span><br><span class="line">346</span><br><span class="line">347</span><br><span class="line">348</span><br><span class="line">349</span><br><span class="line">350</span><br><span class="line">351</span><br><span class="line">352</span><br><span class="line">353</span><br><span class="line">354</span><br><span class="line">355</span><br><span class="line">356</span><br><span class="line">357</span><br><span class="line">358</span><br><span class="line">359</span><br><span class="line">360</span><br><span class="line">361</span><br><span class="line">362</span><br><span class="line">363</span><br><span class="line">364</span><br><span class="line">365</span><br><span class="line">366</span><br><span class="line">367</span><br><span class="line">368</span><br><span class="line">369</span><br><span class="line">370</span><br><span class="line">371</span><br><span class="line">372</span><br><span class="line">373</span><br><span class="line">374</span><br><span class="line">375</span><br><span class="line">376</span><br><span class="line">377</span><br><span class="line">378</span><br><span class="line">379</span><br><span class="line">380</span><br><span class="line">381</span><br><span class="line">382</span><br><span class="line">383</span><br><span class="line">384</span><br><span class="line">385</span><br><span class="line">386</span><br><span class="line">387</span><br><span class="line">388</span><br><span class="line">389</span><br><span class="line">390</span><br><span class="line">391</span><br><span class="line">392</span><br><span class="line">393</span><br><span class="line">394</span><br><span class="line">395</span><br><span class="line">396</span><br><span class="line">397</span><br><span class="line">398</span><br><span class="line">399</span><br><span class="line">400</span><br><span class="line">401</span><br><span class="line">402</span><br><span class="line">403</span><br><span class="line">404</span><br><span class="line">405</span><br><span class="line">406</span><br><span class="line">407</span><br><span class="line">408</span><br><span class="line">409</span><br><span class="line">410</span><br><span class="line">411</span><br><span class="line">412</span><br><span class="line">413</span><br><span class="line">414</span><br><span class="line">415</span><br><span class="line">416</span><br><span class="line">417</span><br><span class="line">418</span><br><span class="line">419</span><br><span class="line">420</span><br><span class="line">421</span><br><span class="line">422</span><br><span class="line">423</span><br><span class="line">424</span><br><span class="line">425</span><br><span class="line">426</span><br><span class="line">427</span><br><span class="line">428</span><br><span class="line">429</span><br><span class="line">430</span><br><span class="line">431</span><br><span class="line">432</span><br><span class="line">433</span><br><span class="line">434</span><br><span class="line">435</span><br><span class="line">436</span><br><span class="line">437</span><br><span class="line">438</span><br><span class="line">439</span><br><span class="line">440</span><br><span class="line">441</span><br><span class="line">442</span><br><span class="line">443</span><br><span class="line">444</span><br><span class="line">445</span><br><span class="line">446</span><br><span class="line">447</span><br><span class="line">448</span><br><span class="line">449</span><br><span class="line">450</span><br><span class="line">451</span><br><span class="line">452</span><br><span class="line">453</span><br><span class="line">454</span><br><span class="line">455</span><br><span class="line">456</span><br><span class="line">457</span><br><span class="line">458</span><br><span class="line">459</span><br><span class="line">460</span><br><span class="line">461</span><br><span class="line">462</span><br><span class="line">463</span><br><span class="line">464</span><br><span class="line">465</span><br><span class="line">466</span><br><span class="line">467</span><br><span class="line">468</span><br><span class="line">469</span><br><span class="line">470</span><br><span class="line">471</span><br><span class="line">472</span><br><span class="line">473</span><br><span class="line">474</span><br><span class="line">475</span><br><span class="line">476</span><br><span class="line">477</span><br><span class="line">478</span><br><span class="line">479</span><br><span class="line">480</span><br><span class="line">481</span><br><span class="line">482</span><br><span class="line">483</span><br><span class="line">484</span><br><span class="line">485</span><br><span class="line">486</span><br><span class="line">487</span><br><span class="line">488</span><br><span class="line">489</span><br><span class="line">490</span><br><span class="line">491</span><br><span class="line">492</span><br><span class="line">493</span><br><span class="line">494</span><br><span class="line">495</span><br><span class="line">496</span><br><span class="line">497</span><br><span class="line">498</span><br><span class="line">499</span><br><span class="line">500</span><br><span class="line">501</span><br><span class="line">502</span><br><span class="line">503</span><br><span class="line">504</span><br><span class="line">505</span><br><span class="line">506</span><br><span class="line">507</span><br><span class="line">508</span><br><span class="line">509</span><br><span class="line">510</span><br><span class="line">511</span><br><span class="line">512</span><br><span class="line">513</span><br><span class="line">514</span><br><span class="line">515</span><br><span class="line">516</span><br><span class="line">517</span><br><span class="line">518</span><br><span class="line">519</span><br><span class="line">520</span><br><span class="line">521</span><br><span class="line">522</span><br><span class="line">523</span><br><span class="line">524</span><br><span class="line">525</span><br><span class="line">526</span><br><span class="line">527</span><br><span class="line">528</span><br><span class="line">529</span><br><span class="line">530</span><br><span class="line">531</span><br><span class="line">532</span><br><span class="line">533</span><br><span class="line">534</span><br><span class="line">535</span><br><span class="line">536</span><br><span class="line">537</span><br><span class="line">538</span><br><span class="line">539</span><br><span class="line">540</span><br><span class="line">541</span><br><span class="line">542</span><br><span class="line">543</span><br><span class="line">544</span><br><span class="line">545</span><br><span class="line">546</span><br><span class="line">547</span><br><span class="line">548</span><br><span class="line">549</span><br><span class="line">550</span><br><span class="line">551</span><br><span class="line">552</span><br><span class="line">553</span><br><span class="line">554</span><br><span class="line">555</span><br><span class="line">556</span><br><span class="line">557</span><br><span class="line">558</span><br><span class="line">559</span><br><span class="line">560</span><br><span class="line">561</span><br><span class="line">562</span><br><span class="line">563</span><br><span class="line">564</span><br><span class="line">565</span><br><span class="line">566</span><br><span class="line">567</span><br><span class="line">568</span><br><span class="line">569</span><br><span class="line">570</span><br><span class="line">571</span><br><span class="line">572</span><br><span class="line">573</span><br><span class="line">574</span><br><span class="line">575</span><br><span class="line">576</span><br><span class="line">577</span><br><span class="line">578</span><br><span class="line">579</span><br><span class="line">580</span><br><span class="line">581</span><br><span class="line">582</span><br><span class="line">583</span><br><span class="line">584</span><br><span class="line">585</span><br><span class="line">586</span><br><span class="line">587</span><br><span class="line">588</span><br><span class="line">589</span><br><span class="line">590</span><br><span class="line">591</span><br><span class="line">592</span><br><span class="line">593</span><br><span class="line">594</span><br><span class="line">595</span><br><span class="line">596</span><br><span class="line">597</span><br><span class="line">598</span><br><span class="line">599</span><br><span class="line">600</span><br><span class="line">601</span><br><span class="line">602</span><br><span class="line">603</span><br><span class="line">604</span><br><span class="line">605</span><br><span class="line">606</span><br><span class="line">607</span><br><span class="line">608</span><br><span class="line">609</span><br><span class="line">610</span><br><span class="line">611</span><br><span class="line">612</span><br><span class="line">613</span><br><span class="line">614</span><br><span class="line">615</span><br><span class="line">616</span><br><span class="line">617</span><br><span class="line">618</span><br><span class="line">619</span><br><span class="line">620</span><br><span class="line">621</span><br><span class="line">622</span><br><span class="line">623</span><br><span class="line">624</span><br><span class="line">625</span><br><span class="line">626</span><br><span class="line">627</span><br><span class="line">628</span><br><span class="line">629</span><br><span class="line">630</span><br><span class="line">631</span><br><span class="line">632</span><br><span class="line">633</span><br><span class="line">634</span><br><span class="line">635</span><br><span class="line">636</span><br><span class="line">637</span><br><span class="line">638</span><br><span class="line">639</span><br><span class="line">640</span><br><span class="line">641</span><br><span class="line">642</span><br><span class="line">643</span><br><span class="line">644</span><br><span class="line">645</span><br><span class="line">646</span><br><span class="line">647</span><br><span class="line">648</span><br><span class="line">649</span><br><span class="line">650</span><br><span class="line">651</span><br><span class="line">652</span><br><span class="line">653</span><br><span class="line">654</span><br><span class="line">655</span><br><span class="line">656</span><br><span class="line">657</span><br><span class="line">658</span><br><span class="line">659</span><br><span class="line">660</span><br><span class="line">661</span><br><span class="line">662</span><br><span class="line">663</span><br><span class="line">664</span><br><span class="line">665</span><br><span class="line">666</span><br><span class="line">667</span><br><span class="line">668</span><br><span class="line">669</span><br><span class="line">670</span><br><span class="line">671</span><br><span class="line">672</span><br><span class="line">673</span><br><span class="line">674</span><br><span class="line">675</span><br><span class="line">676</span><br><span class="line">677</span><br><span class="line">678</span><br><span class="line">679</span><br><span class="line">680</span><br><span class="line">681</span><br><span class="line">682</span><br><span class="line">683</span><br><span class="line">684</span><br><span class="line">685</span><br><span class="line">686</span><br><span class="line">687</span><br><span class="line">688</span><br><span class="line">689</span><br><span class="line">690</span><br><span class="line">691</span><br><span class="line">692</span><br><span class="line">693</span><br><span class="line">694</span><br><span class="line">695</span><br><span class="line">696</span><br><span class="line">697</span><br><span class="line">698</span><br><span class="line">699</span><br><span class="line">700</span><br><span class="line">701</span><br><span class="line">702</span><br><span class="line">703</span><br><span class="line">704</span><br><span class="line">705</span><br><span class="line">706</span><br><span class="line">707</span><br><span class="line">708</span><br><span class="line">709</span><br><span class="line">710</span><br><span class="line">711</span><br><span class="line">712</span><br><span class="line">713</span><br><span class="line">714</span><br><span class="line">715</span><br><span class="line">716</span><br><span class="line">717</span><br><span class="line">718</span><br><span class="line">719</span><br><span class="line">720</span><br><span class="line">721</span><br><span class="line">722</span><br><span class="line">723</span><br><span class="line">724</span><br><span class="line">725</span><br><span class="line">726</span><br><span class="line">727</span><br><span class="line">728</span><br><span class="line">729</span><br><span class="line">730</span><br><span class="line">731</span><br><span class="line">732</span><br><span class="line">733</span><br><span class="line">734</span><br><span class="line">735</span><br><span class="line">736</span><br><span class="line">737</span><br><span class="line">738</span><br><span class="line">739</span><br><span class="line">740</span><br><span class="line">741</span><br><span class="line">742</span><br><span class="line">743</span><br><span class="line">744</span><br><span class="line">745</span><br><span class="line">746</span><br><span class="line">747</span><br><span class="line">748</span><br><span class="line">749</span><br><span class="line">750</span><br><span class="line">751</span><br><span class="line">752</span><br><span class="line">753</span><br><span class="line">754</span><br><span class="line">755</span><br><span class="line">756</span><br><span class="line">757</span><br><span class="line">758</span><br><span class="line">759</span><br><span class="line">760</span><br><span class="line">761</span><br><span class="line">762</span><br><span class="line">763</span><br><span class="line">764</span><br><span class="line">765</span><br><span class="line">766</span><br><span class="line">767</span><br><span class="line">768</span><br><span class="line">769</span><br><span class="line">770</span><br><span class="line">771</span><br><span class="line">772</span><br><span class="line">773</span><br><span class="line">774</span><br><span class="line">775</span><br><span class="line">776</span><br></pre></td><td class="code"><pre><span class="line">{<span class="string">"app_name"</span>:<span class="string">"bililive"</span>,<span class="string">"timestamp"</span>:<span class="string">"2022-09-23 14:58:14.00 +0800"</span>,<span class="string">"app_version"</span>:<span class="string">"5.53.0"</span>,<span class="string">"slice_uuid"</span>:<span class="string">"8ca14ef0-07db-338e-aa61-5b1ee6987aff"</span>,<span class="string">"build_version"</span>:<span class="string">"5520010"</span>,<span class="string">"platform"</span>:<span class="string">"2"</span>,<span class="string">"bundleID"</span>:<span class="string">"com.bilibili.live.broadcast"</span>,<span class="string">"share_with_app_devs"</span>:<span class="string">"0"</span>,<span class="string">"is_first_party"</span>:<span class="string">"0"</span>,<span class="string">"bug_type"</span>:<span class="string">"309"</span>,<span class="string">"os_version"</span>:<span class="string">"iPhone OS 15.6 (19G71)"</span>,<span class="string">"incident_id"</span>:<span class="string">"8ECE464B-8E3E-422E-AFD4-B1B8B2E431B6"</span>,<span class="string">"name"</span>:<span class="string">"bililive"</span>}</span><br><span class="line">{</span><br><span class="line"> <span class="string">"uptime"</span>: <span class="number">87000</span>,</span><br><span class="line"> <span class="string">"procLaunch"</span>: <span class="string">"2022-09-23 14:43:37.3104 +0800"</span>,</span><br><span class="line"> <span class="string">"procRole"</span>: <span class="string">"Foreground"</span>,</span><br><span class="line"> <span class="string">"version"</span>: <span class="number">2</span>,</span><br><span class="line"> <span class="string">"userID"</span>: <span class="number">501</span>,</span><br><span class="line"> <span class="string">"deployVersion"</span>: <span class="number">210</span>,</span><br><span class="line"> <span class="string">"modelCode"</span>: <span class="string">"iPhone10,3"</span>,</span><br><span class="line"> <span class="string">"procStartAbsTime"</span>: <span class="number">2076968516925</span>,</span><br><span class="line"> <span class="string">"coalitionID"</span>: <span class="number">493</span>,</span><br><span class="line"> <span class="string">"osVersion"</span>: {</span><br><span class="line"> <span class="string">"isEmbedded"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="string">"train"</span>: <span class="string">"iPhone OS 15.6"</span>,</span><br><span class="line"> <span class="string">"releaseType"</span>: <span class="string">"User"</span>,</span><br><span class="line"> <span class="string">"build"</span>: <span class="string">"19G71"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"captureTime"</span>: <span class="string">"2022-09-23 14:58:08.5849 +0800"</span>,</span><br><span class="line"> <span class="string">"incident"</span>: <span class="string">"8ECE464B-8E3E-422E-AFD4-B1B8B2E431B6"</span>,</span><br><span class="line"> <span class="string">"bug_type"</span>: <span class="string">"309"</span>,</span><br><span class="line"> <span class="string">"pid"</span>: <span class="number">12926</span>,</span><br><span class="line"> <span class="string">"procExitAbsTime"</span>: <span class="number">2097867677644</span>,</span><br><span class="line"> <span class="string">"cpuType"</span>: <span class="string">"ARM-64"</span>,</span><br><span class="line"> <span class="string">"procName"</span>: <span class="string">"bililive"</span>,</span><br><span class="line"> <span class="string">"procPath"</span>: <span class="string">"/private/var/containers/Bundle/Application/6E82AD84-A575-4423-822E-176FB3BBFEF6/bililive.app/bililive"</span>,</span><br><span class="line"> <span class="string">"bundleInfo"</span>: {</span><br><span class="line"> <span class="string">"CFBundleShortVersionString"</span>: <span class="string">"5.53.0"</span>,</span><br><span class="line"> <span class="string">"CFBundleVersion"</span>: <span class="string">"5520010"</span>,</span><br><span class="line"> <span class="string">"CFBundleIdentifier"</span>: <span class="string">"com.bilibili.live.broadcast"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"storeInfo"</span>: {</span><br><span class="line"> <span class="string">"deviceIdentifierForVendor"</span>: <span class="string">"0A423654-7A61-4479-B9EE-4C98F01B7F4D"</span>,</span><br><span class="line"> <span class="string">"thirdParty"</span>: <span class="literal">true</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"parentProc"</span>: <span class="string">"launchd"</span>,</span><br><span class="line"> <span class="string">"parentPid"</span>: <span class="number">1</span>,</span><br><span class="line"> <span class="string">"coalitionName"</span>: <span class="string">"com.bilibili.live.broadcast"</span>,</span><br><span class="line"> <span class="string">"crashReporterKey"</span>: <span class="string">"eff5650d2e2bf936e1812e4b2d38a5ed26bda190"</span>,</span><br><span class="line"> <span class="string">"basebandVersion"</span>: <span class="string">"7.61.00"</span>,</span><br><span class="line"> <span class="string">"isCorpse"</span>: <span class="number">1</span>,</span><br><span class="line"> <span class="string">"exception"</span>: {</span><br><span class="line"> <span class="string">"codes"</span>: <span class="string">"0x0000000000000000, 0x0000000000000000"</span>,</span><br><span class="line"> <span class="string">"rawCodes"</span>: [</span><br><span class="line"> <span class="number">0</span>,</span><br><span class="line"> <span class="number">0</span></span><br><span class="line"> ],</span><br><span class="line"> <span class="string">"type"</span>: <span class="string">"EXC_CRASH"</span>,</span><br><span class="line"> <span class="string">"signal"</span>: <span class="string">"SIGABRT"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"asi"</span>: {</span><br><span class="line"> <span class="string">"libsystem_c.dylib"</span>: [</span><br><span class="line"> <span class="string">"abort() called"</span></span><br><span class="line"> ]</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"lastExceptionBacktrace"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">601372</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__exceptionPreprocess"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">216</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">1</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">85732</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"objc_exception_throw"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">56</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">22</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">502716</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"NSAllocateMemoryPages"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">196</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">8</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">166436</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[_NSPlaceholderData initWithBytes:length:copy:deallocator:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">148</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">8</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">3258168</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_UIImageRefFromData"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">232</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">3</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">3261560</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[UIImage _initWithData:preserveScale:cache:scale:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">64</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">3</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">3749800</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"+[UIImage imageWithData:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">56</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">3</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">784672</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKEAGLRenderProvider textureWithCGImage:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">95</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">738536</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKImageLayer draw]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">187</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">815960</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKLayer __visitAtMilliseconds:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">463</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">815888</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKLayer __visitAtMilliseconds:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">391</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">791736</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKEAGLRenderer(Context) __drawInRect:necessary:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">163</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">821220</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKSceneRenderer __drawInRect:necessary:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">107</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">772276</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKEAGLCanvas(Context) _drawInRect:necessary:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">203</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">770540</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKEAGLCanvas(Context) _drawIfNecessary:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">135</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">768348</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__34-[xxSDKEAGLCanvas(Lifecycle) _start]_block_invoke"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">35</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">409748</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_client_callout"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">16</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">244408</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_continuation_pop$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">432</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">315756</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_source_invoke$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">1560</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">258944</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_lane_serial_drain$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">308</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">261956</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_lane_invoke$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">388</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">301280</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_workloop_worker_thread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">608</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">7696</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_pthread_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">284</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">6460</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"start_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">8</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> <span class="string">"faultingThread"</span>: <span class="number">81</span>,</span><br><span class="line"> <span class="string">"threads"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"id"</span>: <span class="number">862161</span>,</span><br><span class="line"> <span class="string">"queue"</span>: <span class="string">"com.apple.main-thread"</span>,</span><br><span class="line"> <span class="string">"frames"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">2732</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mach_msg_trap"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">8</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4220</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mach_msg"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">72</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">28040</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__CFRunLoopServiceMachPort"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">368</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">1</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">45200</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__CFRunLoopRun"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">1160</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">1</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">123472</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"CFRunLoopRunSpecific"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">572</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">1</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">6536</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"GSEventRunModal"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">160</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">2</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">5134996</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[UIApplication _run]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">1080</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">3</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">2617300</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"UIApplicationMain"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">336</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">3</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4414977496</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"main"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">180</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">99536</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"start"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">444</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">5</span></span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"id"</span>: <span class="number">862169</span>,</span><br><span class="line"> <span class="string">"queue"</span>: <span class="string">"com.apple.root.default-qos"</span>,</span><br><span class="line"> <span class="string">"frames"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">15920</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"poll"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">8</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4429796672</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"pollset_work(grpc_pollset*, grpc_pollset_worker**, long long)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">1016</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4429992564</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"cq_next(grpc_completion_queue*, gpr_timespec, void*)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">476</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4429079348</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__27-[GRPCCompletionQueue init]_block_invoke_2"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">104</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">405652</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_call_block_and_release"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">24</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">409748</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_client_callout"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">16</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">296780</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_root_queue_drain"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">612</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">298476</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_worker_thread2"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">160</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">7636</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_pthread_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">224</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">6460</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"start_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">8</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"id"</span>: <span class="number">867013</span>,</span><br><span class="line"> <span class="string">"queue"</span>: <span class="string">"com.bilibili.live.imageQueue.ai.2d"</span>,</span><br><span class="line"> <span class="string">"frames"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">6276</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_platform_memmove"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">100</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">15</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4412408424</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"MNN::_blit(MNN::Tensor::InsideDescribe::Region const&, int, unsigned char const*, unsigned char*, void (*)(unsigned char*, unsigned char const*, int, int, int))"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">700</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4420503436</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[BBLiveBCVirtualCvAnimate detect:pose:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">100</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4420523736</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[BBLiveBCVirtualLiveAIManager imageDataWithFaceAnchor:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">5456</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4420518096</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__46-[BBLiveBCVirtualLiveAIManager _readARSession]_block_invoke"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">44</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">405652</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_call_block_and_release"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">24</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">409748</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_client_callout"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">16</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">259236</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_lane_serial_drain$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">600</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">261956</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_lane_invoke$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">388</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">301280</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_workloop_worker_thread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">608</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">7696</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_pthread_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">284</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">6460</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"start_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">8</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"triggered"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="string">"id"</span>: <span class="number">867020</span>,</span><br><span class="line"> <span class="string">"threadState"</span>: {</span><br><span class="line"> <span class="string">"x"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">6851899041</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">11349401200</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">110</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">11349405696</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">2127063980205108692</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">512</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">11</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">1761605632</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">16</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">328</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">2</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">96699</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">11349405920</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">5254550832</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">272</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">11349405920</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">65544</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">10789536384</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">8426050240</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">0</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_mgr_q"</span></span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> <span class="string">"flavor"</span>: <span class="string">"ARM_THREAD_STATE64"</span>,</span><br><span class="line"> <span class="string">"lr"</span>: {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">7986088020</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"cpsr"</span>: {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">1073741824</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"fp"</span>: {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">11349401056</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"sp"</span>: {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">11349401024</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"esr"</span>: {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">1442840704</span>,</span><br><span class="line"> <span class="string">"description"</span>: <span class="string">" Address size fault"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"pc"</span>: {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">7438277564</span>,</span><br><span class="line"> <span class="string">"matchesCrashFrame"</span>: <span class="number">1</span></span><br><span class="line"> },</span><br><span class="line"> <span class="string">"far"</span>: {</span><br><span class="line"> <span class="string">"value"</span>: <span class="number">18446743979222697204</span></span><br><span class="line"> }</span><br><span class="line"> },</span><br><span class="line"> <span class="string">"queue"</span>: <span class="string">"com.bilibili.live.session.render"</span>,</span><br><span class="line"> <span class="string">"frames"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">27580</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__pthread_kill"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">8</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">0</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">55380</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"pthread_kill"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">208</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">128684</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"abort"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">124</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">20</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">69080</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"abort_message"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">128</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">21</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">5468</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"demangling_terminate_handler()"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">300</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">21</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">108792</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_objc_terminate()"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">124</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">22</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4395842776</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"BLYCPPExceptionTerminate()"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">2044</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">66164</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"std::__terminate(void (*)())"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">16</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">21</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">66076</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"std::terminate()"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">60</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">21</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">409768</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_client_callout"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">36</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">244408</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_continuation_pop$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">432</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">315756</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_source_invoke$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">1560</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">258944</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_lane_serial_drain$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">308</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">261956</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_lane_invoke$VARIANT$armv81"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">388</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">301280</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_workloop_worker_thread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">608</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">6</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">7696</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_pthread_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">284</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">6460</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"start_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">8</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"id"</span>: <span class="number">867068</span>,</span><br><span class="line"> <span class="string">"name"</span>: <span class="string">"AURemoteIO::IOThread"</span>,</span><br><span class="line"> <span class="string">"frames"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">1246008</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mammon::algorithm::RNNoise48k::ComputeGRULayer(mammon::GRULayer const*, float*, float*)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">1400</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">19</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">1243228</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mammon::algorithm::RNNoise48k::computeRNN(float*)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">620</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">19</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">1243228</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mammon::algorithm::RNNoise48k::computeRNN(float*)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">620</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">19</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">1242420</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mammon::algorithm::RNNoise48k::compute(float*, float*, float)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">188</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">19</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">1225132</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mammon::RNNoise48k::Impl::blockProcess(std::__1::vector<mammon::Bus, std::__1::allocator<mammon::Bus> >&)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">444</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">19</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">1218124</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mammon::RingBufferWrapper<mammon::RNNoise48k::Impl>::processWithRingbuffer(std::__1::vector<mammon::Bus, std::__1::allocator<mammon::Bus> >&)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">856</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">19</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">57516</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"sami::bl::EffectProcessorModel::process(sami::ProcessData&)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">88</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">19</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">36540</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"sami::bl::AudioChannelStripProcessorImpl::process(sami::ProcessData&)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">752</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">19</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4420360108</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[BBLiveBCIAudioChannelStrip processStereoAudioBuffer:dataInL:dataInR:samples:bufferLength:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">764</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4420359240</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[BBLiveBCIAudioChannelStrip processInterleavedAudioBuffer:channels:samples:bufferLength:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">312</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4420354840</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[BBLiveBCChannelStripAdapter process:numSamples:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">68</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4416839040</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[BBLiveBCCommonStreamBiz streamContainer:audioDataInNumberFrames:intIOData:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">280</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">4420231676</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[BBLiveBCBasePushStreamContainer audioCapture:didOutputIntBuffer:numberOfFrames:timeStamp:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">184</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">4</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">681040</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKAudioCapture audioEngine:inNumberFrames:recordIntData:timeStamp:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">159</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">687868</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">17</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"captureCallback"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">295</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">12780</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"AURemoteIO::PerformIO(unsigned int, unsigned int, unsigned int, AudioTimeStamp const&, AudioTimeStamp const&, AudioBufferList const*, AudioBufferList*, int&)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">1100</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">23</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">46788</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_XPerformIO"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">336</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">23</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">9968</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"mshMIGPerform"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">260</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">24</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">7748</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"MSHMIGDispatchMessage"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">36</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">24</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">11184</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, AURemoteIO::IOThread::IOThread(AURemoteIO&, caulk::thread::attributes const&, caulk::mach::os_workgroup const&)::'lambda'(), std::__1::tuple<> > >(void*)"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">556</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">23</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">13128</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_pthread_start"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">116</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: <span class="number">6472</span>,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"thread_start"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: <span class="number">8</span>,</span><br><span class="line"> <span class="string">"imageIndex"</span>: <span class="number">7</span></span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line"> }</span><br></pre></td></tr></table></figure>
<h2 id="SIGABRT类型的Crash可以找Last-Exception-Backtrace定位崩溃"><a href="#SIGABRT类型的Crash可以找Last-Exception-Backtrace定位崩溃" class="headerlink" title="SIGABRT类型的Crash可以找Last Exception Backtrace定位崩溃"></a>SIGABRT类型的Crash可以找Last Exception Backtrace定位崩溃</h2><p>由于这个崩溃类型是SIGABRT类型的崩溃,可以直接查找崩溃日志中的<code>Last Exception Backtrace</code>堆栈,比如本次的原始堆栈就是这样的:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line">Last Exception Backtrace:</span><br><span class="line">0 CoreFoundation 0x180d5fd1c __exceptionPreprocess + 216</span><br><span class="line">1 libobjc.A.dylib 0x19857fee4 objc_exception_throw + 56</span><br><span class="line">2 Foundation 0x18245bbbc NSAllocateMemoryPages + 196</span><br><span class="line">3 Foundation 0x182409a24 -[_NSPlaceholderData initWithBytes:length:copy:deallocator:] + 148</span><br><span class="line">4 UIKitCore 0x183321738 _UIImageRefFromData + 232</span><br><span class="line">5 UIKitCore 0x183322478 -[UIImage _initWithData:preserveScale:cache:scale:] + 64</span><br><span class="line">6 UIKitCore 0x1833997a8 +[UIImage imageWithData:] + 56</span><br><span class="line">7 xxSDK 0x10c7ef920 0x10c730000 + 784672</span><br><span class="line">8 xxSDK 0x10c7e44e8 0x10c730000 + 738536</span><br><span class="line">9 xxSDK 0x10c7f7358 0x10c730000 + 815960</span><br><span class="line">10 xxSDK 0x10c7f7310 0x10c730000 + 815888</span><br><span class="line">11 xxSDK 0x10c7f14b8 0x10c730000 + 791736</span><br><span class="line">12 xxSDK 0x10c7f87e4 0x10c730000 + 821220</span><br><span class="line">13 xxSDK 0x10c7ec8b4 0x10c730000 + 772276</span><br><span class="line">14 xxSDK 0x10c7ec1ec 0x10c730000 + 770540</span><br><span class="line">15 xxSDK 0x10c7eb95c 0x10c730000 + 768348</span><br><span class="line">16 libdispatch.dylib 0x180a20094 _dispatch_client_callout + 16</span><br><span class="line">17 libdispatch.dylib 0x1809f7ab8 _dispatch_continuation_pop<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 432</span><br><span class="line">18 libdispatch.dylib 0x180a0916c _dispatch_source_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 1560</span><br><span class="line">19 libdispatch.dylib 0x1809fb380 _dispatch_lane_serial_drain<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 308</span><br><span class="line">20 libdispatch.dylib 0x1809fbf44 _dispatch_lane_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span> + 388</span><br><span class="line">21 libdispatch.dylib 0x180a058e0 _dispatch_workloop_worker_thread + 608</span><br><span class="line">22 libsystem_pthread.dylib 0x1dc014e10 _pthread_wqthread + 284</span><br><span class="line">23 libsystem_pthread.dylib 0x1dc01493c start_wqthread + 8</span><br></pre></td></tr></table></figure>
<p>解析后的Last Exception Backtrace堆栈:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">"lastExceptionBacktrace"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 601372,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__exceptionPreprocess"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 216,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 1</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 85732,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"objc_exception_throw"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 56,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 22</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 502716,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"NSAllocateMemoryPages"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 196,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 8</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 166436,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[_NSPlaceholderData initWithBytes:length:copy:deallocator:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 148,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 8</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 3258168,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_UIImageRefFromData"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 232,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 3</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 3261560,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[UIImage _initWithData:preserveScale:cache:scale:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 64,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 3</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 3749800,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"+[UIImage imageWithData:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 56,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 3</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 784672,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKEAGLRenderProvider textureWithCGImage:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 95</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 738536,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKImageLayer draw]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 187</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 815960,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKLayer __visitAtMilliseconds:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 463</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 815888,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKLayer __visitAtMilliseconds:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 391</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 791736,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKEAGLRenderer(Context) __drawInRect:necessary:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 163</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 821220,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKSceneRenderer __drawInRect:necessary:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 107</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 772276,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKEAGLCanvas(Context) _drawInRect:necessary:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 203</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 770540,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"-[xxSDKEAGLCanvas(Context) _drawIfNecessary:]"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 135</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 768348,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 17,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"__34-[xxSDKEAGLCanvas(Lifecycle) _start]_block_invoke"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 35</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 409748,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_client_callout"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 16,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 6</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 244408,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_continuation_pop<span class="variable">$VARIANT</span><span class="variable">$armv81</span>"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 432,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 6</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 315756,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_source_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span>"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 1560,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 6</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 258944,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_lane_serial_drain<span class="variable">$VARIANT</span><span class="variable">$armv81</span>"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 308,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 6</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 261956,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_lane_invoke<span class="variable">$VARIANT</span><span class="variable">$armv81</span>"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 388,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 6</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 301280,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_dispatch_workloop_worker_thread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 608,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 6</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 7696,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"_pthread_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 284,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 7</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"imageOffset"</span>: 6460,</span><br><span class="line"> <span class="string">"symbol"</span>: <span class="string">"start_wqthread"</span>,</span><br><span class="line"> <span class="string">"symbolLocation"</span>: 8,</span><br><span class="line"> <span class="string">"imageIndex"</span>: 7</span><br><span class="line"> }</span><br><span class="line"> ]</span><br></pre></td></tr></table></figure>
<h2 id="Bugly-dsym-文件命令行上传"><a href="#Bugly-dsym-文件命令行上传" class="headerlink" title="Bugly dsym 文件命令行上传"></a>Bugly dsym 文件命令行上传</h2><p>由于本次崩溃线程是<code>Thread 81</code>,查找<code>Thread 81</code>堆栈,发现最终的堆栈是指向了<code>BLYCPPExceptionTerminate()</code>,这个是Bugly里面的函数,可见这个崩溃被Bugly拦截到了。后续可以直接去Bugly网站上看崩溃的堆栈,本次崩溃的堆栈最终和我们解析过后的Last Exception Backtrace堆栈。</p>
<img src="/Blog/2022/09/23/iOS-15-Crash-Log%E8%A7%A3%E6%9E%90/1.png" class="" title="Bugly截图">
<p>这里附上Bugly上传dsym文件的命令:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">java -jar buglyqq-upload-symbol.jar -appid xxx -appkey xxx -bundleid <span class="string">"com.xxx.xxx.xxx"</span> -version 5520010 -platform IOS -inputSymbol /Users/tingyue/Downloads/buglyqq-upload-symbol-2/xxSDK.framework.dSYM</span><br></pre></td></tr></table></figure>
<h2 id="参考链接"><a href="#参考链接" class="headerlink" title="参考链接"></a>参考链接</h2><p><a target="_blank" rel="noopener" href="https://juejin.cn/post/7024400353172914190">iOS15之后苹果崩溃日志解析方法</a><br><a target="_blank" rel="noopener" href="https://developer.apple.com/documentation/xcode/understanding-the-exception-types-in-a-crash-report">EXC_CRASH (SIGABRT)</a><br><a target="_blank" rel="noopener" href="https://bugly.qq.com/v2/downloads">Bugly符号表工具下载</a></p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://github.com/DavidWanderer/Blog/2022/04/28/%E4%BD%BF%E7%94%A8Aria2%E4%B8%8B%E8%BD%BD%E5%A4%A7%E6%96%87%E4%BB%B6/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/Blog/images/avatar.gif">
<meta itemprop="name" content="听月">
<meta itemprop="description" content="Your dreams don't work unless you do.">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Stay hungry, Stay foolish.">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/Blog/2022/04/28/%E4%BD%BF%E7%94%A8Aria2%E4%B8%8B%E8%BD%BD%E5%A4%A7%E6%96%87%E4%BB%B6/" class="post-title-link" itemprop="url">使用Aria2下载大文件</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2022-04-28 13:07:59" itemprop="dateCreated datePublished" datetime="2022-04-28T13:07:59+08:00">2022-04-28</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/Blog/categories/MAC/" itemprop="url" rel="index"><span itemprop="name">MAC</span></a>
</span>
</span>
<br>
<span class="post-meta-item" title="本文字数">
<span class="post-meta-item-icon">
<i class="far fa-file-word"></i>
</span>
<span class="post-meta-item-text">本文字数:</span>
<span>931</span>
</span>
<span class="post-meta-item" title="阅读时长">
<span class="post-meta-item-icon">
<i class="far fa-clock"></i>
</span>
<span class="post-meta-item-text">阅读时长 ≈</span>
<span>1 分钟</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<img src="/Blog/2022/04/28/%E4%BD%BF%E7%94%A8Aria2%E4%B8%8B%E8%BD%BD%E5%A4%A7%E6%96%87%E4%BB%B6/theme.jpg" class="">
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>MAC电脑下载大文件,我一般用的是Aria2,以前用过迅雷,但是不好用。下面简单介绍一下Aria2如何使用。</p>
<h2 id="Aria2是什么?"><a href="#Aria2是什么?" class="headerlink" title="Aria2是什么?"></a>Aria2是什么?</h2><blockquote>
<p>Aria2是一个轻量级的多协议和多源命令行下载实用程序。它支持HTTP/HTTPS、FTP、SFTP、BitTorrent和Metalink。Aria2可以通过内置的JSON-RPC和XML-RPC接口进行操作。</p>
</blockquote>
<p>上面这段描述来自于Aria2<a target="_blank" rel="noopener" href="https://aria2.github.io/">官网</a>介绍的中文翻译。</p>
<h2 id="Aria2怎么下载?"><a href="#Aria2怎么下载?" class="headerlink" title="Aria2怎么下载?"></a>Aria2怎么下载?</h2><p>从官网可以直达<a href="https://github.com/aria2/aria2/releases/tag/release-1.36.0">github的下载地址</a>,github上提供Windows和Linux的安装包,Mac端需要下载源码自行编译。</p>
<p>源码下载完成之后,解压,依次执行以下命令,即可编译完成。</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$ <span class="built_in">cd</span> aria2-1.36.0</span><br><span class="line">$ ./configure</span><br><span class="line">$ make</span><br></pre></td></tr></table></figure>
<p>编译完成后,在src目录下会生成一个可执行文件<code>aria2c</code>,这个可执行文件就是我们所需的命令行工具。</p>
<h2 id="如何使用Aria2?"><a href="#如何使用Aria2?" class="headerlink" title="如何使用Aria2?"></a>如何使用Aria2?</h2><p>使用URL地址直接下载:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ aria2c http://example.org/mylinux.iso</span><br></pre></td></tr></table></figure>
<p>每个主机使用2个连接下载:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ aria2c -x2 http://a/f.iso</span><br></pre></td></tr></table></figure>
<p>BT种子下载:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ aria2c http://example.org/mylinux.torrent</span><br></pre></td></tr></table></figure>
<p>磁链下载:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ aria2c <span class="string">'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C'</span></span><br></pre></td></tr></table></figure>
<p>下载文本文件中的URI:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ aria2c -i uris.txt</span><br></pre></td></tr></table></figure>
<h2 id="高级用法"><a href="#高级用法" class="headerlink" title="高级用法"></a>高级用法</h2><h3 id="使用Aria2启用RPC后台监听"><a href="#使用Aria2启用RPC后台监听" class="headerlink" title="使用Aria2启用RPC后台监听"></a>使用Aria2启用RPC后台监听</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ aria2c --enable-rpc --rpc-listen-all</span><br></pre></td></tr></table></figure>
<h3 id="下载Web版的UI工具操作下载"><a href="#下载Web版的UI工具操作下载" class="headerlink" title="下载Web版的UI工具操作下载"></a>下载Web版的UI工具操作下载</h3><p>下载<a href="https://github.com/ziahamza/webui-aria2">webui-aria2</a>工具,执行以下命令:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$ git <span class="built_in">clone</span> https://github.com/ziahamza/webui-aria2.git</span><br><span class="line">$ <span class="built_in">cd</span> webui-aria2</span><br><span class="line">$ node node-server.js</span><br></pre></td></tr></table></figure>
<p><code>node</code>会在本地开启服务器,默认地址是:<code>http://localhost:8888</code>,下载文件截图如下:</p>
<img src="/Blog/2022/04/28/%E4%BD%BF%E7%94%A8Aria2%E4%B8%8B%E8%BD%BD%E5%A4%A7%E6%96%87%E4%BB%B6/downloading.jpeg" class="" title="下载文件截图">
<p>支持文件、种子等内容下载,支持中文,基本满足日常下载需求</p>
<img src="/Blog/2022/04/28/%E4%BD%BF%E7%94%A8Aria2%E4%B8%8B%E8%BD%BD%E5%A4%A7%E6%96%87%E4%BB%B6/download_add.jpeg" class="" title="支持下载文件截图">
<h2 id="参考链接"><a href="#参考链接" class="headerlink" title="参考链接"></a>参考链接</h2><p><a target="_blank" rel="noopener" href="https://aria2.github.io/">aria2官网</a><br><a href="https://github.com/aria2/aria2">aria2源码</a><br><a href="https://github.com/ziahamza/webui-aria2">webui-aria2</a></p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://github.com/DavidWanderer/Blog/2022/04/23/freenom%E5%85%8D%E8%B4%B9%E5%9F%9F%E5%90%8D%E8%B4%AD%E4%B9%B0%E5%A4%B1%E8%B4%A5/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/Blog/images/avatar.gif">
<meta itemprop="name" content="听月">
<meta itemprop="description" content="Your dreams don't work unless you do.">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Stay hungry, Stay foolish.">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/Blog/2022/04/23/freenom%E5%85%8D%E8%B4%B9%E5%9F%9F%E5%90%8D%E8%B4%AD%E4%B9%B0%E5%A4%B1%E8%B4%A5/" class="post-title-link" itemprop="url">freenom免费域名购买失败</a>
</h2>