Я пытаюсь создать проект iOS, который включает в себя код на C, который используется на других платформах (Android). Некоторые из сторонних библиотек, которые я собираю, полагаются на включение определенных каталогов в качестве путей поиска. Однако, что бы я ни пытался, я не смог в файле CocoaPods .podspec
включить данный каталог в путь поиска компиляции. Я использую CocoaPods 1.8.4
.
. Хотя это плагин Flutter, я понимаю, что это проблема с CocoaPods / Xcode, поскольку Flutter просто настроил файлы проекта. Тем не менее, стоит отметить, что Flutter устанавливает пример рабочего пространства, которое я не хочу изменять. Я хочу, чтобы сам плагин был изменен для компиляции в необходимом коде, а не в примере рабочей области / проекта. Другими словами, я хочу, чтобы изменялся только файл ios/repro_cocoapods_issue.podspec
.
В случае, если это имеет значение, я использовал следующую команду Flutter для создания проекта:
flutter create -t plugin -i objc -a java repro_cocoapods_issue
У меня есть полное воспроизведение на GitHub здесь . Чтобы воспроизвести, откройте рабочую область в example/ios/Runner.xcworkspace
в XCode и попробуйте собрать.
Это то, что я пробовал в файле ios/repro_cocoapods_issue.podspec
:
s.xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PROJECT_DIR}/external/"'}
s.xcconfig = { 'USER_HEADER_SEARCH_PATHS' => '"${PROJECT_DIR}/external/"'}
s.user_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PROJECT_DIR}/external/"'}
s.user_target_xcconfig = { 'USER_HEADER_SEARCH_PATHS' => '"${PROJECT_DIR}/external/"'}
s.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PROJECT_DIR}/external/"'}
s.pod_target_xcconfig = { 'USER_HEADER_SEARCH_PATHS' => '"${PROJECT_DIR}/external/"'}
s.compiler_flags = '-Iexternal/'
s.preserve_paths = 'external/**'
s.preserve_paths = '${PROJECT_DIR}/external/**'
Во всех случаях я получаю:
'external_dir.c' file not found
Если я изменяюкод #include ../external/external_dir.c
, тогда он работает, но это не помогает с моим фактическим вариантом использования.
Как настроить мой podspec таким образом, чтобы указанный каталог был включен в путь поиска во время компиляции?
Выход pod env
Стек
CocoaPods : 1.8.4
Ruby : ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
RubyGems : 2.5.2.3
Host : Mac OS X 10.14.6 (18G95)
Xcode : 11.1 (11A1027)
Git : git version 2.23.0
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib
Repositories : master - git - https://github.com/CocoaPods/Specs.git @ d13a0869021d940f32f0543a03500755b39be998
Источник установки
Executable Path: /usr/local/bin/pod
Плагины
cocoapods-deintegrate : 1.0.4
cocoapods-plugins : 1.0.0
cocoapods-search : 1.0.0
cocoapods-stats : 1.1.0
cocoapods-trunk : 1.4.1
cocoapods-try : 1.1.0