Снятие профиля предоставления iOS

У моего клиента есть приложение iOS, в котором включена покупка In-app, Game-kit и Push-уведомления, в настоящее время он находится в магазине приложений. Я хотел бы отменить приложение, используя собственный сертификат распространения предприятия, чтобы протестировать внутренне, но все же иметь возможность тестировать службы, привязанные к исходному профилю подготовки. Это возможно?

Ответы

Ответ 1

Я закончил это, что представляет собой комбинацию: -

и

1) Создайте Плиссирование прав, предотвратите проблемы с Keychain и т.д.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>GBA9L2EABG.com.your.bundle.id.MyApp</string>
    <key>get-task-allow</key>
    <false/>
</dict>

2) Разархивируйте IPA

unzip Application.ipa

3) Удалите старую сигнатуру кода

rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true

4) Заменить профиль встроенного мобильного обеспечения

cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision"

5) Отменить

/usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/Application.app"

6) Re-package

zip -qr "Application.resigned.ipa" Payload

Ответ 2

Чтобы отменить приложение немного проще, чем сказал @Koko Carl, мы адаптировали floatsign script, который можно найти на https://gist.github.com/Weptun/5406993. Делает процесс очень простым:

sh floatsign.sh  ~/Downloads/File.ipa "iPhone Distribution: CertificateName" -b new.bundle.id -p /Path/To/Profile/Appstore.mobileprovision   App-resigned.ipa

Ответ 3

Просто добавлю немного ответа Koko Carl, если вы столкнетесь с проблемами с codign_allocate, когда вы переходите к шагу 5 (Resign), попробуйте экспортировать переменную оболочки CODESIGN_ALLOCATE и дать ей путь к распределению кодов в iPhone SDK, Для этого убедитесь, что у вас установлены инструменты командной строки xcode (Предпочтения/Обновления в Xcode)

Например, я получал ошибку:

me$ /usr/bin/codesign -f -v -s "iPhone Distribution: Some Company, Inc" --resource-rules "Payload/MyApp.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/MyApp.app"

Вывод:

Payload/MyApp.app: replacing existing signature
codesign_allocate: object: /Users/mimio/Downloads/Payload/MyApp.app/MyApp malformed object (unknown load command 33)
Payload/MyApp.app: object file format unrecognized, invalid, or unsuitable

Чтобы решить эту проблему, я установил переменную таким образом:

me$ export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

И затем снова выполнил мою команду:

me$ /usr/bin/codesign -f -v -s "iPhone Distribution: Some Company, Inc" --resource-rules "Payload/MyApp.app/ResourceRules.plist" --entitlements Entitlements.plist "Payload/MyApp.app"

И вуаля! Все работало корректно с новыми кодамизначениями

Ответ 4

При поиске это первый вопрос, показанный в потоке стека. Поэтому хотелось обновить последнее приложение iResign mac, что упрощает работу с графическим интерфейсом вместо команд в терминале.

iReSign

iReSign позволяет подключать пакеты приложений iDevice (.ipa), которые должны быть подписаны или списаны с цифровым сертификатом от Apple для распространения. Он также может создавать подписанные пакеты приложений iDevice (.ipa) из файлов .xcarchive. Этот инструмент предназначен для пользователей предприятий, для развертывания предприятия, когда человек, подписавший приложение, отличается от того, кто его разрабатывает.

Как использовать

iReSign позволяет вам повторно подписывать любой незашифрованный ipa файл с любым сертификатом, для которого у вас есть соответствующий закрытый ключ. iResign также может создать подписанный ipa файл из файла xcarchive.

Перетащите файл unsigned.ipa или .xcarchive в верхнюю часть окна или используйте кнопку обзора.

Введите полное имя сертификата из Keychain Access, например "iPhone Developer: имя Фамилия (XXXXXXXXXX)" в нижнем поле.

Нажмите "Переименовать"! и ждать. Отложенный файл будет сохранен в той же папке, что и исходный файл.

Источник: https://github.com/maciekish/iReSign