Моя цель - использовать libphonenumber , библиотеку обработки телефонных номеров Google для проекта iPhone. работа над.
После загрузки (и много-много часов) я скомпилировал версию библиотеки для C ++, и она построила несколько файлов «.a» и «.dylib», из которых, как я предполагал, я должен импортировать в свой xCodeProject в чтобы получить доступ к этим функциям C ++.
Я импортировал libphonenumber.a в свой проект, обновил цель, настройки сборки, фазы сборки и пути поиска библиотеки по мере необходимости.
Создание проекта xCode для прохода Device & Simulator, однако дайте мне следующее предупреждение: «ld: предупреждение: игнорирование файла ../XcodeProjects/libphonenumber/build/libphonenumber.dylib, файл был создан для неподдерживаемого формата файла, который не является связываемой архитектурой (armv7)». (или i386 при компиляции для симулятора)
Из этого я понимаю, что я должен скомпилировать libphonenumber для правильной архитектуры i386 и / или armv7. Итак, я попытался сделать это, но быстро понял, что для этого мне нужно также перестроить 3 зависимые библиотеки libphonenumber для архитектур i386 / armv7, чтобы libphonenumber теперь правильно компилировался. В конце концов, я отказался от этого, впереди меня все начало казаться большим беспорядком.
После всех испытаний у меня осталось
3 вопроса:
1) Как мне скомпилировать библиотеку libphonenumber C ++ для использования с архитектурами i386 / armv6 / armv7.
2) Верно ли мое предположение при использовании библиотеки C ++? Дело в том, чтобы просто импортировать файл ".a", полученный в результате компиляции, и просто указать на него в заголовке моих файлов проекта xCode? Каковы именно шаги для включения и использования библиотек c ++ и доступа к их функциям из objective-c внутри xCode?
3) Я нашел LPNKit , порт objective-c для libphonenumber, но он неполный. Кто-нибудь слышал об этом, и ему повезло с его использованием? Или у кого-нибудь есть полный, работающий порт objective-c для libphonenumber с инструкциями о том, как его правильно скомпилировать и установить?
Мы будем очень благодарны за любую помощь или совет о том, как заставить эту библиотеку работать на iOS.
Обновление:
В итоге я использовал javascript-версию libphonenumber, добавив все файлы в свой пакет, включая все упомянутые библиотеки javascript, и использовал UIWebview и stringByEvaluatingJavaScriptFromString для запуска функций. У вас также может быть ссылка UIWebview на библиотеку javascript в Интернете (я просто предпочел, чтобы все было локальным, чтобы не зависеть от подключения к Интернету).
Вот пример того, что я сделал:
webView_ = [[UIWebView alloc] init];
[webView_ loadHTMLString:
@""
""
""
""
""
""
""
""
baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];
NSString *function = [[NSString alloc] initWithFormat: @"phoneNumberParser('%@','%@','')", phoneNumber, ISOCountryCode];
NSLog(@"function is: %@", function);
NSString *result =[webView_ stringByEvaluatingJavaScriptFromString:function];
Переменная результата возвращает мне форматированное число.
Надеюсь, это поможет любому, кто столкнулся с той же проблемой, что и я.