Mac App Store поврежден сообщение об ошибке

#mac-app-store

#mac-app-store

Вопрос:

У меня есть приложение, которое я отправляю в Mac App Store. Он подписывает код без каких-либо проблем, создавая файл .pkg, как и ожидалось…

 codesign -s "$app_cert" -f "$app_name.app"
codesign -d -vvvv "$app_name.app"
productbuild --component "$app_name.app" /Applications --sign "$installer_cert" "$app_name.pkg"
  

… и, кажется, все работает нормально, ошибок нет, все проверяется нормально. Затем я тестирую установку приложения, используя следующее…

 sudo installer -store -pkg MyApp.pkg -target /
  

… кажется, все идет нормально. Затем я дважды щелкаю по приложению в папке «Мои приложения», и оно просит меня ввести данные моей учетной записи itunes. Я использую тестовую учетную запись пользователя, которую я настроил в iTunes Connect, а затем получаю эту ошибку:

 "MyApp" is damaged and can’t be opened. Delete "MyApp" and download it again from the App Store.
  

Что действительно странно, так это то, что это обновление для MyApp. При первой отправке все работало нормально. Только сейчас я вижу эту проблему, но я не могу понять, что не так. В журналах консоли нет ошибок.

Я трижды проверил, и на всем моем диске нет другого MyApp.app, поскольку это, как известно, вызывает проблемы.

Кто-нибудь знает, что происходит? Я ушел в отставку и упаковал это приложение 10 раз без изменений. Я пробовал устанавливать с нескольких разных компьютеров, та же ошибка. Ничего существенного не изменилось в моей среде сборки с момента первоначальной отправки, которую work find.

Ответ №1:

У меня была та же проблема.

Проблема заключалась в том, что у нас был номер версии приложения в двух местах — в проекте XCode, а также в коде проверки квитанции; когда мы обновили версию проверки квитанции, чтобы она соответствовала проекту XCode, это сработало.

Ответ №2:

Сообщение об ошибке может появиться, даже если код проверки вашей квитанции правильный, по-видимому, потому, что проблема с кэшированием может привести к загрузке тестовой квитанции с неправильным номером версии.

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