程序是 https://github.com/xiaoyifang/goldendict 用了 homebrew 预编译的 qt6 ,启动就被 kill
对着 dlopen 打断点:
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x00000001872a929c libdyld.dylib`dlopen
libdyld.dylib`dlopen:
-> 0x1872a929c <+0>: mov x2, x1
0x1872a92a0 <+4>: mov x1, x0
0x1872a92a4 <+8>: adrp x8, 363711
0x1872a92a8 <+12>: ldr x0, [x8, #0x670]
Target 0: (GoldenDict) stopped.
(lldb) memory read -s1 -fY -c100 $x0
0x600003e02510: 2f 6f 70 74 2f 68 6f 6d 65 62 72 65 77 2f 43 65 /opt/homebrew/Ce
0x600003e02520: 6c 6c 61 72 2f 71 74 2f 36 2e 32 2e 33 5f 31 2f llar/qt/6.2.3_1/
0x600003e02530: 73 68 61 72 65 2f 71 74 2f 70 6c 75 67 69 6e 73 share/qt/plugins
0x600003e02540: 2f 69 6d 61 67 65 66 6f 72 6d 61 74 73 2f 6c 69 /imageformats/li
0x600003e02550: 62 71 6d 6e 67 2e 64 79 6c 69 62 00 00 60 00 00 bqmng.dylib..`..
0x600003e02560: 30 0b 23 00 00 60 00 00 04 00 00 00 00 00 00 00 0.#..`..........
0x600003e02570: 00 00 00 10 ....
(lldb) c
Process 90687 resuming
zsh: killed lldb ./GoldenDict.app/Contents/MacOS/GoldenDict
> codesign --deep --verify --verbose /opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib
/opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib: valid on disk
/opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib: satisfies its Designated Requirement
> codesign -d -vvv /opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib
Executable=/opt/homebrew/Cellar/qt/6.2.3_1/share/qt/plugins/imageformats/libqmng.dylib
Identifier=libqmng-55554944be625159fd4d3997b75cdc5985adb4cd
Format=Mach-O thin (arm64)
CodeDirectory v=20400 size=841 flags=0x2(adhoc) hashes=20+2 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha256=57b38992a7af811c43affc257ac3425b7030d36d
CandidateCDHashFull sha256=57b38992a7af811c43affc257ac3425b7030d36dc5ccc8f43c6c4eae8bf9292b
Hash choices=sha256
CMSDigest=57b38992a7af811c43affc257ac3425b7030d36dc5ccc8f43c6c4eae8bf9292b
CMSDigestType=2
CDHash=57b38992a7af811c43affc257ac3425b7030d36d
Signature=adhoc
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=0 size=12
brew reinstall qt 也没有用
因为这个mng 图片格式 根本没人用,我就删了这个文件,然后程序就起来了,但是还是觉得很奇怪,好像 adhoc 签名不是用于分发的?为什么 homebrew 的二进制文件没有用苹果的开发者签名。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.