如果这个问题看起来太简单,请原谅我,但我对Mac的访问权限非常有限,而且我对OSX的了解相对有限。
我使用Windows Forms编写了一个程序,我现在使用Mono在OSX(Yosemite)下运行。
我想让它易于分发,所以我跟着these instructions解释了如何使用.app包运行它。它花了我几分钟才能让它工作。但是,现在我需要使用更新的版本更新包中的.exe文件。
因此我打开了我的工作.app包并导航到MacOS目录。在那里,我用最新版本替换了旧的.exe文件。当我点击调用Mono的脚本(也在MacOS中)时,Mono按预期运行.exe。但是,它不再从图标中运行,图标只是在停靠栏中短暂出现,反弹几次然后消失。
我已经用尽了我对OSX的了解,试图弄清楚这个问题。我已经尝试重新创建我最初采取的步骤。我已经尝试了名称和Info.plist的每个组合。似乎没什么用。
奇怪的是:当我使用一个工作的.app包并且只替换一个.exe文件时会发生这种情况。整个过程通过图标停止工作,即使脚本在捆绑包内双击它时脚本也能正常工作。
有什么我想念的吗?一些安全功能? OSX是否对捆绑应用某种校验和?它是否以某种方式知道它与我创建的原始包不同?我完全失去了。
谢谢,
埃里克
答案 0 :(得分:1)
这很可能是问题,(您没有通过签名检查),另一个可能的选择是您正在粉碎文件权限(因此清除可执行位。)
如果暂时禁用网守,您应该能够确定其签名失败是否导致此问题。
如果您已签署原始包
快速的附加调试步骤是从命令行运行:
open /Applications/example.app
(将/Applications/example.app替换为您的应用包)因此您可以在stdout / stderr上获取任何错误并直接查看它们。