Заголовочный файл не найден при использовании файла xcconfig в ios Project

Я использую файлы xcconfig для определения ключей в режиме отладки и выпуска. Это мой подфайл:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'



target 'MainTarget' do
    use_frameworks!
    pod 'Alamofire','~>4.4'
    pod 'KFSwiftImageLoader'
    pod 'FMDB'
    pod 'Fabric'
    pod 'Crashlytics'
    pod 'Charts'
    pod 'OpenSSL-Universal'
    pod 'EVReflection'
    pod 'Socket.IO-Client-Swift'
    pod 'GoogleMaps'
end

target 'Target2' do
    use_frameworks!
    pod 'Alamofire','~>4.4'
end

target 'Target3' do
    use_frameworks!
    pod 'Alamofire','~>4.4'
end


target 'NetworkLibrary' do
    use_frameworks!
    pod 'Alamofire','~>4.4'
end

Target2, Target3, Network Library - это фреймворки, добавленные в проект. Вот мой dubug.xcconfig:

#include "Pods/Target Support Files/Pods-MainTarget/Pods-MainTarget.debug.xcconfig"
#include "Pods/Target Support Files/Pods-NetworkLibrary/Pods-NetworkLibrary.debug.xcconfig"
#include "Pods/Target Support Files/Pods-Target1/Pods-Target1.debug.xcconfig"
#include "Pods/Target Support Files/Pods-Target2/Pods-Target.debug.xcconfig"

MAIN_KEY = 3145bjk34
FULL_KEY = 23bjkkj31

Я определил release.xcconfig аналогичным образом (просто меняя значения ключей и включая модуль). Я получаю сообщение об ошибке FMDB.h файл не найден. Почему я могу получить это? До добавления конфигов все работало нормально. Я добавил свои конфигурационные файлы на вкладке Информация тоже.

Интересно, что если я изменю свой подфайл следующим образом, он будет работать нормально:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'


target 'MainTarget' do
    use_frameworks!
    pod 'Alamofire','~>4.4'
    pod 'KFSwiftImageLoader'
    pod 'FMDB'
    pod 'Fabric'
    pod 'Crashlytics'
    pod 'Charts'
    pod 'OpenSSL-Universal'
    pod 'EVReflection'
    pod 'Socket.IO-Client-Swift'
    pod 'GoogleMaps'
end

target 'Target1' do
    use_frameworks!
    pod 'Alamofire','~>4.4'
    pod 'KFSwiftImageLoader'
    pod 'FMDB'
    pod 'Fabric'
    pod 'Crashlytics'
    pod 'Charts'
    pod 'OpenSSL-Universal'
    pod 'EVReflection'
    pod 'Socket.IO-Client-Swift'
    pod 'GoogleMaps'
end

target 'Target2' do
    use_frameworks!
    pod 'Alamofire','~>4.4'
    pod 'KFSwiftImageLoader'
    pod 'FMDB'
    pod 'Fabric'
    pod 'Crashlytics'
    pod 'Charts'
    pod 'OpenSSL-Universal'
    pod 'EVReflection'
    pod 'Socket.IO-Client-Swift'
    pod 'GoogleMaps'
end


target 'NetworkLibrary' do
    use_frameworks!
    pod 'Alamofire','~>4.4'
    pod 'KFSwiftImageLoader'
    pod 'FMDB'
    pod 'Fabric'
    pod 'Crashlytics'
    pod 'Charts'
    pod 'OpenSSL-Universal'
    pod 'EVReflection'
    pod 'Socket.IO-Client-Swift'
    pod 'GoogleMaps'
end

Если я добавляю все модули в фреймворки, все работает нормально. Почему это происходит?

1 ответ

Попробуйте вместо этого унаследовать пути поиска. Вот версия вашего Podfile, которую вы можете попробовать.

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

target 'MainTarget' do
    pod 'Alamofire','~>4.4'
    pod 'KFSwiftImageLoader'
    pod 'FMDB'
    pod 'Fabric'
    pod 'Crashlytics'
    pod 'Charts'
    pod 'OpenSSL-Universal'
    pod 'EVReflection'
    pod 'Socket.IO-Client-Swift'
    pod 'GoogleMaps'

    target 'Target2' do
        inherit! :search_paths
    end

    target 'Target3' do
        inherit! :search_paths
    end

    target 'NetworkLibrary' do
        inherit! :search_paths
    end

end

Если это не сработает, abstract_target может сделать трюк

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

abstract_target 'Defaults' do
    pod 'Alamofire','~>4.4'
    pod 'KFSwiftImageLoader'
    pod 'FMDB'
    pod 'Fabric'
    pod 'Crashlytics'
    pod 'Charts'
    pod 'OpenSSL-Universal'
    pod 'EVReflection'
    pod 'Socket.IO-Client-Swift'
    pod 'GoogleMaps'

    target 'MainTarget' do
    end

    target 'Target2' do
    end

    target 'Target3' do
    end

    target 'NetworkLibrary' do
    end
end
Другие вопросы по тегам