невозможно установить пакет OSX, созданный с помощью productbuild - PullRequest
0 голосов
/ 18 ноября 2011

Я новичок во всем мире разработки и развертывания Mac.Я пытаюсь создать приложение OSX и загрузить его в магазин приложений, используя Itunes Connect и Application Loader.Я использую Mac OSX версии 10.6.8

Я подписал свое приложение под кодом:

codesign -s "3rd Party Mac Developer Application: <company name>" <my app name>.app

Затем я собрал пакет установщика, используя:

productbuild --component <my app name>.app /Applications --sign "3rd Party Mac Developer Installer: <company name>" <my app name>.pkg

Во времяCodeSign и Productbuild я не получаю ошибок, и приложение работает без проблем.

К сожалению, я не могу установить пакет.Если я запускаю pkg в командной строке, используя:

sudo installer -store -pkg <my app name>.pkg -target /

, я получаю следующий вывод:

installer: <my app name>.pkg has valid signature for submission
installer: Installation Check: Passed
installer: Volume Check: Passed
installer: Bundle <my bundle name> will be relocated to <path to my app>/<my app name>.app
installer: Starting install
installer: Install 0.0% complete
installer: Install 5.0% complete
[...]
installer: Install 95.0% complete
installer: Install failed: Beim Extrahieren von Dateien aus dem Paket <my app name>.pkg“ ist ein Fehler aufgetreten.

Ошибка означает «Ошибка при извлечении файлов пакета ...»

Запись в файле installer.log, касающаяся неудачной установки:

Install Failed: PKG: extracting "<my bundle name>"
Error Domain=PKInstallErrorDomain Code=110 UserInfo=0x1004687b0 "Beim Extrahieren von Dateien aus dem Paket „<my app name>.pkg“ ist ein Fehler aufgetreten." Underlying Error=(Error Domain=BOMCopierFatalError Code=0 UserInfo=0x10c9af710 "Der Vorgang konnte nicht abgeschlossen werden. cpio read error: Unknown error: 0") {
    NSFilePath = "/var/folders/zz/zzzivhrRnAmviuee+++++++++++/Cleanup At Startup/PKInstallSandbox-tmp/Root/Applications";
    NSLocalizedDescription = "Beim Extrahieren von Dateien aus dem Paket \U201e<my App name>.pkg\U201c ist ein Fehler aufgetreten.";
    NSURL = "#<my bundle name>.pkg -- file://localhost/<path to my app>/<my app name>.pkg#Distribution";
    NSUnderlyingError = "Error Domain=BOMCopierFatalError Code=0 UserInfo=0x10c9af710 \"Der Vorgang konnte nicht abgeschlossen werden. cpio read error: Unknown error: 0\"";    

Я думаю, это как-то связано с ошибкой чтения cpio, но я здесь потерян ...

Ответы [ 2 ]

1 голос
/ 25 августа 2014

Проблема в том, что installd находит ваш .app в другом месте на диске и приходит к выводу, что он уже установлен, но перемещен. Он находит это в вашей сборочной директории, верно? По крайней мере, это был мой случай.

Решением этой проблемы будет:

  1. Сборка установщика;
  2. Сжатие всех ресурсов, использованных при создании этой сборки, которые вы, возможно, захотите заархивировать для этой конкретной сборки (для обозначения отчета о сбоях необходимо иметь приложение вне пакета), включая пакет .app, кроме фактического установщик.

Таким образом, точно такой же двоичный файл , который устанавливается (при запуске установщика), не будет найден где-либо на диске во время установки (он заархивирован). И installd не будет заботиться об отладочной сборке приложения, которую можно найти в ~ / Library / Developer / Xcode / DerivedData / или в любом другом месте на диске.

0 голосов
/ 19 ноября 2011

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

...