Ответы на этот вопрос немного устарели и не содержат потенциально важных шагов, поэтому это обновленное руководство по установке приложения от внешнего разработчика.
----- Как отказаться от приложения для iOS -----
Допустим, вы получили приложение (например, MyApp.ipa) от другого разработчика и хотите иметь возможность установить и запустить его на своих устройствах (например, с помощью ideviceinstaller ).
Подготовка новых подписывающих активов
Первый шаг - получить Профиль обеспечения , который включает в себя все устройства, на которые вы хотите установить и запустить. Убедитесь, что профиль содержит сертификат, который вы установили в Keychain Access (например, iPhone Developer: Some Body (XXXXXXXXXX)). Загрузите профиль (MyProfile.mobileprovision), чтобы заменить профиль, встроенный в приложение.
Далее мы собираемся подготовить файл разрешений, который будет включен в подпись. Откройте свой терминал и выполните следующее.
$ security cms -D -i path/to/MyProfile.mobileprovision > provision.plist
Это создаст XML-файл, описывающий ваш Provisioning Profile . Далее мы хотим извлечь права в файл.
$ /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' provision.plist > entitlements.plist
Заменить профиль обеспечения и уйти в отставку
Если вы работаете с файлом .ipa , сначала разархивируйте приложение (если у вас есть .app , вы можете пропустить этот шаг).
$ unzip MyApp.ipa
Ваш рабочий каталог теперь будет содержать Payload/
и Payload/MyApp.app/
. Затем удалите старые файлы подписи кода.
$ rm -rf Payload/MyApp.app/_CodeSignature
Замените существующий профиль обеспечения (т. Е. Embedded.mobileprovision) своим собственным.
$ cp path/to/MyProfile.mobileprovision Payload/MyApp.app/embedded.mobileprovision
Теперь подпишите приложение с помощью сертификата, включенного в ваш профиль обеспечения, и созданного вами ранее файла authorlements.plist.
$ /usr/bin/codesign -f -s "iPhone Developer: Some Body (XXXXXXXXXX)" --entitlements entitlements.plist Payload/MyApp.app
ВАЖНО: Вы также должны отказаться от всех платформ, включенных в приложение . Вы найдете их в Payload/MyApp.app/Frameworks
. Если приложение написано на Swift или если оно включает какие-либо дополнительные фреймворки, они должны быть отклонены, иначе приложение будет установлено, но не запущено.
$ /usr/bin/codesign -f -s "iPhone Developer: Some Body (XXXXXXXXXX)" --entitlements entitlements.plist Payload/MyApp.app/Frameworks/*
Теперь вы можете разархивировать приложение.
$ zip -qr MyApp-resigned.ipa Payload
Выполнено
Теперь вы можете удалить каталог Payload
, поскольку у вас есть исходное приложение (MyApp.ipa) и ваша отказавшаяся версия (MyApp-resigned.ipa). Теперь вы можете установить MyApp-resigned.ipa на любое устройство, включенное в ваш профиль обеспечения.