iPhone Проблема с установкой приложения .deb

Я столкнулся с очень странной проблемой. Я разработал для себя приложение, которое имеет следующие три файла

  • MyApp.app
  • MyAppDaemon.app
  • LaunchDaemon.plist

Когда я копирую каждый файл в определенную папку с помощью ssh, мое приложение работает отлично.

  • MyApp.app в /Applications
  • MyAppDaemon.app в /private/var/mobile/
  • LaunchDaemon.plist в /System/Library/LaunchDaemons/

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

Теперь проблема в том, что когда я пытаюсь упаковать файлы в файл .deb, а затем передать их на iPhone, а затем с помощью терминала я устанавливаю его [dpkg -i MyApp.deb], файлы копируются нормально в папки, которые я указал ранее, но мое приложение не Работа. Я проверил все разрешения, все еще не работает.

Это как-то странно, все делается так же, как я использую ssh, но в случае с файлом .deb он не работает, однако отлично работает, если я копирую файлы по отдельности.

Любые советы по этому поводу??


person raziiq    schedule 09.02.2010    source источник
comment
Есть ли какая-то конкретная причина, по которой вы не следуете официальным методам разработки приложений для iPhone и выбрали путь джейлбрейка...?   -  person Jasarien    schedule 09.02.2010
comment
Судя по имени MyAppDaemon.plist, он хочет запустить что-то в фоновом режиме, что запрещено SDK. Но в любом случае, это его дело, хочет он следовать официальным методам или нет.   -  person benzado    schedule 10.02.2010
comment
Да, бензадо прав. Официальный SDK не разрешает мне LaunchDaemons, а моему приложению нужен LaunchDaemon.   -  person raziiq    schedule 10.02.2010


Ответы (5)


Спасибо за ответы, ребята, я нашел решение своей проблемы, хотя до сих пор не знаю, почему возникла проблема. Вот что я сделал

Я упаковал свой AppDaemon в папку ресурсов MyApp в xcode, а в файле postinst DEBIAN я перемещал эту папку в /private/var/mobile, что на самом деле вызывало проблему. Папка копировалась в /private/var/mobile, но может быть не со всеми разрешениями и владельцами. Итак, что я сделал, прежде чем упаковать его в файл .deb, я удалил AppDaemon из папки ресурсов MyApp в xcode и сделал его отдельным приложением. Затем я сделал эту файловую архитектуру для упаковки в .deb.

+- MyApp
   +- Applications
      +Myapp.app
   +-DEBIAN
    -control
    -postinst
    -postrm
   +-System
     +-Library
       +-LaunchDaemons
         +- com.myLaunchDaemon.plist
   +-private
     +-var
       +-mobile
         +- AppDaemon.app

Затем я упаковал папку с командами .deb, как это saurik проинструктировал на своем сайте.

Все прошло хорошо, проблема решена. Однако я до сих пор не знаю, почему возникла проблема?

person raziiq    schedule 10.02.2010

Может быть, установка .deb выталкивает файлы с другим владельцем?

person jessecurry    schedule 09.02.2010

Ваша проблема, скорее всего, связана с процессом создания .deb. Вы следовали инструкциям на сайте saurik или другим методом? http://www.saurik.com/id/7

person Aaron Ash    schedule 09.02.2010

У меня нет большого опыта в создании deb, но, как и jessecurry, я думаю, что проблема может быть в разрешениях, если вы можете попробовать запустить приложение из терминала и посмотреть, что вы получите.

person Roman A. Taycher    schedule 09.02.2010

Дикое предположение (я не имел дело с разработкой взломанного кода), но, возможно, символическая ссылка разыменовывается, когда вы упаковываете как файл .deb?

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

Даже если вы не подписываете код, попробуйте распаковать файл deb и сравнить результат с исходным пакетом приложения, чтобы увидеть, есть ли разница.

person benzado    schedule 09.02.2010