如果用戶允許,我的 macOS 應用程式會直接讀取崩潰日志檔案并將它們提交到我的服務器進行分析。這意味著我可以看到.ips在 Monterey 上生成的原始檔案。
現在,這些檔案似乎包含兩個 JSON 格式的記錄,第一個詳細說明了應用程式的屬性。這是我自己的應用程式報告的一個示例:
{
"app_name":"Find Any File",
"timestamp":"2022-01-02 10:12:36.00 -0500",
"app_version":"",
"slice_uuid":"a15335de-4432-3b53-bcdf-381424a7a330",
"build_version":"",
"platform":1,
"share_with_app_devs":0,
"is_first_party":1,
"bug_type":"309",
"os_version":"macOS 12.1 (21C52)",
"incident_id":"132818BA-3DBA-4B15-86CE-307BE961E7DC",
"name":"Find Any File"
}
對我來說,問題是有時,就像在這個例子中一樣,theapp_version和build_version值都是空的。這讓我很難弄清楚我的應用程式的哪個版本導致了崩潰。
我有 11 個 .ips 崩潰報告,當我將具有有效版本資訊的那些與缺少它們的那些進行比較時,我發現的唯一一致性是,is_first_party每當我獲得有效版本時,其值為0,而每當我獲得空值時,值為 1。
誰能解釋為什么會發生這種情況以及我如何在所有情況下都能做到這一點?
uj5u.com熱心網友回復:
我還在 Apple 的開發者論壇上發布了這個問題:https : //developer.apple.com/forums/thread/697964
這可能是 Monterey 中的一個錯誤,或者是由于 Launch Services Database 受損。為了判斷是否是后者,我需要轉儲受影響用戶的 LaunchDB,然后對其進行分析以查看其中是否存在缺少我的應用程式版本資訊的條目。
然而,好訊息是有一個解決方法:
始終提供“slice_uuid”,即使版本為空。然后可以使用以下命令將該 UUID 與我發布的可執行檔案匹配:
dwarfdump -u /path/to/executable
這將顯示應用程式支持的每個拱門的 UUID。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/405184.html
標籤:
