Gag*_*ngh 5 macos code-signing osx-snow-leopard
在我们的一个应用程序上签名(共同设计)失败malformed object (unknown load command 9)
。在网上进行了一些研究之后,我发现加载命令是可执行文件头中的特殊命令,内核将其用于段加载(http://0xfe.blogspot.in/2006/03/how-os-x-executes-applications.html)。因此,我在otool -l
应用程序上运行了命令。我发现命令30损坏了。但是,启动应用程序绝对可以。
我该如何解决这个问题?我不知道其他团队如何构建该应用程序。
该otool -l
命令代码段
.
.
.
.
Load command 8
cmd LC_UUID
cmdsize 24
uuid F892472C-7463-3549-8FA0-A93F4501FB40
Load command 9
cmd ?(0x00000024) Unknown load command
cmdsize 16
000a0600 00000000
Load command 10
cmd LC_UNIXTHREAD
cmdsize 184
flavor x86_THREAD_STATE64
count x86_THREAD_STATE64_COUNT
rax 0x0000000000000000 rbx 0x0000000000000000 rcx 0x0000000000000000
rdx 0x0000000000000000 rdi 0x0000000000000000 rsi 0x0000000000000000
rbp 0x0000000000000000 rsp 0x0000000000000000 r8 0x0000000000000000
r9 0x0000000000000000 r10 0x0000000000000000 r11 0x0000000000000000
r12 0x0000000000000000 r13 0x0000000000000000 r14 0x0000000000000000
r15 0x0000000000000000 rip 0x0000000100001970
rflags 0x0000000000000000 cs 0x0000000000000000 fs 0x0000000000000000
gs 0x0000000000000000
.
.
.
.
.
.
Load command 29
cmd LC_LOAD_DYLIB
cmdsize 88
name /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (offset 24)
time stamp 2 Thu Jan 1 05:30:02 1970
current version 1038.36.0
compatibility version 45.0.0
Load command 30
cmd ?(0x00000026) Unknown load command
cmdsize 16
001bd748 00000ef8
Run Code Online (Sandbox Code Playgroud)
@Gagandeep Singh 已经找到了解决方案,但对于遇到此问题的其他人:
\n\n当为一个 Mac OS X 版本构建对象然后在早期 Mac OS X 版本上使用时,可能会发生“未知加载命令”错误。
\n\nMac OS X 10.6 引入了加载命令LC_DYLD_INFO_ONLY
(0\xc3\x9780000022)。要解决此问题,请参阅此处。
Mac OS X 10.7 引入了加载命令LC_VERSION_MIN_MACOSX
(0\xc3\x9780000024) 和LC_FUNCTION_STARTS
(0x80000026)。要解决这些问题,请参阅此处。
加载命令名称的方便列表位于mach-o/loader.h中。
\n 归档时间: |
|
查看次数: |
3156 次 |
最近记录: |