iPhone

индекс
118,59

Решение проблем с Ad Hoc Distribution под Windows

Тема очень специфичная, поэтому надеюсь, что это кому-нибудь сэкономит время.

Перед тем как отправить свое приложение в Apple Store, решил протестировать
на друзьях, разослав им файл профайла и zip-архив приложения в формате Ad Hoc Distribution.

Казалось бы, что может быть проще перетаскивания этих файлов в iTunes и синхронизации
с iPhone. Но для пользователей Windows этого оказалось недостаточно…


Для пользователей Mac OS X все проходит без проблем, но вот Windows пользователям,
iTunes сообщит, что не может проверить приложение. Что же не так?

Оказалось, что если упаковывать приложение по мануалам, то есть используя Compress
в меню Finder, то в архив включается resource fork.

Проще говоря, это каталог вида "__MACOSX", который становится видимым после распаковки
архива вручную. В Mac OS X есть встроенная поддержка resource fork и он не считается
отдельной директорией, а вот в Windows все наоборот.

Поэтому iTunes под Windows просто игнорирует zip-архивы, включающие resource fork,
но есть два варианта решения:

  1. Распаковать zip-архив средствами Windows, удалить каталог "__MACOSX" и запаковать обратно
  2. Вручную создать zip-архив в Mac OS X с помощью консоли (zip -r ...)

Все операции производить над каталогом приложения: MyCoolApp.app

Update
Для гиков есть еще 3-й вариант — создание пакета ipa вручную:
  1. Создаем каталог, в котором будем формировать архив, наример «tmp»
  2. Создаем в каталоге «tmp» подкаталог «Payload», куда копируем каталог приложения,
    например MyCoolApp.app
  3. Выбираем любую красивую картинку в формате png и копируем в каталог «tmp»
    под именем «iTunesArtwork», без расширения ".png"

В итоге, должна получиться следующая структура каталога «tmp»:

Payload/MyCoolApp.app
iTunesArtwork

Далее в консоли переходим в каталог «tmp» и исполняем команду:

zip -r -y MyCoolApp.ipa .

Не забудьте вместо MyCoolApp подставить имя вашего приложения.
+1
15 апреля 2009, 19:56
4

комментарии (4)

0
EntropiouS #
Сегодня делал свой первый distribution-архив, ну и запаковал его по привычке muCommander'ом (не люблю finder, как и прочие древовидные файл-менеджеры =)) — так эта редиска почему-то не заархивировала линк на CodeResources, соответственно в аппстор архив не залился — пришлось перепаковывать finder'ом.
0
olegi #
«Ad Hoc Distribution» — а что это за тип распространения?
приложение ведь должно быть подписанным
0
Devd #
Приложение подписано Distribution сертификатом и распространяется с Ad Hoc профайлом,
в котором указан разрешенный список идентификаторов iPhone.
0
venture #
спасибо, добавил в мемориз=)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.