2017-08-07 101 views
0

我正在使用xcconfig文件在調試和發佈模式下定義鍵。這是我的podfile:當在ios中使用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文件未找到。爲什麼我可以得到這個?在添加配置之前,一切工作正常。我也在Info選項卡中添加了我的配置文件。

有趣的是,如果我改變我的podfile像下面這是工作的罰款:

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 

如果我所有的豆莢添加到它正在fine.Why框架會出現這種情況?

回答

0

嘗試繼承搜索路徑。這是您可以嘗試的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 
+0

有了這個,同時建立並稱目標1「Alamofire不能底層模塊加載」我收到錯誤和目標2.我可以通過添加所有的框架來解決這個問題,但我的問題是爲什麼它發生這樣的事情?謝謝您的回答 –

+0

誠實地說,我不完全瞭解您的問題。如果由於某種原因,你的其他目標確實需要豆莢,那麼你可以嘗試使用'abstract_target',就像我更新後的答案一樣。 – Hodson