菜鸟教程小白 发表于 2022-12-13 04:03:17

ios - Crashlytics 如何从 Carthage 框架上传 dsym 文件


                                            <p><p>按照此处 <a href="https://docs.fabric.io/apple/crashlytics/advanced-setup.html" rel="noreferrer noopener nofollow">https://docs.fabric.io/apple/crashlytics/advanced-setup.html</a> 的说明进行操作为了
自动将 dSYM 文件上传到结构,您只需在应用目标上运行 <code>Fabric.framework/run</code> 脚本。</p>

<p>我的项目配置如下:</p>

<pre><code>Project F
- product is Dynamic Framework

Project A
- product is .app
- depends_on:
    - Project F
    - X.framework from Carthage
</code></pre>

<p>在项目 A 的目标上,作为构建阶段,我添加了运行 <code>Fabric.framework/run</code> 脚本。
在 Project F 的某个地方,我强制崩溃并观察了 Crashlytics 中的调用堆栈。调用堆栈显示项目 F,但符号显示 <code>(Missing)</code>(参见 <a href="https://imgur.com/a/HDubV" rel="noreferrer noopener nofollow">https://imgur.com/a/HDubV</a>)</p>

<p>如果我将所有 dSYM 存档并手动添加到 crashlytics,则会显示来自项目 F 的符号。</p>

<p><strong>如何将生成的 dSYM 自动上传到 Crashlytics?我可以使用restful api吗?</strong></p>

<p>注意:我假设使用 Carthage 导入的动态框架也会发生相同的行为。</p>

<pre><code>ENABLE_BITCODE = NO

Output Product Directory
- Debug-iphoneos
    - App.app
      - Frameworks
            - ProjectF.framework
            - X.framework
    - App.app.dSYM
    - ProjectF.framework.dSYM
    - X.framework.dSYM
</code></pre>

<blockquote>
<p>If you link in other static or dynamic frameworks, you could see crash reports with missing line numbers or file information. This information comes from your dSYM files, so ensure that your dSYM files for the frameworks are placed in the same directory as the app’s dSYM and that they are built before your .app. - <strong><a href="https://docs.fabric.io/apple/crashlytics/advanced-setup.html#static-or-dynamic-frameworks" rel="noreferrer noopener nofollow">Crashlytics Static or Dynamic Frameworks</a></strong></p>
</blockquote>

<p>正如你在上面的<code>Output Product Directory</code>中看到的,dSYMs在同一个地方,它们出现在<code>App.app.dSYM</code>之前的文件夹中</p>></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>感谢@MikeBonnell </p>

<p>找到上传符号脚本的文档 <a href="https://docs.fabric.io/apple/crashlytics/missing-dsyms.html" rel="noreferrer noopener nofollow">https://docs.fabric.io/apple/crashlytics/missing-dsyms.html</a> </p>

<p>由于我在 iOS 应用程序中使用(并使用 Cocoapods),因此我将构建阶段更新如下</p>

<pre><code>find ${DWARF_DSYM_FOLDER_PATH} -name &#34;*.dSYM&#34; | xargs -I \{\} ${PODS_ROOT}/Fabric/upload-symbols -a &lt;api-key&gt; -p ios \{\}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Crashlytics 如何从 Carthage 框架上传 dsym 文件,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/49315550/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/49315550/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Crashlytics 如何从 Carthage 框架上传 dsym 文件