В процессе разработки приложения меня попросили перейти на другую учетную запись разработчика, что привело к добавлению нового идентификатора приложения и созданию новых профилей обеспечения для adhocs в новой учетной записи, а также к обновлению настроек XCode до подписать с новой идентификацией.
Проблема в том, что где-то каким-то образом XCode поддерживает старый профиль обеспечения.
т.е. У меня был профиль распространения "СТАРЫЙ". Я создал «NEW». Я удалил «СТАРЫЙ» из Организатора в XCode. Когда я собираю и архивирую, «OLD» REAPPEARS в XCode Organizer, и adhoc не работает для людей.
Я пытался сделать
grep -r "AD67EE83" *
в каталоге соединительных линий приложения, где «AD67EE83» - это идентификатор профиля в Организаторе. Я получаю кучу результатов в каталоге сборки, которые выглядят так:
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:N/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:CProcessProductPackaging "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" /Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:x/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision
build/myapp.build/Adhoc-iphoneos/myapp.build/build-state.dat:lSLF07#2@192"ProcessProductPackaging "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision303990620#303990620#0(0"0(0#0#108"/Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/myapp.app/embedded.mobileprovision8628715392#445" cd /Users/me/Docume <com.apple.tools.product-pkg-utility> "/Users/me/Library/MobileDevice/Provisioning Profiles/AD67EE83-BLAB-LABLA-BLAB-LABLABLABLAB.mobileprovision" -o /Users/me/Documents/svn/myapp/trunk/build/Adhoc-iphoneos/m0#p.app/embedded.mobileprovision
(я заменил фактический идентификатор на BLABLA, если вам интересно об этом.)
В любом случае, СТАРЫЙ извлекается откуда-то, восстанавливается и используется. Безумный. Я удалил в Организаторе и искал на моем диске ту вещь AD ... и нашел несколько файлов в / Users / me / Library / MobileDevices / Provisioning Profiles / с такими же именами.
Я удалил их, и он все еще извлекает их откуда-то, когда я строю и архивирую. Фактически, эти файлы также помещаются обратно в этот каталог.
Я просмотрел все настройки, пытаясь найти ссылку на этот профиль AD ..., но нигде нет.
OLD привязан к «com.oldcorp», а NEW привязан к «com.newcorp» - выполнение grep «newcorp» показывает
myapp-Info.plist: <string>com.newcorp.myapp</string>
Выполнение grep 'oldcorp' не дает результатов.
Есть идеи, где это может быть ссылка на этот старый недействительный сертификат? (Он даже удален с портала разработчика, поэтому я не думаю, что он может загрузить его непосредственно из Apple.)
Обновление: создание и архивация ЛЮБОГО проекта приводит к воскрешению профиля распространения "oldcorp", поэтому он не связан с моим проектом. Проблема остается, хотя - adhoc не работает.
Решено это путем воссоздания проекта и ручного ввода кода. Долгосрочное решение находится в ответе ниже.