Файл '' NBPhoneNumberDesc.h 'не найден` после обновления до Xcode 10.2, Swift 5 - PullRequest
2 голосов
/ 03 июля 2019

Я использую pod chronotruck / FlagPhoneNumber Я только что обновил с High Sierra/Xcode 10.1/Swift 4.2/Cocoapoods v-1.5.3 до Mojave 10.14.15/Xcode 10.2.1/Swift 5/Cocoapoods v-1.7.3 и не могу собрать, потому что внутри файла NBRegExMatcher.m я получаю ошибку

Файл 'NBPhoneNumberDesc.h' не найден

enter image description here

Все работало нормально до обновления, и у меня никогда не было ни одной из этих ошибок.

Внутри Podfile.lock есть это:

- FlagPhoneNumber (0.7.6):
- FlagPhoneNumber/libPhoneNumberiOS (= 0.7.6)
- FlagPhoneNumber/libPhoneNumberiOS (0.7.6)

Странно то, что есть несколько других файлов из этого модуля, которые также используют модуль #import "NBPhoneNumberDesc.h", но все они работаютхорошо, и нет никаких ошибок

enter image description here

Я пытался этот ответ , но NBPhoneNumberDesc.h уже был в разделе Public:

enter image description here

Я также попытался этот ответ , чтобы SWIFT_OBJC_INTERFACE_HEADER_NAME соответствовал заголовку моста моего проекта, но ничего не было

Внутри NBRegExMatcher.m файла (где происходит ошибка) я закомментировал #import NBPhoneNumberDesc.h, чтобы посмотреть, что произойдет, а затем NBPhoneNumberUtil.h получил ту же ошибку:

enter image description here

Я заметил, что libPhoneNumber-iOS входит в состав модуля FlagPhoneNumber и его версия libPhoneNumberiOS (0.7.6),Затем я вручную добавил pod в свой проект, чтобы посмотреть, что произойдет, но это также не имело значения, ошибка все еще была.Единственное, что я заметил, это то, что когда я вручную добавил модуль pod, версия Podfile.lock - libPhoneNumber-iOS (0.9.15), где в качестве версии, используемой FlagPhoneNumber, - libPhoneNumberiOS (0.7.6)

Любая идея, как я могу исправить эту ошибку

1 Ответ

1 голос
/ 06 июля 2019

Я попробовал кучу ответов об изменениях в настройках сборки> Файл заголовка и / или Файлы заголовка пользователя, но ни один из них не сработал. Я следовал за этим ответом , и это сработало:)

Мне нужно было изменить #import SomeFile.h на #import <SomeFile.h>, используя вместо этого скобки.

Вот код из каждого файла

Внутри файла NBRegExMatcher.m мне пришлось изменить эти 2 модуля:

//#import "NBPhoneNumberDesc.h" // comment this out and add the brackets below
#import <NBPhoneNumberDesc.h>
//#import "NBPhoneNumberUtil.h" // comment this out and add the brackets below
#import <NBPhoneNumberUtil.h>

После того, как я изменил их, я также получил ту же ошибку внутри NBPhoneNumberUtil.m и должен был сделать то же самое там:

//#import "NBRegExMatcher.h" // comment this out and add the brackets below
#import <NBRegExMatcher.h>

Вот фотографии каждого:

NBRegExMatcher.m файл enter image description here

NBPhoneNumberUtil.m file enter image description here

В дополнение к этому мне также пришлось добавить pod 'libPhoneNumber-iOS', '~> 0.8' в мой Podfile, потому что появилась другая ошибка, потому что я использовал библиотеку за пределами модуля FlagPhoneNumber

...