Неопределенные символы для архитектуры x86_64 в проекте iOS

Я пытаюсь использовать эту интеграцию Spotify SDK для React Native в моем проекте iOS.

Я получаю следующую ошибку:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_SPTAudioStreamingController", referenced from:
      objc-class-ref in libRCTSpotify.a(RCTSpotify.o)
  "_OBJC_CLASS_$_SPTAuth", referenced from:
      objc-class-ref in libRCTSpotify.a(RCTSpotify.o)
  "_OBJC_CLASS_$_SPTDiskCache", referenced from:
      objc-class-ref in libRCTSpotify.a(RCTSpotify.o)
  "_OBJC_CLASS_$_SPTRequest", referenced from:
      objc-class-ref in libRCTSpotify.a(RCTSpotify.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Раздел Архитектуры в папке RCTSpotify.xcodeproj в папке Библиотеки выглядит как и все остальные, про x86_64 ничего не могу найти, и эта ошибка ранее никогда не появлялась в проекте.

Раздел архитектуры RCTSpotify.xcodeproj


person Josh Rumbut    schedule 23.01.2018    source источник


Ответы (2)


Прокрутите вверх и проверьте, есть ли другая ошибка прямо перед этим, которая говорит что-то вроде этого:

warning: skipping file '[FOLDER_PATH]/node_modules/rn-spotify-sdk/ios/external/SpotifySDK' (unexpected file type 'folder' in Frameworks & Libraries build phase)

Если это так, то я вам понравился, и вы сразу прочитали README. На самом деле вам нужно добавить три фреймворка из внутри этой папки, а не только из папки SpotifySDK.

Это SpotifyMetadata.framework, SpotifyAuthentication.framework и SpotifyAudioPlayer.framework. Если вы добавите эти три, то это должно работать. Они в папке /node_modules/rn-spotify-sdk/ios/external/SpotifySDK/.

В итоге должно получиться так:

это

person Kevin Guebert    schedule 07.02.2019
comment
Я не могу полностью подтвердить этот ответ, я получил его через кладж, к которому у меня больше нет доступа, но похоже, что он делает то, что делал кладж, более уродливым образом. - person Josh Rumbut; 14.11.2019

Возможно, SDK, который вы пытаетесь использовать, создан для реального устройства, а не для симулятора. Пожалуйста, проверьте.

person minhazur    schedule 23.01.2018
comment
Документы предполагают, что он должен работать в симуляторе, есть ли способ проверить это окончательно? - person Josh Rumbut; 23.01.2018
comment
вы можете сначала запустить на реальном устройстве. - person minhazur; 23.01.2018