Подтвердить что ты не робот

Как создать собственный пакет в Xcode, для приложения iPhone

У меня возникают трудности с созданием пакета для моего приложения и размещением файлов в комплекте.

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

Мои вопросы:

  • Какие шаги следует предпринять для создания пакета для любого приложения?
  • Что нужно заботиться при создании пакета?
4b9b3361

Ответ 1

Прежде всего, поскольку ваш вопрос помечен iPhone, вы можете включать только код в свои пакеты на iPhone. Таким образом, вы можете использовать пакеты только для упаковки изображений и звуковых файлов и других статических данных.

Когда вы создаете новый проект в XCode, существует возможность сделать целевой набор (в рамках Framework и библиотеки), но набор активов - это просто каталог с суффиксом .bundle. Я создаю мой с помощью этого небольшого script:

#!/bin/bash
echo "Building assets bundle."
if [ -d ./MyAssets.bundle ]; then
   rm ./MyAssets.bundle/*
else
   mkdir ./MyAssets.bundle
fi
find ./assets -type f -print0 | xargs -0 -J% cp % ./MyAssets.bundle

(Я не хакеры bash, поэтому это, вероятно, возможно улучшить бесчисленными способами. Предложения приветствуются!)

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

Если вы хотите узнать, как создавать фреймворки, это немного сложнее (вы должны следовать определенным соглашениям и включать информацию в plists), но для пакетов iPhone это почти все, что вам нужно знать и делать.

Ответ 2

Вы тоже можете это сделать:

Создайте папку в finder, добавьте в нее файлы, переименуйте ее в bundlename.bundle

перетащить в Xcode - успех!

для доступа, используйте форму PathToMainBundle + "/bundlename.bundle"

Источник: fooobar.com/info/107744/...