Мне удалось добавить статическую библиотеку как файл subspec
. Я предпочитаю этот подход, потому что он по умолчанию использует сборку, поставляемую с моим модулем, а также позволяет пользователям предоставлять свою собственную сборку, если они того пожелают.
Как уже упоминалось, статической библиотекой является OpenSSL, но следующее относится к любой статической библиотеке. Я использую следующую структуру каталогов:
libraries/openssl-1.0.1e/include/openssl/*.h
libraries/openssl-1.0.1e/LICENSE
libraries/openssl-1.0.1e/lib/*.a
В результате подспецификация будет:
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
.
person
hpique
schedule
26.10.2013