Добавить статическую библиотеку в podspec
My podspec требует статической библиотеки (OpenSSL). Для удобства я отправлю библиотеку вместе с капсулой.
статическая библиотека содержит:
- файлы:
MyPod/openssl/bin/libcrypto.a
иMyPod/openssl/bin/libsll.a
- заголовки:
MyPod/openssl/include/openssl/*.h
- своя лицензия (в дополнение к лицензии моего проекта):
MyPod/openssl/include/LICENSE
как правильно выразить это в моем podspec? Я видел различные примеры, которые используют комбинации следующих свойства, и в настоящее время я пробую разные комбинации:
source_files
public_header_files
private_header_files
preserve_paths
libraries
xcconfig
vendored_libraries
или даже лучше, могу ли я определить эту статическую библиотеку в подвиде?
2 ответов
мне удалось добавить статическую библиотеку как subspec
. Я предпочитаю этот подход, потому что он использует сборку, поставляемую с моим pod по умолчанию, а также позволяет пользователям предоставлять свою собственную сборку, если они этого хотят.
как уже упоминалось, статическая библиотека OpenSSL, но следующее относится к любой статической библиотеке. Я использую следующую структуру каталогов:
libraries/openssl-1.0.1e/include/openssl/*.h
libraries/openssl-1.0.1e/LICENSE
libraries/openssl-1.0.1e/lib/*.a
в результате subspec будет:
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
линия по строка:
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'
скажите CocoaPods что мы грузим вышеуказанные статические библиотеки в стручке. Это позволит сохранить файлы, а также модификации LIBRARY_SEARCH_PATHS
соответственно.
openssl.libraries = 'ssl', 'crypto'
включает библиотеки в "другие флаги компоновщика".
openssl.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/libraries/openssl-1.0.1e/include/**" }
сообщает проекту, где найти заголовки. Мы не можем использовать public_header_files
потому что это subspec
.
вы можете попробовать сделать это так, как это сделано здесь https://github.com/krzak/OpenSSL, или просто использовать этот стручок с вами проекта, если вы найдете его convienence
pod 'OpenSSL', :podspec => 'https://raw.github.com/krzak/OpenSSL/master/OpenSSL.podspec'