2010-12-08 3 views
1

У меня есть проект A. Это создает продукт, который работает и уже отправлен в магазин приложений и т. Д. Теперь я хотел бы создать новый проект, давайте назовите это проектом B, и я хочу, чтобы B был основан на A. Очевидно, что B добавит больше пользовательского интерфейса и поведения поверх A.Создание нового проекта на основе существующего проекта (Project Reuse)

После выполнения некоторых исследований единственным вариантом, по-видимому, является использование межпроектных ссылок, поскольку Я хотел бы повторно использовать XIB проекта A, изображения и т. Д. В проекте B. Правильно ли я предполагаю, что в этом сценарии должна работать ссылка на перекрестный проект?

У меня возникли серьезные проблемы с тем, чтобы эта работа работала. Я хотел бы использовать повторное использование уровня проекта. В Java или .NET это даже не будет рассматриваться, технология позволяет это. Поскольку iPhone не поддерживает фреймворки, я думаю, что разработчики продвигаются к более примитивным подходам, таким как дублирование кода.

Итак, как я могу решить эту проблему. Как я могу создать свой проект B на основе проекта A (включая XIB, изображения и т. Д.)?

Спасибо,

ответ

1

Если A и B настолько похожи, возможно, вы могли бы просто создать новую цель сборки; это даст вам один проект с целью A и целевым B. Обе цели будут иметь доступ к любому из ресурсов в проекте.

Если у вас есть справедливый бит общего кода, вы можете создать статическую библиотеку; iOS не поддерживает динамическую привязку к пользовательским библиотекам, но поддерживает статическую связь просто отлично. Это сделало бы использование зависимостей между проектами полезным, потому что вы могли бы иметь библиотеку ссылок B проекта A из проекта A и строить ее как зависимость.

+0

iOS, безусловно, поддерживает динамическое связывание! Вы должны перефразировать. – 2010-12-08 17:57:32

+0

Спасибо Адаму. Моя основная проблема со статическими библиотеками заключается в том, что они не позволяют использовать такие ресурсы, как XIB. – Ushox 2010-12-08 18:41:37

0

я сделал это то же самое в одной точке:

Я скопировать и вставить все приложения, а затем было два отдельных приложения, которые я мог бы работать на индивидуально.

+0

Но я не хочу копировать и вставлять проект A в проект B, потому что они будут иметь разные жизненные циклы. Если в общем коде есть ошибка, я не хочу исправлять ее в обоих проектах. – Ushox 2010-12-08 17:00:34

+0

@ Ушокс: Ах, хорошая точка. – Linuxmint 2010-12-08 17:07:07

0

Может быть, вы могли бы использовать инструмент Scm как Git или Поршень (http://piston.rubyforge.org) и «клон» коде. Сделайте что-то вроде:

#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 

Это должно позволить вам разработать «новый» проект самостоятельно, позволяя вам тянуть изменения при необходимости. Поршень разрешает разветвление вендора против репозиториев Git или Subversion, привязывая ваш новый код к конкретной удаленной ревизии. Посмотрите на его документацию.