Я искал часы для этой проблемы ... Это решение, как отказывающее приложение работало с нашим приложением.Мы получили файл IPA от клиента и отказались от него с нашим сертификатом.Доступ к связке ключей работает.В нашем случае не изменился bundle.id.
Какие файлы вам нужны:
- MyApp.ipa
- MyApp_EnterpriseDistribution.mobileprovision (профиль обеспечения корпоративной дистрибуции)
- Entitlements.plist
Все файлы находятся в одном каталоге.Если файлы были расположены в разных папках, вы должны изменить путь в коде
Сначала мы создаем «Entitlements.plist».Создайте текстовый файл и вставьте следующий код.Введите идентификатор приложения.
<?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>
</plist>
Сохраните этот файл и переименуйте его в: «Entitlements.plist»
Откройте терминал, перейдите в папку и выполните эти коды, замените «MyApp»«с вашим именем приложения и« ИМЯ ВАШЕГО ... »с названием вашего сертификата и« MyApp_EnterpriseDistribution »для вашего файла обеспечения:
unzip MyApp.ipa
//we didn't used the following, maybe necessary...
//rm -r "Payload/MyApp.app/_CodeSignature" "Payload/MyApp.app/CodeResources" 2> /dev/null | true
cp MyApp_EnterpriseDistribution.mobileprovision Payload/MyApp.app/embedded.mobileprovision
codesign -f -s "iPhone Distribution: NAME OF YOUR DISTRIBUTION CERTIFICATE" --resource-rules Payload/MyApp.app/ResourceRules.plist --entitlements Entitlements.plist Payload/MyApp.app
zip -qr MyApp-resigned.ipa Payload/
И теперь у вас есть Ipa с вашим сертификатом.
подсказка: сертификат с таким именем должен быть уникальным в вашей цепочке для ключей ...