У меня есть проект MonoTouch, который отлично строится и работает на симуляторе i386/iOS. Проект ссылается на нативную (Obj-C) библиотеку, которую я преобразовал в DLL MonoTouch с помощью процесса btouch, как описано в BindingSample Xamarin:
Итак, мой make-файл создает все три архитектуры (i386, armv6 и armv7), затем объединяет три вывода в одну «универсальную» библиотеку и, наконец, использует btouch для создания DLL MonoTouch.
Чтобы убедиться, что моя универсальная библиотека содержит все три архитектуры, я проверил с помощью lipo -info
, и действительно, она содержит i386, armv6 и armv7.
Однако при сборке для развертывания на реальном устройстве iOS я получаю следующие ошибки:
Undefined symbols for architecture armv7:
"_ABAddressBookCreate", referenced from:
-[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_ABAddressBookCopyArrayOfAllPeople", referenced from:
-[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_ABAddressBookGetPersonCount", referenced from:
-[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_ABRecordCopyValue", referenced from:
-[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_kABPersonFirstNameProperty", referenced from:
-[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
-[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_kABPersonLastNameProperty", referenced from:
-[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
-[ContactsTokenField setupSms] in libContactsTokenFieldViewUniversal.a(ContactsTokenField.o)
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_ABMultiValueGetCount", referenced from:
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_ABMultiValueCopyLabelAtIndex", referenced from:
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_ABMultiValueCopyValueAtIndex", referenced from:
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_kABPersonEmailProperty", referenced from:
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
"_kABPersonPhoneProperty", referenced from:
-[TITokenFieldView setupWithAddressType:prompt:] in libContactsTokenFieldViewUniversal.a(TITokenField.o)
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
mtouch exited with code 1
Что я делаю неправильно?