Unity 4.6.6 ошибки компоновщика Xcode "неопределенный символ для архитектуры armv7/arm64"
Я строил свой проект Xcode с Unity 4.6.6, и у меня были проблемы с IL2CPP. Я выбираю Универсальную архитектуру в настройках Player (чтобы включить и armv7, и arm64) при сборке, и в проекте Xcode, который она генерирует, при сборке я сталкиваюсь со следующими ошибками Mach-O Linker.
Неопределенные символы для архитектуры armv7: "_sqlite3_bind_int", на которую ссылаются: транзакция DbObj:isTmp:] в libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execInsertQuery: транзакция DbObj:isTmp:] в libSmacTracking.a (SmacBaseDao.o) - [условие SmacBaseDao: пустой_возврат: транзитная запись: а (SmacBaseDao.o) -[SmacBaseDao getColmunsInfo:transactionDbObj:] в libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao getTableList] в libSmacTracking.a(SmacBaseDao.o) "_sqlite3_column_int", ссылки из: -[SmacBaseDao getNumber: колонка:] в libSmacTracking.a(SmacBaseDao.o) "_sqlite3_open", на который ссылаются из: -[SmacBaseDao dbOpen] в libSmacTracking.a(SmacBaseDao.o) "_sqlite3_exec", на который ссылается из: - SmacaseBaseBaseBD (SmacBaseD)..o) -[SmacBaseDao dbClose:] я n libSmacTracking.a(SmacBaseDao.o) "_OBJC_CLASS_$_NSManagedObjectModel", на который ссылаются из: objc-class-ref в libGoogleAnalyticsServices.a(GAICoreDataUtil.o) "_sqlite3_prepare_vc для загрузки данных: измагазин-хранилище данных:.o) -[SmacBaseDao dbOpen] в libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execSelectQuery: условие: colmun: транзакция DbObj:isTmp:] в libSmacTracking.a (SmacBaseDao.o): транзакция: исключая транзакция: SmacBaseDao. в libSmacTracking.a (SmacBaseDao.o) - [SmacBaseDao execUpdateQuery: условие: emptyIsNull: TransactionsDbObj:isTmp:] в libSmacTracking.a (SmacBaseDao.o) - [SmacBaseDao. [SmacBaseDao getTableList] в libSmacTracking.a (SmacBaseDao.o)... "_sqlite3_step", на который ссылаются:) - [SmacBaseDao execSelectQuery: условие: colmun: транзакция DbObj:isTmp:] в libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execInsertQuery: транзакция DbObj:isTmp:] в libSmacTracking.a (SmacBaseDao.o) - [SmacBaseDao execUpdateQuery: условие: пустой IbBoD.SB: - [SmacBaseDao getColmunsInfo: транзакция DbObj:] в libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao getTableList] в libSmacTracking.a (SmacBaseDao.o)... "_sqlite3_column_cateBase: fromBext: fromBext: fromBext_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Text_Exject_Exject_Reader.Ru: libSmacTracking.a (SmacBaseDao.o) - [SmacBaseDao getDateString: column:] в libSmacTracking.a(SmacBaseDao.o) "_sqlite3_finalize", на который ссылаются из: -[SmacUpdate updateDB] в libSmacase.bD: ] в libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execSelectQuery: условие: colmun: транзакция DbObj:isTmp:] в libSmacTracking.a(SmacBaseDao.o) -[SmacBaseDao execInsertQuery: папка для файловой системы: транзитная папка: o) - [SmacBaseDao execUpdateQuery: условие: emptyIsNull: транзакция DbObj:isTmp:] в libSmacTracking.a (SmacBaseDao.o) - [SmacBaseDao getColmunsInfo:actionDbObj:] в libSmacTracking.a(SmacBaseDao.o) "_OBJC_CLASS_$_NSEntityDescription", на который ссылаются из класса ссылки на GoogleStation.GaSaGaSaGS из Google Analytics.) objc-class-ref в libGoogleAnalyticsServices.a(GAICoreDataUtil.o) "_OBJC_CLASS_$_NSManagedObjectContext", на который ссылаются из: objc-class-ref в libGoogleAnalyticsServices.a(GAIDataStore.o): _OBistent_core_NocSC_CL_C_Core_NocS_Core -REF в libGoogleAnalyticsServices.a(GAIDataStore.o) "_kSecReturnData", ссылка из: -[KeychainItemWrapper secItemFormatToDictionary:] в KeychainItemWrapper.o +[KeychainUtils getStoredValue: ServiceName: accessGroup: errorDomain: ошибка:] в KeychainUtils.o "_kSecMatchLimitOne", ссылка из: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] в KeychainItemWrapper.o "_kSecMatchLimit", ссылка из: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] в Keycha inItemWrapper.o "_OBJC_CLASS_$_NSFetchRequest", на который ссылается: objc-class-ref в libGoogleAnalyticsServices.a(GAIDataStore.o) "_NSOverwriteMergePolicy", на который ссылаются из - "_sqlite3_reset", на который ссылаются: _kSecClassGenericPassword ", ссылка на которую указана из: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] в KeychainItemWrapper.o -[KeychainItemWrapper dictionaryToSecItemFormat:] в KeychainItemWrapper: ошибка:] в KeychainUtils.o +[KeychainUtils setValue: ключ: имя_службы: accessGroup: force: errorDomain: ошибка:] в KeychainUtils.o +[KeychainUtils deleteValue:serviceName:accessGroup:errorDomain: error:] в KeychainUtils.o "_OBJC_CLASS_$_NSAttributeDescription", на который ссылаются из: objc-class-ref в libGoogleAnalyticsServices.a (GAICoreDataUtil.o) "_kSecAttrSainithWerIWerIt_WerIWer: WIWNERIWERTIREIREWERSER": " serviceName: accessGroup:] в KeychainItemWrapper.o +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] в KeychainUtils.o +[[KeychainUtils setValue: ключ:servicename:accessGroup:force:errorDomain:error:] в KeychainU [KeychainUtils deleteValue: имя_службы: accessGroup: errorDomain: error:] в KeychainUtils.o "_kSecAttrLabel", на который ссылаются из: -[KeychainItemWrapper resetKeychainItem] в KeychainItemWrapper.o +[ошибка ключевого слова доступа к серверу: ошибка: значение: ] в KeychainUtils.o "_NSSQLiteStoreType", на который ссылаются из: - [GAIDataStore Координатор WithModel: URL:] в libGoogleAnalyticsServices.a(GAIDataStore.o) "_NSSQLiteErrorDomain", на который ссылаются из: - [GAIDataStore executeBlockA ndWait: withError:] в libGoogleAnalyticsServices.a(GAIDataStore.o) "_sqlite3_bind_null", на который ссылаются: [KeychainItemWrapper initWithIdentifier: ServiceName: accessGroup:] в KeychainItemWrapper.o -[KeychainItemWrapper dictionaryToSecItemFormat:] в KeychainItemWrapper.o -[KeychainItemWrapper secItemFormatToDictionary:] в KeychainItemWrapper.o -[KeychainItemWrapper writeToKeychain] в KeychainItemWrapper.o +[KeychainUtils getStoredValue: ServiceName: accessGroup: errorDomain: error:] в KeychainUtils.o +[KeychainUtils setValue: ключ: имя_службы: accessGroup: force: errorDomain: error:] в KeychainUtils.o +[KeychainUtils deleteValue: serviceName: accessGroup: errorDomain: ошибка:] в KeychainUtils.o... "_kSecAttrGeneric", на который ссылаются из: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] в KeychainItemWrapper.o "_kSecAttrAccount", на который ссылаются из: -[KeychainItemWrapper initWithIdentifier: SERVICENAME: accessGroup:] в KeychainItemWrapper.o +[KeychainUtils getStoredValue: SERVICENAME: accessGroup: errorDomain: ошибка:] в KeychainUtils.o +[KeychainUtils SetValue: ключ: имя_службы accessGroup: сила: errorDomain: ошибка: ] в KeychainUtils.o +[KeychainUtils deleteValue: serviceName: accessGroup: errorDomain: error:] в KeychainUtils.o "_kSecValueData", на который ссылаются из: -[KeychainItemWrapper resetKeychainItem] в словарь KeychainItemWrapper.o --ecItraWrapperItem.rara.ImWrapper.matter.rapper.match.ImWrapper.match.ItWrapper.match.ItWormTepperItemWrapper. [KeychainItemWrapper secItemFormatToDictionary:] в KeychainItemWrapper.o +[KeychainUtils setValue: ключ: servicename: accessGroup: force: errorDomain: ошибка:] в KeychainUtils.o "_kSecAttrAccessGroup", ссылка на сервисную группу:WIWRI_WRID: указатель_извлечения: в KeychainWireI: KeychainWireI: ключевой объект доступа: в ключевом месте доступа: идентификатор ключа:.o +[KeychainUtils getStoredValue: имя_службы: accessGroup: errorDomain: error:] в KeychainUtils.o +[KeychainUtils setValue: ключ: имя_службы: доступ Группа: force: errorDomain: error:] в KeychainUtils.o +[KeychainUtils deleteValue: serviceName: accessGroup: errorDomain: error:] в KeychainUtils.o "_SecItemUpdate", ссылка на которую указана из: -[KeychainItemWrapper writeToKeychain] в KeychainoItWeb [] setValue: ключ: имя_службы: accessGroup: force: errorDomain: ошибка:] в KeychainUtils.o "_OBJC_CLASS_$_SKProductsRequest", на который ссылается из: objc-class-ref в AppStoreProcess.o "_sqlite3_bind_text", на который ссылается объект:BDB: colmunInfoList: emptyIsNull:] в libSmacTracking.a (SmacBaseDao.o) "_SecItemCopyMatching", ссылки из: -[KeychainItemWrapper initWithIdentifier: ServiceName: accessGroup:] в KeychainItemWrapper.o -[KeychainItemWrapper secItemFormatToDictionary:] в KeychainItemWrapper.o -[KeychainItemWrapper writeToKeychain ] в KeychainItemWrapper.o +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] в KeychainUtils.o "_sqlite3_close", на который ссылаются из: - [SmacBaseDao dbClose:] в libSmacTracking.a (SmacBaseDao.o) "_SecItemAdd", на который ссылаются из: -[KeychainItemWrapper writeToKeychain] в KeychainItemWrapper.o +[KeychainUtils setValue: key:servicename:accessGroup:force:errorDomain_I: ошибка: в. ошибка: "]: ссылается из: -[KeychainItemWrapper resetKeychainItem] в KeychainItemWrapper.o +[KeychainUtils deleteValue: serviceName: accessGroup: errorDomain: ошибка:] в KeychainUtils.o "_OBJC_CLASS_$_SKPayment", ссылка на который используется в классе-объекте-источнике ", на которое ссылаются: -[KeychainItemWrapper initWithIdentifier:serviceName:accessGroup:] в KeychainItemWrapper.o +[KeychainUtils getStoredValue:serviceName:accessGroup:errorDomain:error:] в KeychainUtils.o +[служба keychainUtils errorName: errorNameGame: удалить_меню: ] в KeychainUtils.o "_kSecAttrDescription", на который ссылаются из: -[KeychainItemWrapper resetKeychainItem] в KeychainItemWrapper.o "_OBJC_CLASS _ $ _ SKPaymentQueue", на который ссылается: objc-class-ref в AppStore Process.o ld: символ (ы) не найдены для архитектуры armv7 clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)
Я прочитал несколько вопросов с ответами относительно "Неопределенных символов для архитектуры armv7", таких как этот, но предложенные решения в верхнем ответе на самом деле не применимы, потому что в моем случае именно Unity помещает необходимые файлы в папку проекта Xcode. Кроме того, после проверки библиотек, которые искали ошибки, они были должным образом добавлены в раздел " Связать двоичные файлы с библиотеками " на этапах сборки.
Может кто-нибудь помочь или просветить меня, если я делаю что-то не так?
Я также попытался выбрать в настройках Unity Player только armv7 или просто arm64 для сборки с помощью IL2CPP, но я все еще получаю ошибки "Неопределенные символы для armv7" или "Неопределенные символы для arm64" Mach-O Linker соответственно в Xcode.
Используемое программное обеспечение: Unity 4.6.6, Xcode 6.1 (собирается попробовать обновить до 6.3) и базовый SDK для iOS 8.1
1 ответ
Посмотрите, добавлен ли libsqlite3.dylib ко всем вашим целям.