libphonenumber для iOS или порт Objective-c

Моя цель - использовать 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];

Переменная результата возвращает мне форматированное число.

Надеюсь, это поможет любому, кто столкнулся с той же проблемой, что и я.

13
задан Joachim Sauer 23 January 2013 в 16:11
поделиться