Xcode 10, приложение Swift 4 с CoreNFC вылетает в обзоре на iOS 12
Мое приложение, созданное для iOS, отправленное в Appstoreconnect, отклоняется при запуске в процессе проверки.
Мое приложение использует CoreNFC Framework. Так что это приложение совместимо с устройствами iPhone 7, 8, X.. с iOS 11 или выше. Приложение было проверено мной на физическом устройстве, работает нормально. Кроме того, запуск на симуляторах был нормальным (функции NFC не работали, но приложение не зависало).
Crashlog содержит информацию, где я вижу, что CoreNFC Framework не был загружен при их запуске:
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Description: DYLD, Library not loaded: /System/Library/Frameworks/CoreNFC.framework/CoreNFC | Referenced from: /var/containers/Bundle/Application/223F146A-DF69-43CC-89A1-CFDF323ACB45/SharpEnd NFC Scanner.app/SharpEnd NFC Scanner | Reason: image not found
Я пытался встроить CoreNFC framework во вкладку General приложения - Embedded Binaries, но это дает мне ошибки сборки, поэтому я не уверен, что это возможно.
Итак, мои вопросы:
- Можно ли встраивать каркас CoreNFC в секцию Embedded Binaries в Xcode?
- Можно ли проверить, поддерживает ли устройство этот фреймворк перед его загрузкой?
Любая помощь или обходной путь будет высоко ценится..
3 ответа
Зайдите в Настройки проекта -> Общие -> Связанные фреймворки и библиотеки
Добавить CoreNFC.framework со статусом необязательно
У меня была такая же проблема с моим NFC Reader. Похоже, что iOS12 не включает CoreNFC для более старых устройств (iPhone 6s, SE и старше).
Мне удалось это исправить с помощью проверок устройства. В случае, если старое устройство пытается открыть приложение, я показываю совершенно другую раскадровку с сообщением об ошибке, что устройство не поддерживается.
Чтобы увидеть пример, вот ссылка на приложение: https://itunes.apple.com/us/app/nfc-reader-for-iphone/id1249686798
В моем случае мы не могли ограничиться только устройствами с NFC, потому что мы загрузили исходную сборку приложения без этого требования, и Apple не позволяет вам добавлять новые ограничения для новых версий приложений, которых не было в предыдущих версиях.
Загрузка новой сборки с помощью CoreNFC.framework в разделе "Настройки проекта" -> "Основные" -> "Связанные фреймворки и библиотеки", пока я набираю этот текст, обновит этот комментарий, как только мы узнаем, сработало ли это.
редактировать это работало.:)