#ios #xcode
#iOS #xcode
Вопрос:
Я получаю следующую ошибку во время сборки выпуска:
ошибка: файл прав доступа «projectname.entitlements» был изменен во время сборки, которая не поддерживается. Вы можете отключить эту ошибку, установив для параметра ‘CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION’ значение ‘YES’, однако это может привести к тому, что подпись кода встроенного продукта или профиль подготовки будут содержать неправильные права доступа.
Я не могу найти CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION
в документации Google или Apple, есть идеи, где я должен это использовать?
Ответ №1:
Я исправил это с помощью Product > Clean Build Folder
.
Комментарии:
1. Это сработало для меня, когда я столкнулся с ошибкой после добавления нового права в мое приложение
2. это должен быть принятый ответ. установка CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION в значение yes может привести к ошибкам в будущем
3. Это должен быть правильный ответ, как указано в @LouisCouture
Ответ №2:
Столкнулся с той же проблемой. Вы можете установить CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION
в качестве пользовательского параметра в настройках сборки.
- В Xcode щелкните целевой объект вашего проекта и выберите Настройки сборки.
- Нажмите » » под настройками сборки, а затем «Добавить пользовательский параметр»
- Установите
CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION
значениеYES
для отладки и выпуска (или любых других схем, которые вам нравятся)
Комментарии:
1. Хотя это может привести к исчезновению ошибки, вероятно, это НЕ то, чего вы действительно хотите. Apple предупреждает вас, что этот параметр небезопасен: … это может привести к тому, что подпись кода встроенного продукта или профиль подготовки будут содержать неправильные права доступа.
Ответ №3:
Прежде чем вы начнете изменять параметры сборки, вы также можете попробовать удалить производные данные в вашем каталоге установки или сборки.
Если кэш проекта находится в стандартном расположении ниже, вы можете выполнить очистку Xcode, и он удалит эти данные.
/Users/your_user_name/Library/Developer/Xcode/DerivedData/Path_To_Project/
Если вы определили свои собственные пути установки или сборки, перейдите в этот конкретный каталог и удалите этот кеш. Xcode должен предоставить вам путь, если произойдет эта ошибка.
Комментарии:
1. Это помогло мне. Я немного нервничал по поводу установки флага, разрешающего изменение прав доступа, потому что мое приложение этого не требовало, и это кажется немного «тяжелым» подходом. В любом случае, странная ошибка.
Ответ №4:
Если Clean Build Folder
это не поможет, убедитесь, что у вас не одно и то же рабочее пространство / проект, открытый в нескольких Windows
или Window Tabs
!
(Xcode позволяет открывать несколько вкладок через File -> New -> Window Tab
)
Комментарии:
1. Очистка ничего не дала, но закрытие всех моих вкладок исправило это. Спасибо!
Ответ №5:
На самом деле я столкнулся с точно такой же ошибкой во время компиляции, когда я сделал следующее в клиенте GitHub:
**Discarded changes in my Git Repo for an entitlement file.**
Это обязательно, как предлагалось выше, «Очистить папку сборки» или добавить пользовательский ключ CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION
к YES.
Я знаю, что на это был дан ответ выше, но я хотел задокументировать шаги воспроизведения, которые привели к вышеупомянутой ошибке.
Ответ №6:
Как и другие публикации, это решается путем очистки папки сборки или установки CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION
на YES
.
Однако после очистки папки сборки одна сборка будет выполнена успешно, но все последующие будут завершаться с той же ошибкой прав доступа, пока вы снова не очистите папку сборки. Очевидно, что это не оптимально, поскольку добавляет ~ 2-3 минуты на сборку даже для изменения одной строки.
Второе решение, включающее CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION
, полностью устраняет ошибку прав доступа, но установка на физические устройства завершается сбоем при каждой другой сборке, пока папка сборки не будет очищена. На самом деле тот же результат.
Кто-нибудь на самом деле знает, почему это происходит в первую очередь? Я проверил свой файл прав доступа до и после сборки.. Ничего не меняется. Это просто ошибка xcode, которая стоит нам всех часов нашей жизни?