教训: Xcode Organizer 里面的 Archive 都不要丢,尤其是里面的 dSYM。

240 天前
 ShikiSuen

教训:Xcode Organizer 里面所有后来拿来发行正式版 App Builds 的 Archive 都不要丢,尤其是里面的 dSYM 档案很重要。一旦丢了,那么你 App 的使用者在 App 崩溃时收集到的 IPS 侦错档案传到你这边时就真成了无用的天书了。

一份 App Build 对应一份 dSYM 再对应任何该 App Build 运行时可能生成的 IPS 错误报告档案。其中的 dSYM 扮演了解密辞典的作用:必须有这份唯一的 dSYM ,才有可能把客户的 IPS 错误报告当中的记忆体位址翻译成函式名称/方法名称。

https://developer.apple.com/documentation/xcode/adding-identifiable-symbol-names-to-a-crash-report

1210 次点击
所在节点    iDev
7 条回复
ShikiSuen
240 天前
备忘:MacSymbolicator 这款 App 可以无须 Xcode 就可以拿着 dSYM 翻译 IPS 错误报告。
pheyer
239 天前
冷知识:没有 dSYM 也可以恢复符号,就是麻烦点
ShikiSuen
239 天前
@pheyer 请赐教。
liuidetmks
239 天前
@ShikiSuen 有偏移地址,你就可以找到代码位置了,一套操作总之相当麻烦,不知道有没有自动化的工具
ShikiSuen
238 天前
@liuidetmks 我这边威注音输入法从 2.8.5 版开始直接走 Xcode Archive -> Organizer 的手续做公证处理,Runtime 是经过 Harden 处理的。这种情况下有偏移位址也能找到对应的程式码位置吗?

P.S.: 我怀疑这个 Harden 处理会对代码有一定程度的混淆。
weeei
222 天前
你有集成类似 crashlytics 的服务吗,发版本后传一份符号上去就行了: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?hl=zh-cn&platform=ios
ShikiSuen
220 天前
@weeei 感谢您的分享,回头有其他专案我会考虑用一下。

P.S.: 威注音专案是针对企业敏感场合而设计的,不会擅自上传东西。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/973185

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX