这没有问题,并且以这种方式嵌套应用程序在 OS X 上很常见(因为你说“.app”我假设这是 OS X,而不是 iOS。这在 iOS 上是不可能的)。我怀疑它作为一种复制保护机制会特别有效,但这是一个完全不同的问题(请参阅有关此主题的几个讨论的链接)。
对于“什么是高效的?”的问题。不幸的是,答案是“如果您必须在 Stack Overflow 上提问,那么您所做的任何事情都不会非常有效;做一些简单的事情并继续前进。” 这并不意味着你是一个糟糕的程序员或任何东西。只是复制保护是一种混淆游戏,如果您使用的是在 Stack Overflow 上找到的东西,它们可能没有那么混淆。你在一周内想出的任何东西都可能没有那么模糊。而且,如果您确实想出了一些非常好的东西,那么每次它被破坏时,您仍然需要定期更新它。苹果有一个完整的团队致力于此,他们控制着系统的每一个部分,包括硬件,仍然存在越狱。
同样,这并不意味着你不能做任何事情。也许你可以阻止一些人,特别是如果你的应用程序不是那么有趣。但是不要在上面浪费太多时间,因为它不会那么有效。(如果这对你的商业计划真的很重要,你应该研究商业解决方案。我没有建议,但希望花一些钱,并在它们被击败时更新到新版本。)
也就是说,嵌套应用程序并不难。
使“子应用程序”成为目标的依赖项。
在您的构建中添加一个新的“复制文件”阶段:
将目标设置为“可执行文件”并将应用程序包拖到此处:
当您要启动它时,只需使用 找到它NSBundle.pathForResource:...
,然后使用NSTask
.