Моя структура будет использовать другие структуры, но я бы хотел, чтобы это было прозрачно для конечного пользователя - PullRequest
1 голос
/ 24 мая 2010

Я создаю фреймворк, целью которого является предоставление пользователю новой среды разработки, но для этого мне нужно использовать такие вещи, как RegexKit и почти наверняка некоторые другие установленные фреймворки. Любая функциональность, предоставляемая такими структурами, будет абстрагирована через классы и методы в моей собственной среде по причинам обслуживания (что позволит мне передумать, какие зависимости я хочу).

В идеальном мире я просто хочу отправить одну .framework. Однако я знаю, что в отличие от стандартных пакетов и приложений невозможно встроить фреймворк в пакет фреймворка. Есть ли у меня какой-либо другой вариант, кроме как сказать конечному пользователю, что он также должен установить RegexKit и любые другие зависимости? У меня такое чувство, что это снижает привлекательность простой в использовании встроенной платформы, которую я планировал создать.

Сейчас я чувствую, что у меня есть некоторые ограниченные возможности:

  1. Заставить пользователя установить зависимости.
  2. Напишите мои собственные классы, которые обеспечивают ту же функциональность - тьфу!
  3. Если это вообще возможно, попытаться статически связать сторонние фреймворки (возможно ли это?)

Мой конечный продукт в идеале представляет собой один пакет .framework, который использует @rpath и поэтому может быть установлен в системе или просто связан с приложением, которое его использует.

1 Ответ

0 голосов
/ 24 мая 2010

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

На самом деле я рассматриваю вопрос о том, чтобы сделать весь мой фреймворк загружаемым комплектом, а не фреймворком, так как при первых впечатлениях кажется, что вы можете достичь более или менее одного и того же, только то, как код загружается в память, отличается. Либо это, либо просто два файла: инфраструктура и пакет, необходимые для работы.

РЕДАКТИРОВАТЬ | Если у кого-то есть лучший ответ на первоначальный вопрос, я на некоторое время оставлю этот вопрос без ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...