【问题标题】:Creating a new project based on an existing project (Project Reuse)基于现有项目创建新项目(项目重用)
【发布时间】:2010-12-08 16:38:38
【问题描述】:

我有一个项目 A。这会产生一个正在运行的产品,并且已经提交到应用商店等。现在,我想创建一个新项目,我们称之为项目 B,我希望 B 基于A. 显然 B 会在 A 之上添加更多 UI 和行为。

在做了一些研究之后,唯一的选择似乎是使用跨项目引用,因为我想在项目 B 中重用项目 A 的 XIB、图像等。我假设跨项目引用应该在那个场景?

好吧,我在让这个东西正常工作时遇到了一些严重的问题。我想实现项目级别的重用。在 Java 或 .NET 中,这甚至都不是考虑因素,技术允许这样做。因为 iPhone 不支持框架,我认为开发人员被推向更原始的方法,如代码复制。

那么,我该如何解决这个问题。如何基于项目 A(包括 XIB、图像等)创建我的项目 B?

谢谢,

【问题讨论】:

    标签: iphone xcode project reusability


    【解决方案1】:

    如果 A 和 B 如此相似,也许您可​​以考虑简单地创建一个新的构建目标;这将为您提供一个具有目标 A 和目标 B 的项目。两个目标都可以访问项目中的任何资源。

    如果您有相当多的共享代码,那么您可以创建一个静态库; iOS 不支持动态链接到用户生成的库,但它支持静态链接就好了。这将使跨项目依赖关系变得有用,因为您可以从项目 A 中获取项目 B 引用库 A 并将其构建为依赖关系。

    【讨论】:

    • iOS 确实支持动态链接!你应该改写。
    • 谢谢亚当。我对静态库的主要问题是它们不允许共享资源,如 XIB。
    • @Shaggy Frog:抱歉,iOS 支持动态链接,但仅支持系统提供的库。我说的是为了重用而链接到用户生成的库。固定。
    【解决方案2】:

    我曾经做过同样的事情:

    我复制并粘贴了整个应用程序,然后创建了两个可以单独使用的独立应用程序。

    【讨论】:

    • 但我不想将项目 A 复制并粘贴到项目 B 中,因为它们将具有不同的生命周期。如果公共代码中存在错误,我不想在两个项目中都修复它。
    【解决方案3】:

    与流行的观点相反,可以create iOS frameworks.

    【讨论】:

    • 我不确定该声明的真实性。链接?
    • 您不能在运行时动态链接到非系统库。私有框架使用动态库。因此,您不能提交链接到私有框架的构建。
    【解决方案4】:

    也许您可以使用 Git 或 Piston (http://piston.rubyforge.org) 等 scm 工具并“克隆”代码。执行以下操作:

    #add original project to git
    cd /your/base/project/code
    git init
    git add . #Stages all files to check-in index
    git commit -m 'Your commit message here'
    

    然后

    #clone the original project into a new one
    cd /your/new/project/directory
    git clone /your/base/project/code
    git checkout -b aNewWorkingBranchName #create a new working branch to modify
    #modify code to your <3's content, use git pull/push/merge/rebase/diff as required to track/update original project
    

    这应该让您独立开发“新”项目,同时允许您在需要时进行更改。 Piston 允许针对 Git 或 Subversion 存储库的“供应商”分支,将您的新代码绑定到特定的远程版本。看看它的文档。

    【讨论】:

    • 谢谢!我会看看那个选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多