Моему приложению требуется 7-я версия libcurl, и он отлично работает на Lion, но версия libcurl.dylib на Snow Leopard не работает (мне нужен префикс * для моих команд * MKD).
Я пробовал разные способы включить Lion-версию libcurl.dylib в свой пакет, в том числе поместить копию в (1) папку приложения, (2) папку «Содержание», (3) папку MacOS и (4) папка Ресурсы, но безуспешно. Даже четыре копии, по одной в каждой папке. (Все еще идет в /usr/lib.)
Я также пытался установить «Пути поиска Runpath» в Xcode 4.2 на «.», Но это не помогло.
Итак, вопрос № 1: как я могу заставить мое приложение на Snow Leopard использовать dylib, который я включаю в пакет? (Установка нового libcurl.dylib не может быть и речи - это приложение собирается в Mac App Store.)
Экспериментально я заменил /usr/lib/libcurl.dylib в своей системе Snow Leopard файлом из Lion, и с этим приложение работало. Поэтому я знаю, что если я смогу заставить приложение использовать эту библиотеку, оно будет работать нормально.
Я также пытался создать статический libcurl.a, который работал (используя configure, make и make install), но при попытке связать с этим приложение все еще ссылалось на dylib. Затем я изменил это имя статической библиотеки на libcurl-static.a, но затем возникли ошибки компоновщика, так как десятки символов не были определены в других библиотеках. Я попытался включить больше dylib в свою сборку, чтобы решить их, но список dylibs, необходимый libcurl, по-видимому, длинный. Я пытался использовать otool, чтобы выяснить, что требуется, но ни один из вариантов не показал мне ничего полезного.
Вопрос № 2: Как статически связать мое приложение с libcurl?
(У меня есть обходной путь для невозможности использования * MKD, который игнорирует ошибку, если каталог уже существует, но включает слишком много дополнительных операций FTP и неэффективен. Мой подход с * MKD работает отлично и быстро .)
Нет необходимости предлагать мне перейти в другую библиотеку FTP, как я уже думал об этом. Не очень хочу, потому что libcurl отлично работает на Lion. Если бы я только мог заставить его использовать библиотеку, которую я отправляю на Snow Leopard.