Подтвердить что ты не робот

Отправить приложение OSX со вспомогательным приложением в его комплекте

Я с ума схожу с этой проблемой! У меня есть приложение, содержащее простое приложение-помощник, которое управляет элементом входа в основное приложение.

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

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

Ошибки:

  • Недопустимый профиль подготовки. Профиль предоставления, включенный в комплект, недействителен.

  • Недействительные права на подписание кода. Права в вашей сигнатуре пакета приложений не соответствуют той, которая содержится в профиле подготовки. Пакет содержит ключ, который не входит в профиль подготовки 'com.apple.application-identifier' в 'myapp.app/Contents/Library/LoginItems/helper.app'

  • Недействительные права на подписание кода. Права в вашей сигнатуре пакета приложений не соответствуют той, которая содержится в профиле подготовки. Пакет содержит ключ, который не включен в профиль подготовки 'com.apple.application-identifier' в 'myapp.app/Contents/MacOS/myapp'

4b9b3361

Ответ 1

Для всех, кто сталкивается с этой проблемой, вам больше не нужно кодовое имя вспомогательного приложения, просто удалите "embedded.provisionprofile" из вспомогательного приложения в xarchive, и вы не можете представить никаких проблем.

Ответ 2

Единственное решение, которое, похоже, решает эту проблему, - это код и песочница приложения-помощника из Xcode, а затем:


Переконфигурировать приложение-помощник с терминала

codesign -f -s "3rd Party mac Developer Application:" -i "com.bundle.YOUR.HELPER" --entitlements path/to/helper/entitlements YEOR-HELPER.app



Удалите профиль подготовки из приложения-помощника, добавив "Запустить script" в "Фазы сборки"

rm"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/Library/LoginItems/YOUR-HELPER.app/Contents/embedded.provisionprofile"

С помощью этого решения мы правильно представили наше приложение.

Ответ 3

У меня была 3-я ошибка, когда я случайно включил в свою цель некоторые сторонние .a файлы. (Они необходимы для распространения не в App Store, но я забыл исключить их для сборки App Store). Ошибка не была слишком полезной при отслеживании этого!

Ответ 4

Наконец-то я смог решить эту проблему, удалив файл embedded.provisionprofile из вспомогательного приложения, добавив следующий запуск script:

if [ -f "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/embedded.provisionprofile" ];
then
    rm "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/embedded.provisionprofile"
    echo "Removed embedded provisioning profile."
else
    echo "No profile found"
fi