С Xcode 4, каков правильный способ, есть основной проект + проект совместного кода?

В настоящее время у меня есть приложение для iPhone, которое является лишь одним крупным проектом. Он содержит сотни файлов кода. У меня есть одна папка под названием «Помощник», которая включает все мои классы, которые я создал. Я собираюсь сделать второе приложение, которое также должно использовать тот же самый код, который находится в папке «Помощник».

Каким образом можно разделить этот код «Помощник» между двумя проектами / приложениями? Должен ли я помещать его в свой собственный файл проекта, а затем добавить как основное приложение + «Помощник» в обычное рабочее пространство? Мне не интересно создавать статические библиотеки или что-то еще … Я просто хочу, чтобы код каким-то образом был разделен.

Я уже пробовал сделать второй «пустой» файл проекта и перетащил код в него, но когда я пытаюсь создать Xcode, просто думает, что мне не хватает файлов заголовков сейчас … по какой-то причине он не видит код в другом проекте ,

Было бы идеально, если бы было чистое различие между общим кодом и кодом, уникальным для вашего текущего приложения. Если этого еще нет, постарайтесь убедиться, что все, что будет доступно, не зависит ни от чего, кроме кода, уникального для проекта.

Один из способов добиться этого – использовать Git Repo, а затем сделать общий код своим собственным проектом репо. Затем в репо для обоих проектов включить вспомогательный код в качестве подмодуля.

Я работал с проектами, которые используют подмодули, хотя я еще не настроил аспект подмодуля. Преимущество здесь в том, что любые изменения, которые вы делаете для «помощника», можно втягивать в оба проекта, поэтому изменения синхронизируются.

Если вы еще не знакомы с Git, я рекомендую познакомиться. Настройка Git-репо на вашем компьютере, даже если вы не сотрудничаете с другими, очень полезна. XCode в настоящее время предлагает возможность настройки репо при создании вашего проекта. Если вы этого еще не сделали или не уверены, вы все равно можете создать репо после факта.

Я использую исходное дерево для управления моими репозиториями. Создание репо довольно просто и легко оттуда SourceTree . Однако вы можете использовать собственный настольный клиент GitHub или любой другой клиент, если хотите – в зависимости от того, как вы настроили свой проект.

Некоторая информация о создании подмодуля в git: настройка подмодуля

Итак, напомню:

  1. Убедитесь, что ваш «хелперный» код может стоять сам по себе
  2. Поместите вспомогательный код в свое собственное репо
  3. Включите вспомогательное репо в качестве подмодуля в любой проект, в который вы хотите ввести код.

Надеюсь, это поможет!

Мне кажется, что ситуация, о которой вы описали, является именно тем, что разработано для решения. То, что вы, скорее всего, в конечном итоге сделаете, – это создать еще один проект со всем вашим общим кодом внутри него и создать структуру, с которой могут ссылаться ваши приложения.

Я бы посоветовал прочитать руководство по программированию Apple. От введения к руководству:

Mac OS X широко использует фреймворки для распространения общего кода и ресурсов, таких как интерфейсы к самой системе. Вы можете создавать собственные каркасы, чтобы предоставлять общий код и ресурсы одному или нескольким приложениям вашей компании. Вы также можете создавать фреймворки, содержащие библиотеки классов или дополнительные модули, с целью распространения их на других разработчиков.

Вы можете поместить общий код в отдельную папку, а затем добавить его в оба проекта. Но не забудьте добавить путь к папке в User Header Search Paths в Build Settings > Search Paths .

Я не заинтересован в создании статических библиотек или чего-то еще …

Тем не менее, для iOS цель статической библиотеки – именно то, что вы будете использовать.

Не требуется рабочее пространство, просто отдельный проект Xcode с этой общей статической библиотекой, которую оба приложения ссылаются.

  • Метод делегата не вызывается?
  • Письмо и номер жест в iphone
  • Образец кода WWDC 2011
  • Массив UIViews
  • Событие Touch, обрабатываемое несколькими видами
  • Правильный способ сохранения и загрузки изображений
  • Методы делегата CAAnimation, не вызываемые делегатом
  • Определение того, было ли приложение iOS запущено через Siri
  • Что такое простой способ получить весь текст, который находится внутри UITextField, когда он набирается?
  • Как быть предупрежденным, когда uiviewcontroller выталкивается / выталкивается из стека навигации
  • Автомаршруты с якорями
  • Давайте будем гением компьютера.