sono riuscito ad aggiungere la libreria statica come subspec
. Preferisco questo approccio perché utilizza la build fornita con il mio pod per impostazione predefinita e consente inoltre agli utenti di fornire la propria build, se lo desiderano.
Come accennato, la libreria statica è OpenSSL ma quanto segue si applica a qualsiasi libreria statica. Sto utilizzando la seguente struttura di directory:
libraries/openssl-1.0.1e/include/openssl/*.h
libraries/openssl-1.0.1e/LICENSE
libraries/openssl-1.0.1e/lib/*.a
Il subspec risultante sarebbe:
s.subspec 'OpenSSL' do |openssl|
openssl.preserve_paths = 'libraries/openssl-1.0.1e/include/openssl/*.h', 'libraries/openssl-1.0.1e/include/LICENSE'
openssl.vendored_libraries = 'libraries/openssl-1.0.1e/lib/libcrypto.a', 'libraries/openssl-1.0.1e/lib/libssl.a'
openssl.libraries = 'ssl', 'crypto'
openssl.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/libraries/openssl-1.0.1e/include/**" }
end
Linea per linea:
openssl.preserve_paths = 'libraries/openssl-1.0.1e/include/openssl/*.h', 'libraries/openssl-1.0.1e/include/LICENSE'
Preserve intestazioni e il file di licenza. Useremo le intestazioni di seguito.
openssl.vendored_libraries = 'libraries/openssl-1.0.1e/lib/libcrypto.a', 'libraries/openssl-1.0.1e/lib/libssl.a'
Dire a CocoaPods che stiamo spedendo le librerie statiche sopra nel pod. Ciò manterrà i file, oltre a modificare LIBRARY_SEARCH_PATHS
di conseguenza.
openssl.libraries = 'ssl', 'crypto'
Include le librerie in "Altri linker flag".
openssl.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/libraries/openssl-1.0.1e/include/**" }
Indica al progetto dove trovare le intestazioni. Non possiamo usare public_header_files
perché questo è un subspec
.
+1 Grazie Marcin. Questo è stato utile. Ho fatto qualcosa di leggermente diverso, che pubblicherò a breve. – hpique