遇到开发和测试阶段未能发现的bug和反馈。 本期《Under the Radar》由以下赞助: Things:现已更新至Apple的新操作系统。立即体验。
通过Relay FM会员支持《Under the Radar》</context> <raw_text>0 欢迎收听《Under the Radar》节目,一个关于独立iOS开发的播客。我是Mark Arment。
我是David Smith,我们今天聊聊《Under the Radar》。让我们开始吧。
这周大事不断。iOS 17发布了,我相信macOS Sonoma 3也发布了。我从不急于更新。
对,我也不会。
我不会碰它,但最近发生了很多事:watchOS 10发布了,新手机、新手表也发布了。自从我们上次录制以来,已经过去了两周,发生了很多事。这两周你过得怎么样?
我觉得压力山大。也许最诚实的开场白就是:这周很艰难。我想过去两三年里,秋季发布会和正式发布之间的那一周,我几乎都会感冒,这大概就是压力过大、身心俱疲的表现吧。所以这总是件让人开心的事。
但从这个角度来说,那周确实很艰难。这总是令人兴奋的,我感觉很矛盾,既兴奋又可怕,这两种感觉来回切换。没有什么比发布新功能,然后看到有人为此兴奋更令人开心了,这很棒。但没有什么比发布新功能,然后有人指出你盯着看了两个月的明显问题、缺陷或bug更令人沮丧了,你就是没看到这个问题或这个bug。
你做迁移了吗?
我没有,抱歉。
抱歉提起这个。我们做的那些……这只是个话题。
但我认为这很有启发性,因为它很难理解,在开发过程中如何保持广阔的视野非常困难。而且要理解,我们经历的每一个开发过程、每一个周期,都必须权衡各种限制,它们总是相互抵消。
我现在可以改进这个,但这会对其他事情产生负面影响。这适用于物理产品,也适用于我们制作的软件。这就是现实之一。我一直觉得这很令人沮丧。
但我认为这是交易的一部分。当有人提出一些建议,比如我知道我可以做得更好,或者他们为此感到沮丧,而我知道他们会为此感到沮丧,但我必须做出选择,将项目的范围限定在一个特定的方向上,或者不添加这个功能,即使我知道它会很受欢迎。但如果我……我看到添加该功能的所有其他负面影响以及由此造成的所有其他问题,所以是的,我会说这是一个复杂的时间,但肯定是一个激动人心的时间。
是的,我希望一切顺利。就那些案例而言,它们的发布并不顺利。嗯,值得庆幸的是,今年总的来说,我的情况还不错。嗯,有一些bug,有一些问题,有一些值得讨论的事情……随着它们出现。但总的来说,看起来一切都很顺利。嗯,在这个阶段,我认为很多事情都很有趣,因为我认为质量等等都是最近才变得重要的。
但我认为重要的是知道要测试什么,知道问题可能出现在哪里,并且已经解决了这个问题。我们在夏天讨论过这个问题,关于确保在旧设备上进行测试,确保在旧设备上安装旧版本,我认为我做过的最耗时的测试就是我故意将手机降级到旧版本,从App Store安装该版本,设置好,使用测试版程序安装iOS更新,然后安装新版本。我确实通过这个过程发现了很多bug和问题,这非常耗时,因为每次你想要循环执行这个过程都需要大约两个小时,是的,在你不需要看两个小时之后,你不能很快地迭代它。但因为我经历了这个过程,所以它没有变成我过去几年遇到的那些问题,或者如果我把所有时间都花在新版本上,你知道,我升级了自己的手机,我的测试手机都运行着……
在这种情况下,我使用的是iOS 17。我太习惯了,以至于忘记了它发生了什么变化。但至少对我来说,这就是我的做法,你呢?
实际上,情况相似,但时间尺度要短得多,不幸的是,风险也低得多。我生活中有很多事情要做。我要搬家,要卖房子,夏天有很多事情要做。
所以我几乎没有时间编写代码。今年秋天对我来说非常忙碌。我只是……我已经完成了大部分工作来让Overcast……
兼容iOS 17,这在一两周前就完成了,但我只是没有时间坐下来,在截止日期前完成它。我知道我的当前测试版在iOS 16上有一些bug。没错。
我必须谈谈。我知道不是迁移本身,而是我正在使用所有新的widget API。我在……
iOS 16上破坏了一些东西,我没有时间回去测试这么长时间。所以我实际上在Twitter或Matter上,或者更确切地说是在Twitter上,通知了我的客户……无论如何,我不知道我的推文是否……看起来像……总之,我不知道,我搞砸了,看起来像……听着,对不起,我会错过第一天。
我只是……当时我需要……我需要几周时间,结果是,前一天晚上,我开始处理这些事情,我有一些时间。在iOS 17发布的早晨,我实际上很快就解决了这些问题。我以为需要几周时间,结果只用了几个小时,你知道,在开发中,事情往往会朝另一个方向发展,很多时候,我认为某些事情很简单,结果却成了一个巨大的……
我认为这是相反的情况。你获得了一个不错的胜利。就像,“哦,等等,我刚刚不小心禁用了这个东西,或者这个注释破坏了对API的支持,我可以去修复它。”
你知道的。所以我比预期的要快。我提交到App Store,大约40分钟后就获得了批准,并在……之前就上线了。
基本上是在iOS 17发布前一两个小时。所以我确实做到了,但我为此付出了很多努力。你知道,我认为有很多话要说。
老实说,这也适用于苹果,其中一种方法是避免出现这样的意外:“嘿,我更新了,突然间就坏了”,或者“嘿,这个非常明显的事情你没想到……你为什么没想到这个?我不明白这个功能。你在这里的意图是什么?因为这没有意义。”
所有这些最初的直觉反应,当你身处其中时很难获得,因为如果你对它很熟悉,或者你使用的是最新版本,或者其他什么,大量的价值可以通过测试版测试获得。但测试版测试的问题在于,你必须不断地更换测试人员。我们过去讨论过这个问题,我发现自己至少对Overcast的新widget进行了彻底的测试。
但我没有得到所有我需要的反馈,因为我已经很久没有更换我的测试版小组了。当出现像数据衰减这样的过程时,你知道人们会慢慢停止关注那些每隔几天就会出现的测试版构建,你慢慢地停止接收反馈。你从某人那里得到的最有价值的反馈是他们第一次安装时的反馈,因为那是他们第一次看到我们正在努力的东西。
那时你会得到你作为开发者自己不一定能看到的最初的直觉反应。问题是,如果你不断地向同一组人发送相同的构建,他们可能会……关注第一个,他们不会像第一个那样关注持续的变化。
所以你真正需要做的是确保你不断地让新鲜的眼睛看到你正在做的工作。这需要不断扩大或更换测试版小组。我认为有时当苹果发布一些没有达到他们预期效果的东西时……
我认为,我认为很多时候是因为他们的反馈循环没有频繁地引入足够多新的和不同的观点。也许有时看起来像是评论员说他们误判了形势,我认为原因通常是……他们总是让同一组人在他们极度保密的文化中进行测试。这可能是……我敢肯定,这几乎完全是公司的员工。也许他们的直系亲属在周期结束时会参与,但在大多数情况下,我认为这种反馈循环没有足够多的新视角不断涌入,或者没有更广阔的视野。有时他们无法获得所需的反馈,我们也会陷入同样的陷阱。
你知道,对于我们来说,很容易只让同一组测试人员进行测试,如果我们有任何测试人员的话,就是同一组测试人员,我们的一些朋友,也许还有几个使用该应用程序的资深用户,但在你发布它之前,还有谁在看它?不可避免的是,无论你进行多少数据循环,不可避免的是,当你发布到App Store时,它会接触到更多具有更多不同背景和更多不同情况的人,而不是任何测试版测试小组所能拥有的,你总是会发现新的东西。但我认为,我认为你被惊喜的次数越少,在整个周期中进入测试版测试的新鲜眼睛就越多。
当然。我认为,从这个意义上说,你可以决定你想要如何收集反馈,以及它会是什么样子。我认为对我来说,我最近遇到的挑战是,我今年对任何更新的测试版测试都非常有限。
我认为这主要是一种……亲密朋友的方式。更像是他们进行测试版测试是为了寻找bug,而不是为了获得某人的想法或获得某种设计反馈,以及那些更高级的事情。但这在某种程度上是一个有意识的选择,因为管理一个良好的测试版流程非常有用,但非常耗时,你要求别人给你……给你他们的时间,他们可能非常愿意并且非常兴奋地这样做。但我希望能够……给你适当的关注,如果有人要坐下来使用我的应用程序并进行测试,并为此付出一些努力,而我只是回应“谢谢”,并没有真正……我把反馈放在一边,这并不是很好。
这对我和我的测试版测试人员的关系不好,总的来说,我实际上并没有进行非常广泛的测试版测试,而是我逐渐适应的做法是,主要更新的头三天……以一种奇怪的方式,几乎是我的测试版周期……所以,对于iOS 17的这些更新,我发布了一些非常快速的更新,这些更新修复了问题或澄清了令人困惑的地方……你知道,这对我来说是一件有趣的事情,但如果我觉得这几天既非常忙碌,又非常忙碌,这是一个孤立的时期,我会坐下来,我会收到来自反馈系统的电子邮件,我会阅读它,然后进行调查……或者我查看崩溃日志,或者我听取人们在媒体上所说的内容,或者我查看我们的事情,我只是试图收集所有我能收集的小片段,看看我多快能把它付诸实施,因为这些更新的现实情况是,如果你使用分阶段推出,尤其是在今年这样的年份,iOS 17的功能,最初的阶段只会触及一小部分用户。在某种程度上,这与你对测试版小组的预期相同。我认为iOS 17发布一周后,我的用户群大约是20%。
所以它仍然是我的用户群中相对较小的一部分。所以我有很多时间来收集反馈并做出回应,我认为这对我来说很重要。嗯,这是一种有用的方法,如果测试版流程……也就是说,这在收集受众方面或如果你有陈旧的测试版测试人员……在你的限制方面都很困难。
它非常有用,我发现花几天时间尝试擦除并利用这一事实非常成功,因为这永远不会被审查,显然已经大幅提升,高度参与,就像我可以坐下来更新的次数一样,你说用了四十分钟。我认为我甚至在二十分钟左右的一些主要时间里也遇到过这种情况,能够对它进行迭代非常有用。而且你不想,你不想在这方面漫不经心,很明显,你仍然在将它们推向生产环境。
任何时候你将代码推送到生产环境,都要非常小心,并且非常清楚你在做什么。我认为其中一个因素是培养一种直觉,了解哪些类型的更改是安全的、风险相对较低的,哪些类型的更改是困难的。例如,我做了一两次的事情,在这个更新中丰富了史密斯,我添加了应用程序内的附加帮助文本,或者更改了一些内容的流程。
例如,其中一个功能是一个新的音乐小部件,它具有交互性。你可以在你的Poe屏幕上浏览你最喜欢的专辑,添加歌曲、专辑和播放器的过程最初在我的结构中有点混乱。我从一些人在兴奋中说的话中得到了一些反馈,比如,我正在尝试这样做,我这样做对吗?他们试图让你感受到他们的反思,这就像我不想祝福你,你需要的是你最兴奋的东西。
让那些第一天不使用你的应用程序的人来使用你的应用程序,如果他们感到困惑,那就让他们感到困惑,如果他们关心的话,那些不太关心的人只会从这个功能中跳出来。所以这太糟糕了。所以这就像我添加了一堆文本,相对来说,这是一个非常安全的更改,添加到我们的一些东西中,我不会更改一些非常复杂的深层逻辑。并且取决于引擎的许多部分,或者类似的东西,这就像只添加一些文本标签和位置,使它更清晰一点,或者重组一些东西,或者使一些按钮更大一点,或者那些类型的更改,这些都是快速完成、迭代和收集反馈的好方法,无论是来自测试组还是来自你的早期用户,以便在你的应用程序真正扩展到更广泛的受众时,让你的应用程序真正闪耀。我们带来了。
猎豹剧集由Things赞助。屡获殊荣的任务应用程序Things刚刚针对Apple的所有新操作系统进行了更新。带来了一些很棒的改进,特别是对于小部件。
众所周知,你的小部件现在是交互式的,这意味着你不需要打开应用程序来完成诸如完成待办事项之类的操作。它们也出现在各种新地方。你的MacOS Ventura、你的iPhone待机模式和iOS 17、你的iPad锁屏和watchOS 10。
新的智能堆栈Things最近也更新了其最受请求的功能之一:可调整的文本大小,因此你现在可以根据自己的需要缩放Things的界面大小。无论你想缩小文本以适应小型iPhone,还是在38英寸显示屏上增大文本大小,Things都能让你掌控。当然,变化的不仅仅是文本大小。
Things现在对所有图标都使用矢量图形。我喜欢这一点,并且布局最终得到了调整,因此所有内容都可以完美地缩放。我自己也使用Things。
我仍然使用Things。它很棒。它是我最喜欢的待办事项应用程序。它非常好,他们真的知道它看起来不像只是停止组件。他们做了大量的自定义UI。
但与此同时,不知何故,它们让你感觉非常原生于所有平台,就像你没有在你的Mac上运行iPhone应用程序,反之亦然。所有平台上的所有应用程序都是一流的。他们获得了奖项。
它们拥有真正出色、真正出色的设计和功能。Things是一个令人惊叹的功能强大的应用程序。它被构建为原生运行。
所有这些设备都极其出色,制作精良。因此,如果你还没有尝试过Things,你真的应该试一试。只需访问网站thingsapp.com。
你可以了解所有行为、创建功能以及下载Mac的免费试用版。当然,你也可以在App Store中搜索Things找到它。无论你想要在生活中完成什么,Things都能帮助你实现。
今天就尝试Things,访问thingsapp.com。你不会后悔的。再次,thingsapp.com。很棒的应用程序。你必须试一试。感谢Things对本节目的支持。我还有一个……
一个小故事,我认为这是一个有用的东西,接下来要深入探讨一下关于发布的内容,我认为这是一个关于各种不同活动和事情的有益的胶囊,这些活动和事情通常会在发布前后出现,我希望以同样的方式,我希望没有人会遇到这些事情,但不可避免地你会遇到,因为这将讨论你所知道的,应用程序崩溃、错误、问题和兼容性问题,以及处理所有这些问题,所以上周五,所以新的iPhone 15发布的那一天,我正在浏览我的支持队列,就像我一直在说的那样,我浏览我的支持队列,并以某种方式了解发生了什么,在某个时候我会很快关闭我的支持队列,或者至少让它更难在应用程序中找到,有点埋没了一点,但在这一点上,我想提供最大的曝光率,这本身就很有趣。
顺便说一句,让我们以后再谈谈这个。
但是是的,这就是问题所在。随着应用程序变得越来越老,我发现的关于更好的词语的支持越来越少,主要是因为我需要专注于事情,并且将数据放在一起不太有用。但尽管如此,上周五我打开了它,并收集了一些东西。
我生活在一个这样的世界里,我可能在15到20分钟内回复收到的新电子邮件,我真的很努力地去真正理解发生了什么。利用如果有人看到我想要知道的东西。有人联系我说,嘿,我注意到我的照片宽度在BridgeSmith中……
如果我为它们应用照片滤镜,比如摄影滤镜,你可以知道曝光和光线,或者对比度,或者其他任何东西,那些类型的滤镜,如果我应用它,它就不再显示了。但是如果我关闭滤镜,它就会显示出来。任何时候你看到这样的电子邮件,比如有人能够创造一个发生错误的情况,然后当错误不发生时,他们为你做了很多工作,这太棒了。
这样的反馈令人难以置信,因为我得到了这个反馈,我就像,哇,这太奇怪了。这真的很奇怪。所以我拿出我的手机,我的新iPhone 15 Pro Max,我尝试同样的东西,同样的东西再次发生。
我可以重现它。这就像存在这样一个问题,如果我为某种类型的……添加照片滤镜,那么如果我哭泣,它就不会加载。如果我不这样做,它就会加载。
最初我说它与我的一个交互式小部件有关,比如如果你点击它,你可以拥有我称之为抽屉式小部件的东西,你有一张照片,你点击这张照片,然后是照片后面的另一个小部件,所以首先我认为,哦,这是一个iOS 17的活动问题。好吧。所以我沿着这条路走下去,开始调查。
然后,我意识到,不,情况似乎并非如此。很快我就开始想到这个调试过程,我认为这部分只是出生,也许只是分享,因为擅长调试问题是我们工作功能的80%,就像有相当一部分是构建部分。然后,我认为同样重要,甚至更重要的部分是能够快速识别和找到问题。
所以我做的第一件事是尝试不同的、不同类型的小部件,只是一个普通的图片小部件,对吧?同样的情况再次发生,然后尝试。好吧。
这是基于某些类型照片的吗?所以我拍一张大的RAW照片?我拍一张普通照片?我拍一张APNG文件?我拍一张小的,比如创建一个10x10的小照片,然后把它放在那里,看看是否会发生这种情况,这似乎并不重要。好吧。
所以我现在已经大大缩小了哪些因素会影响到这一点。它似乎与活动无关。它似乎与照片的类型无关。
只是关于在iOS 17中为图像应用照片滤镜的事情。那是我的工作理论。这是一个iOS 17的错误。然后就像,嗯,这很有趣,因为我在整个夏天都没有遇到过这种情况。
但这并不意味着情况并非如此,因为作为一个人的商店的现实情况是,不可避免地会有一些事情是我错过的,比如BridgeSmith有这么多屏幕和这么多功能,以至于我实际上不可能测试和尝试过所有东西,然后还为此取得有意义的进展。我就像,我只是假设这是一个iOS 17的错误,我尝试慢慢地,好吧。让我们在模拟器中尝试一下,看看是否会发生这种情况。
就像模拟器一样,很好。所以我拿出我的另一部iOS 17手机。但当然,我做的第一件事是告诉它,我在一部iOS 16手机上尝试过,它没有发生,这不幸地证实了我的偏见,即它是iOS 17,剧透警告,实际上并非如此,这很不幸,因为我做了之后,我就好像,哇,这是一个iOS 17的错误,所有拥有这个的人都会遇到这个问题。这是一个大问题。
感谢这个人识别出它,但你不会这样做,如果这样的话,我尝试来回几次看看情况是否如此,然后我就像有人联系我,我得到了一种暗示,它可能不会发生在iPhone 11上,我就像,嗯,我想知道它是否是A12/A13的错误,所以我因为我的手机有3x屏幕。任何拥有LCD屏幕的东西仍然是2x,所以我拿出了我的iPhone XR,它碰巧运行的是iOS 17,我在那里尝试了一下。
它在那里没有发生。所以现在在我的脑海里,在我的心理模型中,它是iOS 17,但只在3x显示屏上。
也许它只发生在红色手机上。
也许它像这样。我喜欢的一件事是我有一个可重现的错误,从某种意义上说,这使得事情变得更好。但随后就像,现在我该怎么办?我只是试图找出发生了什么,所以我需要找到我的一个,比如去我的旧iPhone抽屉,找到一部支持iOS 17的3x手机,在那里安装它,然后在那里尝试,然后它也工作了。
所以,嗯?好吧,这很有趣。在我的15 Pro Max上,这种情况百分之百地发生,而在我能找到的任何其他设备上,这种情况百分之零地发生。所以这很有趣。
现在我认为这是新手机中的一个错误,从某种程度上来说,这对我来说是一个小小的安慰,因为这是一个我无法以任何方式阻止发生的错误,因为我可以做到所有这些。苹果对我们非常友好。他们给了我们iOS 17,提前三个月的通知。
即使对于典型的次要错误更新,他们通常也会让我们测试它们,我们可以访问它们。所以我有一个机会安装,我们很可能有机会在它发布给公众之前至少安装几周的17.1。所以我可以在提前进行测试,并查看这些框。
在这种情况下,事实证明我什么也做不了,因为我没有影响力。不幸的是,我无法提前访问iPhone 15 Pro Max。就我目前所能理解的而言。
这是一个与iPhone上的新GPU架构相关的问题,我想是A17 Pro芯片。目前,这就是我能缩小范围的程度,它只发生在那里。它不会发生在15或15 Plus上。
它只发生在15 Pro和Pro Max上。所以它似乎与该芯片有关。太好了。这很有用。知道这一点非常有帮助。
现在,我该怎么办?这是一个令人着迷的问题,我是否应该从这些设备中移除该功能?我是否应该尝试找到一种解决方法?我是否应该以某种方式更改该功能,使其只在这些设备上运行?这总是很复杂,因为这些方案都不好。
以这种方式从应用程序中移除功能总是会造成破坏。这会惹恼人们,尤其是一些照片滤镜是应用程序中的付费功能。所以就像从一些用户那里拿走付费功能一样。
但是,最后,就像我花了一整天的时间试图寻找解决方法,尝试不同的 Core Image 选项,试图强制它只在 CPU 上进行处理,以防万一会有帮助。最终,我找不到解决方法。我让一些在 Core Image 方面非常有经验的人看了一下,他们也找不到任何问题。所以现在,我只能在这些手机上禁用该功能了。
呃,我能够为其中一些找到一个小的解决方法,我可以提前在主应用程序中重新处理一些图像,在那里它运行良好,但是,对于我的照片相册小部件来说,它不起作用,因为它动态加载图像,然后应用过滤器,因为如果你在 Widget 扩展程序中应用滤镜,由于内存压力,Widget 扩展程序将会崩溃。我只能选择禁用该功能。现在我只是等待观望。
而且谁知道呢,我已经向苹果提交了错误报告,我提交了一个开发者技术支持问题。我们拭目以待,希望,从我的角度来看,Holly 是那些事情之一,就像我没有机会提前在新手机上测试一样。苹果只有机会真正了解他们的新架构是否对第三方应用有影响,因为虽然我相信他们会下载并运行第三方应用,但他们并不一定会尝试他们新架构上的每个应用的每个功能。
所以很公平,他们没有发现,在 Widget 扩展程序中应用 Core Image 滤镜在他们的新架构上是有问题的。但无论如何,现在更新已经发布了。这无法普遍推出。我没有收到任何特别的客户反馈。
我认为他们理解,如果你看到那个,你知道,部分信息会说,很遗憾,如果你正在使用我不得不禁用此功能的新手机之一,我会努力进行兼容性更新,我就是这么做的。但无论如何,对我来说,这是一个有趣的故事。我只是觉得这类事情不可避免地会发生。
我认为重要的是要尝试保持冷静,继续前进。在这种情况下,就目前而言,这并不是一个皆大欢喜的结局。因为我还没有找到解决方法,我还没有找到……我不知道 iOS 17.1 是否修复了它或类似的东西。
但是,当我发现这个问题时,我确实有过绝望的时刻。我当时想,哦,不,这要完蛋了,当我第一次以为所有设备的图像滤镜都不起作用时,我以为 iOS 17 的图像滤镜将无法工作,而且我找不到任何可行的解决方法。
这确实很成问题、具有挑战性且令人沮丧,但是,我能够缩小范围,使其不那么成问题,因为目前只有 1% 的用户使用 iPhone 15 Pro。所以你知道,就目前而言,这不是一个大问题,啊,但是,你知道,我认为这不是我第一次遇到这种问题。因为我已经经历过很多次了,我知道你会克服的。
一切都会好起来的,在那一刻,关闭你知道有人会想要的功能是很困难的。但现实是,从某种角度来看,几乎总是没事的。这……你知道,让一些事情困扰你并不是……你也不应该让它影响你,我工作的一部分就是处理这些问题,保持冷静,解决问题,尝试隔离变量,解决问题,变量越多……
你就能更好地隔离它们。就像几分钟前我说的那样,当新手机发布时,当新的……当所有新的第三方应用发布时,无论你做了多少测试,这种组合还没有被全世界广泛测试过。
所以,苹果不可能在开发者提交应用之前测试所有应用。即使那样,他们也无法测试所有应用,不,在所有……他们只有这么多人,只有特定的人可以访问预发布的硬件。事情仍在变化,你的应用仍在变化。
操作系统仍在变化,事情仍在变化。所以,当所有新事物同时发布时,很难避免出现任何问题。所以最好预期一下,是的,这可能会发生。
每隔一段时间,你就会遇到一些奇怪的问题,你需要在九月份发布新手机或新操作系统后立即处理。这是开发工作的一部分。这不仅是你工作中不可避免的一部分,而且我认为客户对此也相当宽容,你可能会遇到偶尔的一个星级愤怒的评论。但大多数情况下,客户知道,第一天,他们知道有些东西可能有点不稳定,只要你对此有所了解,并在合理的基础上计划更新,你的客户往往会非常理解,就是这样。
我认为这次经历的关键在于理解,那些发邮件告诉我遇到这个问题的人,我立即回复他们,说,嘿,这就是问题所在,他们几乎总是说,哦,我很抱歉你遇到了这个问题。我期待在未来修复它。没问题,这就是响应迅速和负责。
呃,我认为这两者结合起来,对于处理像这样的初始问题非常有帮助。这从来都不是一件好事,但这可以使它变得可控,然后它就变成了你处理的事情,然后你知道它最终会过去的,我相信。
感谢大家的收听,我们两周后再见。
死。