В нашей среде мы делим ресурсы на несколько проектов и платформ. При создании для iPhone требуется только часть этих ресурсов. Поскольку это подмножество по-прежнему значительным, у нас есть файл манифеста, в котором перечисляется то, что происходит, что ограничивает копию. У нас есть собственный скрипт Python, который выполняет копию, обновляя только те файлы, которые изменились.Принудительное обновление подписи кода в Xcode
Я создал фазу сценария запуска в Xcode для вызова этого скрипта, но у меня есть несколько вопросов, связанных с фазой подписи кода.
Поскольку мы используем отдельный файл манифеста, моя сценарий запуска сценария не может указывать какой-либо файл ввода/вывода в графическом интерфейсе Xcode: он варьируется в зависимости от того, что содержится в каталогах в то время. Побочным эффектом этого является то, что Xcode не знает, какие файлы будут скопированы (например, события «под крышкой»).
Проблема заключается в том, что если я только модифицирую файлы ресурсов между сборками, восстановление моего приложения правильно вызовет мой скрипт, который копирует соответствующие файлы, только Xcode не перезапустит шаг подписи кода и не будет повторно -копируйте мое приложение на свое устройство.
Я нашел это странным, учитывая, что мои файлы ресурсов действительно перечислены в файле <app_bundle>/_CodeSignature/CodeResources
, но похоже, что Xcode определяет независимые от него требования к перестройке (скорее всего, только файлы, перечисленные в файле проекта), что понятно.
Я пробовал играть в трюки, прикоснувшись к каталогу своего приложения или самому двоичному файлу приложения, но он не совсем работает. Прикосновение к каталогу пакетов приложения не похоже на то, что прикосновение к двоичному файлу будет работать, но НЕ ДЛЯ ТЕКУЩЕГО СТРОЕНИЯ, только последующее (поскольку ни один входной файл не требует перекомпиляции, Xcode не сообщает, что новый бинарный файл не генерируется, а следующий времени, он действительно обнаружит, что двоичный код был затронут, и повторите как подписание кода, так и в).
Тем не менее, это весьма несовершенны обходной путь, потому что:
- Имея в два раза построить ошибка склонными
- Мой файл dSYM будет понапрасну получить регенерировать
Кто-нибудь знает какой-либо способ принудительно выполнить шаг подписи кода в Xcode (из сценария запуска или в другом месте)?
Спасибо. Оно работает! – jhoule
я в конечном итоге делает что-то эквивалентное: – jhoule
'экспорта CODESIGN_ALLOCATE = "$ {PLATFORM_DEVLOPER_BIN_DIR}/codesign_allocate"' ' – jhoule