2012-06-27 6 views
17

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

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

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

Ошибки:

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

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

  • Invalid Code Signing Возмещений. Права в вашей сигнатуре пакета приложений не соответствуют той, которая содержится в профиле подготовки. Пучок содержит ключ, который не включен в профиле инициализации «com.apple.application идентификатора» в «» myapp.app/Contents/MacOS/myapp

+0

вы используете для хранения ICloud в вашем приложении? – Tim

+0

Нет, я не использую его – MatterGoal

+0

Но тогда вам не нужен профиль подготовки?Возможно, есть записи в списке «iCloud Containers» ваших целевых итоговых настроек вашего приложения (основного/вспомогательного)? – Tim

ответ

20

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

+4

Это сработало для меня. И основное, и вспомогательное приложение - это код, подписанный. Как основное, так и вспомогательное приложение имеет профили распределения распределения с отдельными идентификаторами пакетов. Первоначально я мог создавать и архивировать, но столкнулся с проблемами, проходящими проверку. После архивирования я выбрал архив и показал в Finder. Затем вручную удалите файл embedded.provisionprofile из приложения HELPER глубоко внутри архива. Затем вернитесь в Xcode, повторите проверку и отправьте очищенный архив. –

+0

Спасибо, Шон! Работал для меня. – Todd

+0

Спасибо, Шон, ты просто убил мою головную боль! –

6

Единственное решение, которое, кажется, решить эту проблему был CodeSign и песочницами вспомогательного приложения из Xcode, а затем:


Re-CodeSign Утешителя приложение от терминала

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



Удалить профиль обеспечения из Helper приложения, добавив "Выполнить скрипт" в "Build Phases"

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

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

+1

Как насчет автоматического оба? 'гт "$ {BUILT_PRODUCTS_DIR}/$ {CONTENTS_FOLDER_PATH} /Library/LoginItems/YOURHELPER.app/Contents/$ {EMBEDDED_PROFILE_NAME}"' и ' CodeSign -f -s "$ {} CODE_SIGN_IDENTITY" -i«ком .identifier.YOURHELPER "--entitlements" $ {SOURCE_ROOT} /Path/To/YOURHELPER.entitlements "" $ {BUILT_PRODUCTS_DIR}/$ {CONTENTS_FOLDER_PATH} /Library/LoginItems/YOURHELPER.app "' –

+1

Вам нужно явно координировать вспомогательное приложение снова? У моего вспомогательного приложения есть свой собственный BundleID, и у меня нет профиля подготовки производства. Тем не менее я мог архивировать основное приложение, и он прошел тест iTC (статус изменен на «ожидание проверки»). Может быть, он будет отклонен во время проверки Apple? : S –

+0

Большое спасибо, ты сделал мой день. Я всю неделю борется с этими чертовыми ошибками. Я бы дал вам +100, если бы мог: D – Vlad

1

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

0

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

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