菜鸟教程小白 发表于 2022-12-13 09:58:38

iOS 键盘扩展以 "per-process-limit"终止


                                            <p><p>我正在尝试为 iOS 8 开发键盘扩展。除了我遇到的各种问题(很明显扩展只是事后的想法),在开始在 iPhone 6 上进行测试后,我发现扩展程序随机终止,崩溃日志中包含如下条目:</p>

<pre><code> Name       |            &lt;UUID&gt;                |   CPU Time|   rpages|       purgeable| recent_max| lifetime_max| fds |         | (state)
MyKeyboard &lt;93dea1cc8757387ba5e7da3006a7d23f&gt;         0.638       13072                0         -          8483   50(frontmost)
</code></pre>

<p>请注意,这发生在 iPhone 6 和 iPhone 6 plus 上,但不会发生在功能较弱(RAM 较少,但不是 64 位)的 iPhone 4S 上。</p>

<p>当然,在设备上调试时不会发生。</p>

<p>此外,如果我运行与应用程序而不是扩展程序完全相同的代码,则不会发生这种情况。</p>

<p>终止似乎主要发生在使用 Quartz 绘制线条时,或者更容易使用 Apple 的 CoreTextArcCocoa 类的派生类将属性字符串呈现为弧线时发生。
分析器显示从来没有 CPU 使用率,应用程序中的 RAM 使用率是适中的 15-25MB。当我使用其中几个弧形 TextView (主要与属性字符串相关)时,有很多分配/解除分配,所以我想也许快速分配(即使它们后面跟着解除分配)会触发一些终止扩展的 iOS 进程,因为担心占用太多内存?但是,如果我不知道确切的触发器,如何围绕它进行编码?当然我想不出调试这个问题的方法,因为它在我的应用程序之外。
我尝试使用我的一张开发人员计划票向 Apple 开一张票。我要求任何形式的帮助,甚至只是对“每个进程限制”的更好解释。他们关闭并退款,没有回应。我重新打开,至少询问关闭第一张票的原因,他们关闭并退款。
关于到底发生了什么或我可以尝试什么的任何想法?</p>

<p>这里是来自同一崩溃日志的完整内存统计信息供引用:</p>

<pre><code>Free pages:                              9054
Active pages:                            122754
Inactive pages:                        48617
Speculative pages:                     235
Throttled pages:                         0
Purgeable pages:                         4696
Wired pages:                           67788
File-backed pages:                     81292
Anonymous pages:                         90314
Compressions:                            15775
Decompressions:                        3940
Compressor Size:                         1364
Uncompressed Pages in Compressor:      4383
Page Size:                               16384
Largest process:   backboardd
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>键盘扩展似乎存在未记录的内存限制。它大约是 40Mb。你的键盘占用了 rpages*4kb = 51Mb</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 键盘扩展以&#34;per-process-limit&#34;终止,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/27261571/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/27261571/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 键盘扩展以 &#34;per-process-limit&#34;终止