objective-c - 从服务启动时出现 OSX 代码签名无效异常

标签 objective-c macos sandbox code-signing finder

MyApp 是一个音盒应用程序,具有文件和文件夹 服务功能。当我正常启动应用程序时,应用程序工作正常,但当它被服务调用时,它会使 Finder 在几秒钟内无响应,然后崩溃

控制台日志显示以下崩溃

Process:               MyApp [4453]
Path:                  /Users/USER/Library/Developer/Xcode/Archives/2015-02-02/MyApp 02-02-2015 6.02 pm.xcarchive/Products/Applications/MyApp.app/Contents/MacOS/MyApp
Identifier:            com.Company.MyApp
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           MyApp [4453]
User ID:               501

Date/Time:             2015-02-05 11:06:20.391 +0500
OS Version:            Mac OS X 10.10.2 (14C109)
Report Version:        11
Anonymous UUID:        2B8F252E-AA04-6181-CCE8-379AB367F5EE


Time Awake Since Boot: 3600 seconds

Crashed Thread:        0

Exception Type:        EXC_CRASH (Code Signature Invalid)
Exception Codes:       0x0000000000000000, 0x0000000000000000

kernel messages:

VM Regions Near 0x7fff799630a8 (cr2):
    __LINKEDIT             00007fff63e95000-00007fff63ea9000 [   80K] r--/rwx SM=COW  /usr/lib/dyld
--> Submap                 00007fff70000000-00007fff80000000 [256.0M] r--/rwx SM=PRV  process-only VM submap
    unused shlib __DATA    00007fff775f9000-00007fff79b9c000 [ 37.6M] rw-/rw- SM=COW  system shared lib __DATA not used by this process

Thread 0 Crashed:
0   dyld                            0x00007fff63e26000 _dyld_start + 0

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x000000000000000d  rbx: 0x0000000000000000  rcx: 0x0000000000000000  rdx: 0x0000000000000000
  rdi: 0x0000000000000000  rsi: 0x0000000000000000  rbp: 0x0000000000000000  rsp: 0x00007fff586a1aa8
   r8: 0x0000000000000000   r9: 0x0000000000000000  r10: 0x0000000000000000  r11: 0x0000000000000000
  r12: 0x0000000000000000  r13: 0x0000000000000000  r14: 0x0000000000000000  r15: 0x0000000000000000
  rip: 0x00007fff63e26000  rfl: 0x0000000000000201  cr2: 0x00007fff799630a8

Logical CPU:     0
Error Code:      0x020000f4
Trap Number:     133


Binary Images:
    0x7fff63e25000 -     0x7fff63e5b837  dyld (???) <65DCCB06-339C-3E25-9702-600A28291D0E> /usr/lib/dyld

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 5435
    thread_create: 0
    thread_set_state: 93

VM Region Summary:
ReadOnly portion of Libraries: Total=300K resident=300K(100%) swapped_out_or_unallocated=0K(0%)
Writable regions: Total=8416K written=0K(0%) resident=12K(0%) swapped_out=0K(0%) unallocated=8404K(100%)

REGION TYPE                      VIRTUAL
===========                      =======
STACK GUARD                        56.0M
Stack                              8192K
VM_ALLOCATE                           8K
__DATA                              228K
__LINKEDIT                           80K
__TEXT                              220K
mapped file                         872K
shared memory                         4K
===========                      =======
TOTAL                              65.4M

这清楚地表明它存在一些代码签名问题

Exception Type: EXC_CRASH (Code Signature Invalid)

下一个自然步骤应该是检查其签名,因此我使用了 spctl 并且它返回了

$ sudo spctl --assess --verbose=4 /Applications/MyApp.app
/Applications/MyApp.app: accepted
source=Developer ID

我不知道这里缺少什么。

更新


我在我的计算机上创建了一个新帐户并运行该应用程序,并且没有收到任何协同设计错误/异常。

所以这与用户帐户的状态有关,或者可能是 OSX 的错误。

最佳答案

我怀疑您的服务正在启动您的应用程序的未签名副本,该副本位于您的开发目录中。

您的第一次崩溃表明路径是:

/Users/USER/Library/Developer/Xcode/Archives/2015-02-02/MyApp 02-02-2015 6.02 pm.xcarchive/Products/Applications/MyApp.app/Contents/MacOS/MyApp

您发布的 spctl 命令检查了签名:

/Applications/MyApp.app.  

当您以开发者帐户登录时,该服务可能会从您的 Xcode/Archive 目录中获取未签名的应用程序并失败。在/Applications 中手动启动已安装的版本,或对该版本进行 spctl 检查,都会成功。使用不同的用户帐户时,该服务可能会在/Applications 中找到该版本。

关于objective-c - 从服务启动时出现 OSX 代码签名无效异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337510/

相关文章:

ios - NSImage 和 UIImage 给出了不同的 NSData 表示

c++ - 获得 c++11 - 兼容的编译器

php - 如何在 Symfony2 中正确启用 twig 的沙箱扩展?

android - Android 中的静态变量真的是 "global"(系统范围)吗?

ios - 有没有办法遍历字典?

ios - 是否可以快速将录音机音频文件保存在音乐中?

ios - 切换到 iMac 后,React-Native 在设备上的构建变得极其缓慢

linux - 将用户编写的在服务器上运行的 node.js 脚本沙盒化

ios - 获取频率并显示 View Controller

javascript - form 标签包裹其后的所有内容