【问题标题】:Can I have an app inside another app?我可以在另一个应用程序中拥有一个应用程序吗?
【发布时间】:2011-01-11 07:10:22
【问题描述】:

我在集成 iPhone 应用程序时遇到问题。在我之前的一篇文章中,我询问了creating a static library from an Xcode project..

作为替代方案,我正在寻找一种将应用程序放入另一个应用程序的方法。因为两者都是包含大量类、图像、声音文件等的大型应用程序。这两个应用程序的大多数类名和资源名都是相同的。所以静态库的概念会导致名称冲突,这对我来说修复起来非常非常繁琐。所以我正在尝试切换到这个 app-inside-app 概念。

假设我有一个应用程序。我想通过将我的第二个应用程序的“.app”文件放入我的第一个应用程序的“.ipa”文件或第一个应用程序内的某个位置,将我的第二个应用程序放入应用程序中。现在我想从我的第一个应用调用我的第二个应用以独立于第一个应用运行。

我的概念是,我的第一个和第二个应用程序都是独立的应用程序。我想把它们放在一个单独的 ipa 文件中。当我安装 ipa 文件时,只显示一个应用程序(即我的第一个应用程序)。我的第二个应用程序也已安装但未显示,因为它在我的第一个应用程序中。这样我就可以只从我的第一个应用调用我的第二个应用。

这是我需要做的..

任何建议..

谢谢..

【问题讨论】:

  • 如果你只需要一个应用程序,为什么还要创建两个应用程序?
  • 我不是在创作。我已经有两个应用程序了。
  • 我怀疑这是否可行。您的第二个应用程序不会在操作系统中注册,并且几乎可以肯定会被阻止甚至启动。不过,有趣的想法。但是,正如大卫问的那样,为什么?两个应用有什么优势?
  • 那么,我仍然会使用静态库。也许您的名称冲突表明您有一些可以合并并放入您的 2 个应用程序共享的库中的类。
  • @Westsider:两个应用程序的想法是,第二个应用程序也将作为单独的应用程序在应用商店中提供。虽然第一个应用程序将在包含我的第二个应用程序作为附加功能的商店中提供。而且我需要我的第二个应用程序严格包含在我的第一个应用程序中。

标签: iphone


【解决方案1】:

你不能这样做。将应用程序放在 iPhone 上的方法对其工作方式相当严格。而且您不能将 2 个应用程序放在应用程序商店的一个捆绑包中。您必须交付 2 个应用程序,指示用户安装这两个应用程序,然后一个应用程序可以通过注册的 url 协议启动另一个应用程序。对于这种情况,这听起来很糟糕。

正如您所发现的,ObjC 缺乏适当的命名空间使得合并这段代码有点困难。也许您可以简单地为所有库类添加前缀。一个简单的查找和替换应该能够做到这一点。这是不支持真实命名空间的 C 方言中的某种虚假命名空间代码的一般方法。

而不是PersonPerson,您的主应用程序代码中将有Person,在您的库中将有MLPerson,其中ML 是您库的一个很酷的2 字母前缀(我缩写为@987654326 @得到ML)。

【讨论】:

  • 是的.. 这是个好建议.. 但是,就我而言,正如我已经提到的,重命名库文件将是一项乏味的工作,因为有很多类和资源文件我必须重命名..无论如何,这是我现在唯一的选择..
猜你喜欢
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 2016-09-13
  • 1970-01-01
相关资源
最近更新 更多