Как создать свой собственный пакет в Xcode, для приложения iPhone - PullRequest
11 голосов
/ 05 апреля 2010

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

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

Мои вопросы:

  • Какие шаги я должен выполнить, чтобы создать пакет для любого типа приложения?
  • о чем нужно заботиться при создании пакета?

Ответы [ 2 ]

11 голосов
/ 05 апреля 2010

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

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

#!/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. Я запускаю этот сценарий из отдельной фазы сборки в проектах, которые импортируют пакет, чтобы изменения автоматически отслеживались.

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

8 голосов
/ 20 декабря 2012

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

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

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

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

Источник: https://stackoverflow.com/a/5277452/736384

...