XCODE, сборка для iOS - неопределенные символы для архитектуры armv7

похоже, я не первый, кто спрашивает об этой проблеме, но мне нужно попробовать. Кто-нибудь сталкивался с этой проблемой?

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_GSDK_GTMSessionFetcher", referenced from:
      objc-class-ref in gpg(GPGClearcutLogger.o)
  "_OBJC_CLASS_$_GSDK_GTMSessionFetcherService", referenced from:
      objc-class-ref in gpg(GIPNetworkImage.o)
  "_GTMMethodCheckMethodChecker", referenced from:
      +[NSDictionary(GTMNSDictionaryURLArgumentsAdditions) xxGTMMethodCheckMethodNSString32] in libGoogleToolboxForMac.a(GTMNSDictionary+URLArguments.o)
      +[NSDictionary(GTMNSDictionaryURLArgumentsAdditions) xxGTMMethodCheckMethodNSString33] in libGoogleToolboxForMac.a(GTMNSDictionary+URLArguments.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Похоже, это вызвано какой-то зависимостью от Google Play, если я правильно понял. Я попытался переключить некоторые значения в XCODE, рекомендованные в других потоках с похожей проблемой. А именно настройки сборки -> архитектуры, действительные архитектуры, поддерживаемые платформы, базовый SDK, только активная архитектура. Тоже никаких изменений, все та же ошибка при линковке. какаоподы установлены

Я использую XCODe 8.1.

Какие-либо предложения?


person Vladislav Vodicka    schedule 11.12.2016    source источник
comment
Вы используете CocoaPods для включения GooglePlayGames или импортировали его вручную?   -  person GayleDDS    schedule 12.12.2016
comment
на самом деле проект собран Unity, поэтому я не уверен на 100%, но я полагаю, что он использует Cocoapods, поскольку он сообщает мне об этом после создания проекта xcode.   -  person Vladislav Vodicka    schedule 12.12.2016
comment
Я совсем не знаю Unity, но использую CocoaPods. GTMSessionFetcher/Core — это зависимость от GoogleSignIn, которая зависит от модуля GooglePlayGames. Если у вас есть подфайл, закройте Xcode, запустив pod install, затем pod update, откройте файл рабочей области (не проект) и выполните сборку. Надеюсь, это поможет.   -  person GayleDDS    schedule 12.12.2016
comment
спасибо, но к сожалению не помогло. похоже, что Unity уже выполнила эти операции при создании проекта xcode. поэтому ручной вызов pod install и pod update не имел значения   -  person Vladislav Vodicka    schedule 16.12.2016


Ответы (1)


Мне удалось решить ее самостоятельно. Суть в том, чтобы отредактировать файл pod следующим образом (проверено с Unity 5.3.6f1, GPG games plugin 0.9.34 и xcode 8.1):

platform :ios, '8.0'

target 'Unity-iPhone' do
pod 'GooglePlayGames', '5.1'
end

то нужно запустить pod install и все работает!

person Vladislav Vodicka    schedule 16.12.2016