Наше приложение использует CoreNFC для сканирования тегов NFC или вы можете использовать QR, если NFC не поддерживается. Это сработало очень хорошо, и мы смогли запустить приложение в симуляторе для тестирования (пользовательского интерфейса).
До сборки Xcode12 / iOS14 GM. В iOS13 (или ниже) у нас не было бы проблем с запуском на симуляторе.
Но в Xcode12, запустив его на симуляторе iOS14 iPhone11, мы получим следующее:
dyld: launch, loading dependent libraries
DYLD_SHARED_CACHE_DIR=/Users/xxx/Library/Developer/CoreSimulator/Caches/dyld/19G73/com.apple.CoreSimulator.SimRuntime.iOS-14-0.18A372
DYLD_ROOT_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot
DYLD_LIBRARY_PATH=/Users/xxx/Library/Developer/Xcode/DerivedData/xxx-awnlestrbvesqqbynrhmluzhbcsc/Build/Products/Debug-iphonesimulator:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/introspection
DYLD_INSERT_LIBRARIES=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libBacktraceRecording.dylib:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSi
dyld: Library not loaded: /usr/lib/libnfshared.dylib
Referenced from: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreNFC.framework/CoreNFC
Reason: no suitable image found. Did find:
/usr/lib/libnfshared.dylib: mach-o, but not built for platform iOS-sim
То, что симулятор вылетает из строя, имеет для меня смысл, поскольку симулятор не может сканировать теги NFC, но вот что я сделал:
- Я уже связался с платформой CoreNFC и сделал ее необязательной, как описано здесь: Xcode 10, приложение Swift 4 с CoreNFC выдает сбой на iOS 12
- Поместите
#if canImport(CoreNFC)
вокругimport CoreNFC
и его базового кода NFC. - Очистка папки сборки и удаление производных данных.
- Создан пустой проект Xcode12: https://github.com/basvankuijck/CoreNFCCrashProject, результат тот же.
- Удалены все перечисленные симуляторы и повторно добавлен один.
- Добавлен
-weak_framework "CoreNFC"
в настройку сборки Other Linker Flags
Очевидно, что удаление любых ссылок на структуру CoreNFC путем комментирования участков кода и удаления ссылки на платформу приводит к исчезновению сбоя. Но это неподходящий вариант.
Запуск его из Xcode12 на «устройстве» симулятора iOS13 работает отлично. Поэтому я не могу понять, что вызывает такое поведение