python setup.py py2app resources foo
如果这是一个shell脚本,那将是一个非常有效的方法。对于二进制可执行文件,它有点老套。首先,p2app的文档清楚地写着“不是为了代码!”。其次,OSX文档说不要将可执行文件放在Resources目录中。主要原因是代码签名:默认设置“密封”资源中的所有内容,作为主应用程序签名的一部分,但是单独的可执行文件不应该这样密封,它们应该单独签名。在
然而,尽管如此,它仍然会起作用。除了它可能不会以+x权限结束,所以在py2app步骤之后,您必须“chmod+x”MyApp.app/Contents/Resources/foo使它可以运行。在
您还可以使用distutils包的数据、数据文件和/或清单来添加具有任意相对路径的任意文件,这可能是一个更好的解决方案,但它更复杂。在
不管怎样,在您的脚本中,您应该使用与bundle相关的路径,您可以通过PyObjC轻松地访问该路径。考虑到您使用的是PowerPC可执行文件,您可能需要非常多的向后兼容性,以至于您无法依赖它,在这种情况下,您可能只能使用“../Resources/foo”,但在其他情况下,如下所示:
^{pr2}$
然后可以使用NSTask或子进程Popen启动它,操作系统等等