我一直在重構一些代碼的過程中,並創建了一個靜態庫,我現在在一個應用程序中使用的框架中使用。我正在使用cocoapods,並且無法正確地將我的新靜態庫集成到podspec中。Cocoapods podspec問題
我發現構建失敗,因爲構建中缺少靜態庫。如果我手動添加靜態庫到最終的應用程序,框架和應用程序工作正常。構建團隊生成應用程序的最終版本,因此我只負責更新框架的podspec。
是否有可能修改pod規範以將靜態庫設置爲鏈接庫,該鏈接庫顯示在最終應用程序的構建階段之下?
UPDATE:
當添加靜態庫到我的子規範的framework.library屬性我得到library not found for -lMyStaticLib
SUBSPEC供參考:
s.subspec 'MyStaticLibrary' do |msl|
mss.source_files = 'FrameworkSource/My-Static-Library/*.{h,a}'
msl.library = 'MyStaticLib'
msl.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(SRCROOT)/Pods/My-Framework-Name/FrameworkSource/My-Static-Library"/**', 'LIBRARY_SEARCH_PATHS' => '"$(SRCROOT)/Pods/My-Framework-Name/FrameworkSource/My-Static-Library"/**' }
#msl.frameworks = 'MyStaticLib'
end
更新2: 我將屬性更改爲msl.vendored_libraries = 'MyStaticLib'
也驗證了podspec中的路徑。一切似乎都要結賬。我仍然遇到構建錯誤。 當我建了一個設備(我得到同樣的錯誤,但i386的,當我建立模擬器):
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_MyStaticLibrary", referenced from:
objc-class-ref in MyFramework(FileInFramework.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我也再次驗證了,如果我只是去到應用程序的構建階段和遍歷莢文件夾和手動將MyStaticLibrary.a文件添加到其生成的項目中,沒有問題。
仍然沒有解決這個問題嗎?我遇到類似的問題,並希望你的智慧,如果你設法解決它。 – brainray