При попытке отправить свое приложение Expo iOS через EAS Submit я получаю следующую ошибку:
Asset validation failed Invalid entitlement for core nfc framework. The sdk version '17.4' and min OS version '13.4' are not compatible for the entitlement 'com.apple.developer.nfc.readersession.formats' because 'NDEF is disallowed'.
Ошибка никогда не меняется
Я пробовал добавить следующее в свой app.json по отдельности и вместе, но безрезультатно:
{
"expo": {
"ios": {
"entitlements": {
"com.apple.developer.nfc.readersession.formats": ["TAG"]
},
"infoPlist": {
"MinimumOSVersion": "14.0"
}
}
}
}
Я также понял, что «MinimumOSVersion», похоже, не меняет сообщение об ошибке.
Спасибо, я обновил свой вопрос. К сожалению, это не решило проблему :_)
Возможно, попробуйте установить минимальную цель развертывания с помощью свойств сборки: docs.expo.dev/versions/latest/sdk/build-properties/…
Похоже, вам нужно includeNdefEntitlement: false в параметрах плагина конфигурации: github.com/revtel/react-native-nfc-manager/blob/…
@Wodin, твой последний комментарий сработал, спасибо. Сделайте это ответом, если хотите получить награду.





Вам нужно includeNdefEntitlement: false в настройках плагина. Вот код плагина конфигурации, который использует эту опцию:
Вот описание возможных вариантов в Wiki:
Реквизит
Плагин предоставляет возможности для дополнительной настройки. Каждый раз, когда ты измените реквизиты или плагины, вам придется пересобрать (и
prebuild) родное приложение. Если дополнительные свойства не добавлены, будут использоваться значения по умолчанию.
nfcPermission(строка | false): устанавливает сообщение разрешения iOSNFCReaderUsageDescriptionнаInfo.plist. Установкаfalseпропустит добавление разрешения. По умолчаниюAllow $(PRODUCT_NAME) to interact with nearby NFC devices(Info.plist).selectIdentifiers(string[]): устанавливает для iOS com.apple.developer.nfc.readersession.iso7816.select-identifiers значение список поддерживаемых идентификаторов приложений (Info.plist).systemCodes(string[]): устанавливает iOS com.apple.developer.nfc.readersession.felica.systemcodes пользователю. предоставлен список системных кодов FeliCa™, которые поддерживает приложение. (Инфо.плист). Каждый системный код должен быть дискретным значением. Дикая карта значение (0xFF) недопустимо.includeNdefEntitlement(true | false): если явно установлено значениеfalse, удаляется правоNDEFв качестве обходного пути к активу . ошибка проверки неверных прав .
то есть вместо этого в app.json:
{
"expo": {
"ios": {
"entitlements": {
"com.apple.developer.nfc.readersession.formats": ["TAG"]
},
}
}
}
сделай это:
{
"expo": {
"plugins": [
[
"react-native-nfc-manager",
{
"includeNdefEntitlement": false
}
]
]
}
}
Пример из Вики:
{
"expo": {
"plugins": [
[
"react-native-nfc-manager",
{
"nfcPermission": "Custom permission message",
"selectIdentifiers": ["A0000002471001"],
"systemCodes": ["8008"],
"includeNdefEntitlement": false,
}
]
]
}
}
NDEF не является допустимым значением для этого права. Должно быть
TAG