在运行Mac程序时,在Xcode中运行,签名不被检查,直接双击会报错。
open ~/Library/Logs/DiagnosticReports/ 可以找到过去的错误日志。
大概率得到下面这串,在当时直接弹出的Report中有一样的内容。
发现其中最有用的是 ---> mapped file 102d14000-102e18000 [
1040K] r--/rwx SM=COW
...t_id=5e1b0559
这行中的1040K
在目录中用
find . -size +1040k -size -1050k
或者
find . -size +1M -size -2M
来找对应大小的二进制文件
在列表中通常就能找出原因了。
chencon@ADSKDQJQR0H4DT Release % find . -size +85M
-size -86M
./Frameworks/MeshMixer/libmmsdk.dylib
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: Autodesk Fusion 360 [74251]
Path: /Users/USER/*/Autodesk Fusion
360.app/Contents/MacOS/Autodesk Fusion 360
Identifier: com.autodesk.fusion360
Version: 1.48.5 (1.48.5)
Code Type: ARM-64 (Native)
Parent Process: NTest [74114]
Responsible: Terminal [771]
User ID: 502
Date/Time: 2023-10-27 10:05:02.6372 +0800
OS Version: macOS 13.5.1 (22G90)
Report Version: 12
Anonymous UUID: 0D5F412A-EAA8-9A0E-E6AF-57FCD86FA599
Sleep/Wake UUID: 378494A2-0204-4558-B2DE-2ADC8E6880B3
Time Awake Since Boot: 180000 seconds
Time Since Wake: 9071 seconds
System Integrity Protection: enabled
Crashed Thread: 0
Exception Type: EXC_BAD_ACCESS (SIGKILL (Code Signature
Invalid))
Exception Codes: UNKNOWN_0x32 at 0x0000000102d98000
Exception Codes: 0x0000000000000032, 0x0000000102d98000
Termination Reason: Namespace CODESIGNING, Code 2 Invalid
Page
VM Region Info: 0x102d98000 is in 0x102d14000-0x102e18000;
bytes after start: 540672 bytes before end: 524287
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION
DETAIL
VM_ALLOCATE 102d10000-102d14000 [ 16K] rw-/rwx
SM=PRV
---> mapped file 102d14000-102e18000 [ 1040K]
r--/rwx SM=COW ...t_id=5e1b0559
GAP OF 0x6648c000 BYTES
Stack Guard 1692a4000-16caa8000 [ 56.0M] ---/rwx
SM=NUL
Thread 0 Crashed:
0 dyld 0x1a4dc2e40
dyld3::MachOFile::isMachO(Diagnostics&, unsigned
long long) const + 40
1 dyld 0x1a4dc2d1c
dyld3::FatFile::isValidSlice(Diagnostics&, unsigned
long long, unsigned int, unsigned int, unsigned int, unsigned long
long, unsigned long long) const + 80
2 dyld 0x1a4dc303c
dyld3::FatFile::forEachSlice(Diagnostics&, unsigned
long long, bool, void (unsigned int, unsigned int, void const*,
unsigned long long, bool&) block_pointer) const +
332
3 dyld 0x1a4d9aed4
dyld4::SyscallDelegate::mapFileReadOnly(Diagnostics&,
char const*, unsigned long*, dyld4::FileID*, bool*, char*) const +
704
4 dyld 0x1a4d9a660
dyld4::SyscallDelegate::withReadOnlyMappedFile(Diagnostics&,
char const*, bool, void (void const*, unsigned long, bool,
dyld4::FileID const&, char const*) block_pointer)
const + 88
5 dyld 0x1a4d93694
dyld4::JustInTimeLoader::makeJustInTimeLoaderDisk(Diagnostics&,
dyld4::RuntimeState&, char const*,
dyld4::Loader::LoadOptions const&, bool, unsigned
int, mach_o::Layout const*) + 208
6 dyld 0x1a4d8a40c invocation function for block in
dyld4::Loader::getLoader(Diagnostics&,
dyld4::RuntimeState&, char const*,
dyld4::Loader::LoadOptions const&) + 1680
7 dyld 0x1a4d8aa30 invocation function for block in
dyld4::Loader::forEachResolvedAtPathVar(dyld4::RuntimeState&,
char const*, dyld4::Loader::LoadOptions const&,
dyld4::ProcessConfig::PathOverrides::Type, bool&,
void (char const*, dyld4::ProcessConfig::PathOverrides::Type,
bool&) block_pointer) + 436
8 dyld 0x1a4d702d8
dyld3::MachOFile::forEachLoadCommand(Diagnostics&,
void (load_command const*, bool&) block_pointer)
const + 296
9 dyld 0x1a4dc65c8 dyld3::MachOFile::forEachRPath(void (char
const*, bool&) block_pointer) const + 128
10 dyld 0x1a4d89710
dyld4::Loader::forEachResolvedAtPathVar(dyld4::RuntimeState&,
char const*, dyld4::Loader::LoadOptions const&,
dyld4::ProcessConfig::PathOverrides::Type, bool&,
void (char const*, dyld4::ProcessConfig::PathOverrides::Type,
bool&) block_pointer) + 708
11 dyld 0x1a4d76f54
dyld4::ProcessConfig::PathOverrides::forEachPathVariant(char
const*, dyld3::Platform, bool, bool, bool&, void
(char const*, dyld4::ProcessConfig::PathOverrides::Type,
bool&) block_pointer) const + 488
12 dyld 0x1a4d8928c
dyld4::Loader::forEachPath(Diagnostics&,
dyld4::RuntimeState&, char const*,
dyld4::Loader::LoadOptions const&, void (char
const*, dyld4::ProcessConfig::PathOverrides::Type,
bool&) block_pointer) + 248
13 dyld 0x1a4d899e0
dyld4::Loader::getLoader(Diagnostics&,
dyld4::RuntimeState&, char const*,
dyld4::Loader::LoadOptions const&) + 588
14 dyld 0x1a4d91730 invocation function for block in
dyld4::JustInTimeLoader::loadDependents(Diagnostics&,
dyld4::RuntimeState&, dyld4::Loader::LoadOptions
const&) + 412
15 dyld 0x1a4dc47e8 invocation function for block in
dyld3::MachOFile::forEachDependentDylib(void (char const*, bool,
bool, bool, unsigned int, unsigned int, bool&)
block_pointer) const + 148
16 dyld 0x1a4d702d8
dyld3::MachOFile::forEachLoadCommand(Diagnostics&,
void (load_command const*, bool&) block_pointer)
const + 296
17 dyld 0x1a4dc4630 dyld3::MachOFile::forEachDependentDylib(void
(char const*, bool, bool, bool, unsigned int, unsigned int,
bool&) block_pointer) const + 172
18 dyld 0x1a4d91478
dyld4::JustInTimeLoader::loadDependents(Diagnostics&,
dyld4::RuntimeState&, dyld4::Loader::LoadOptions
const&) + 164
19 dyld 0x1a4d74a0c dyld4::prepare(dyld4::APIs&,
dyld3::MachOAnalyzer const*) + 1236
20 dyld 0x1a4d73e18 start + 1964
Mac签名错误的解决方案
在运行Mac程序时,在Xcode中运行,签名不被检查,直接双击会报错。
open ~/Library/Logs/DiagnosticReports/ 可以找到过去的错误日志。
大概率得到下面这串,在当时直接弹出的Report中有一样的内容。
发现其中最有用的是 ---> mapped file 102d14000-102e18000 [ 1040K] r--/rwx SM=COW ...t_id=5e1b0559
这行中的1040K
在目录中用
find . -size +1040k -size -1050k
或者
find . -size +1M -size -2M
来找对应大小的二进制文件
在列表中通常就能找出原因了。
chencon@ADSKDQJQR0H4DT Release % find . -size +85M -size -86M
./Frameworks/MeshMixer/libmmsdk.dylib
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: Autodesk Fusion 360 [74251]
Path: /Users/USER/*/Autodesk Fusion 360.app/Contents/MacOS/Autodesk Fusion 360
Identifier: com.autodesk.fusion360
Version: 1.48.5 (1.48.5)
Code Type: ARM-64 (Native)
Parent Process: NTest [74114]
Responsible: Terminal [771]
User ID: 502
Date/Time: 2023-10-27 10:05:02.6372 +0800
OS Version: macOS 13.5.1 (22G90)
Report Version: 12
Anonymous UUID: 0D5F412A-EAA8-9A0E-E6AF-57FCD86FA599
Sleep/Wake UUID: 378494A2-0204-4558-B2DE-2ADC8E6880B3
Time Awake Since Boot: 180000 seconds
Time Since Wake: 9071 seconds
System Integrity Protection: enabled
Crashed Thread: 0
Exception Type: EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
Exception Codes: UNKNOWN_0x32 at 0x0000000102d98000
Exception Codes: 0x0000000000000032, 0x0000000102d98000
Termination Reason: Namespace CODESIGNING, Code 2 Invalid Page
VM Region Info: 0x102d98000 is in 0x102d14000-0x102e18000; bytes after start: 540672 bytes before end: 524287
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
VM_ALLOCATE 102d10000-102d14000 [ 16K] rw-/rwx SM=PRV
---> mapped file 102d14000-102e18000 [ 1040K] r--/rwx SM=COW ...t_id=5e1b0559
GAP OF 0x6648c000 BYTES
Stack Guard 1692a4000-16caa8000 [ 56.0M] ---/rwx SM=NUL
Thread 0 Crashed:
0 dyld 0x1a4dc2e40 dyld3::MachOFile::isMachO(Diagnostics&, unsigned long long) const + 40
1 dyld 0x1a4dc2d1c dyld3::FatFile::isValidSlice(Diagnostics&, unsigned long long, unsigned int, unsigned int, unsigned int, unsigned long long, unsigned long long) const + 80
2 dyld 0x1a4dc303c dyld3::FatFile::forEachSlice(Diagnostics&, unsigned long long, bool, void (unsigned int, unsigned int, void const*, unsigned long long, bool&) block_pointer) const + 332
3 dyld 0x1a4d9aed4 dyld4::SyscallDelegate::mapFileReadOnly(Diagnostics&, char const*, unsigned long*, dyld4::FileID*, bool*, char*) const + 704
4 dyld 0x1a4d9a660 dyld4::SyscallDelegate::withReadOnlyMappedFile(Diagnostics&, char const*, bool, void (void const*, unsigned long, bool, dyld4::FileID const&, char const*) block_pointer) const + 88
5 dyld 0x1a4d93694 dyld4::JustInTimeLoader::makeJustInTimeLoaderDisk(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, bool, unsigned int, mach_o::Layout const*) + 208
6 dyld 0x1a4d8a40c invocation function for block in dyld4::Loader::getLoader(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&) + 1680
7 dyld 0x1a4d8aa30 invocation function for block in dyld4::Loader::forEachResolvedAtPathVar(dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, dyld4::ProcessConfig::PathOverrides::Type, bool&, void (char const*, dyld4::ProcessConfig::PathOverrides::Type, bool&) block_pointer) + 436
8 dyld 0x1a4d702d8 dyld3::MachOFile::forEachLoadCommand(Diagnostics&, void (load_command const*, bool&) block_pointer) const + 296
9 dyld 0x1a4dc65c8 dyld3::MachOFile::forEachRPath(void (char const*, bool&) block_pointer) const + 128
10 dyld 0x1a4d89710 dyld4::Loader::forEachResolvedAtPathVar(dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, dyld4::ProcessConfig::PathOverrides::Type, bool&, void (char const*, dyld4::ProcessConfig::PathOverrides::Type, bool&) block_pointer) + 708
11 dyld 0x1a4d76f54 dyld4::ProcessConfig::PathOverrides::forEachPathVariant(char const*, dyld3::Platform, bool, bool, bool&, void (char const*, dyld4::ProcessConfig::PathOverrides::Type, bool&) block_pointer) const + 488
12 dyld 0x1a4d8928c dyld4::Loader::forEachPath(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, void (char const*, dyld4::ProcessConfig::PathOverrides::Type, bool&) block_pointer) + 248
13 dyld 0x1a4d899e0 dyld4::Loader::getLoader(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&) + 588
14 dyld 0x1a4d91730 invocation function for block in dyld4::JustInTimeLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) + 412
15 dyld 0x1a4dc47e8 invocation function for block in dyld3::MachOFile::forEachDependentDylib(void (char const*, bool, bool, bool, unsigned int, unsigned int, bool&) block_pointer) const + 148
16 dyld 0x1a4d702d8 dyld3::MachOFile::forEachLoadCommand(Diagnostics&, void (load_command const*, bool&) block_pointer) const + 296
17 dyld 0x1a4dc4630 dyld3::MachOFile::forEachDependentDylib(void (char const*, bool, bool, bool, unsigned int, unsigned int, bool&) block_pointer) const + 172
18 dyld 0x1a4d91478 dyld4::JustInTimeLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) + 164
19 dyld 0x1a4d74a0c dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 1236
20 dyld 0x1a4d73e18 start + 1964