2012-06-19 18 views
6

i386/iOS Simulatorでうまく構築され実行されるMonoTouchプロジェクトがあります。MonoTouchビルド:ld:アーキテクチャarmv7のシンボルが見つかりません

https://github.com/xamarin/monotouch-samples/tree/eb640165f0485ff59b2f80e73ccff382bf4f2083/BindingSample/src/binding

をだから私のメイクファイルは、すべての3つのアーキテクチャ(i386の、ARMv6のを構築します。このプロジェクトは、XamarinのBindingSampleで説明したように、私はbtouchプロセスを使用してMonoTouchでDLLに変換するネイティブ(OBJの-C)ライブラリを参照しますそしてarmv7)、3つの出力を1つの 'Universal'ライブラリに結合し、最後にbtouchを使用してMonoTouch DLLを生成します。

私のユニバーサルライブラリに3つのアーキテクチャがすべて含まれていることを確認するために、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 

は私が間違って何をしているのですか?

答えて

8

が問題を発見:ネイティブライブラリは、アドレス帳のフレームワークに依存し、私はAPIの定義プロジェクトのAssemblyInfo.csに含めるのを忘れ:

[assembly: LinkWith ("libContactsTokenFieldViewUniversal.a", LinkTarget.Simulator | LinkTarget.ArmV6 | LinkTarget.ArmV7, ForceLoad = true, Frameworks="AddressBook Foundation")] 
+0

うわー、私はほとんどあきらめました。ありがとうございました! –

+0

この情報ビットは、長くて辛い検索の後、正しい軌道に乗せてくれます。ありがとうございました。 – Aranda

関連する問題