我有通常以完整的64位模式下运行支持该架构的任何Mac上Cocoa应用程序。强制Cocoa应用程序在32位模式,以开始编程
现在我有一个外部API,它只能作为一个32位插件加载到主程序中。这个API适用于第三方输入设备,只有一小部分用户会购买,但这对于这一小部分很重要。
我的问题是,如果在32位模式下执行该程序只能使用此API。最简单的做法是:
场景1:要求用户通过Finder的获取信息对话框更改其信息,以32位模式启动程序。
这是很容易做到,但几乎没有优雅..
方案2:总是在32位模式下运行,从而避免惩罚98的问题
几乎没有什么我想要做的任何..为了一个奇特的功能,用户的百分比。
方案3:自动改变应用程序的启动属性,以便它在32位模式下一次启动时,它被推出,之后每次
或
方案4:在启动时,建立正在使用哪个体系结构,则在32位模式下重新发射如有必要
方案3 & 4具有非常小的上记录的问题如何做到这一点,它米ight让我陷入麻烦与Mac App Store指南。
到目前为止,我已经建立:
- ,使用“牌坊”的命令行工具可以让我重新开始我的可执行文件在32位模式下
- 查找脚本不会让我改变标志
- 的“在32位模式下启动”的标志由发射服务API(http://blog.timac.org/?p=490)
- 管理,但我还没有发现任何接口以编程方式更改标志在发射服务API
到目前为止,我只能看到这些选项,其中没有显得特别大:
- 重新推出使用NSTask应用和“牌坊”的命令行工具
- 写入直接进入com.apple。 LaunchServices.plist
- 32位插件隔离到它自己的32位唯一的过程,并使用IPC
方案一可以让我与金管局提交的麻烦。解决方案2在某个阶段几乎肯定会这样做。从用户的角度来看,只有解决方案3是完美的,但为最小的回报增加了大量的复杂性。
任何有关如何“干净地”做出合理努力的建议将不胜感激!
为什么如果你的应用程序只有32位 - 它是否需要大量的内存(> 2 GB)? –
总是在32位模式下运行,这是一种惩罚? – hamstergene
解决方案3听起来最好。 – spudwaffle