yoomoney / yookassa-payments-swift

This library allows implementing payment acceptance into mobile apps on iOS and works as an extension to the YooMoney API
https://yookassa.ru/developers
MIT License
41 stars 41 forks source link

Не подключается TrustDefender #31

Closed alekzernov closed 4 years ago

alekzernov commented 5 years ago

Три дня пытаюсь засунуть его в проект без успешно пишет не найден модуль.

oltv00 commented 5 years ago

Привет. Какую версию библиотеки подключаете? Добавляете TrustDefender в папку Frameworks? Корректную инструкцию продублирую ниже, тоже самое описано в README.md Обратите внимание на пункт 3.

Подключение зависимостей

CocoaPods

  1. Установите CocoaPods

    gem install cocoapods
  2. Добавьте зависимости в Podfile.\ Пример Podfile из демо-приложения.

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '8.0'
    use_frameworks!
    
    target 'Your Target Name' do
    pod 'YandexCheckoutPayments',
      :git => 'https://github.com/yandex-money/yandex-checkout-payments-swift.git',
      :tag => 'tag'
    end

    Your Target Name - название таргета в Xcode для вашего приложения.\ tag - версия SDK. Актуальную версию можно узнать на github в разделе releases.

  3. Добавьте библиотеку TrustDefender.framework в папку Frameworks.\ Подробнее про TrustDefender.

    App
    ├─ Pods
    └─ Frameworks
     └─ TrustDefender.framework
alekzernov commented 5 years ago

Да все так делаю версия 2.0.3

alekzernov commented 5 years ago
2019-03-06 23 37 33
oltv00 commented 5 years ago

Не добавляйте файл в проект в Xcode. Просто в Finder нужно перенести его в папку Frameworks

Update: В новых версиях нужно добавлять в файл проекта. см. README.md

alekzernov commented 5 years ago

Создал в корне проекта папку Frameworks через Finder и туда перенес не работает

alekzernov commented 5 years ago
2019-03-08 9 50 05
oltv00 commented 5 years ago

@alekzernov Проверьте что из проекта удалены все ссылки на TrustDefender.framework. Лучше для теста попробовать создать новый проект.

alekzernov commented 5 years ago

@alekzernov Проверьте что из проекта удалены все ссылки на TrustDefender.framework. Лучше для теста попробовать создать новый проект.

сделал все ровно не подключается

chepil commented 5 years ago

сделал все ровно не подключается

1) у цели в Build Settings найдите Framework Search Paths 2) проверьте что там есть путь $(PROJECT_DIR)/Frameworks ( поскольку Вы говорите, что положили в папку проекта Frameworks и во внутрь уже TrustDefender.framework)

meluzovsemyon commented 5 years ago

@oltv00 Привет. Такая же проблема. Пробовал с версиями 2.0.6, 2.0.7. Добавлял и в проект xCode, и через Finder. Framework Search Paths в Build Settings прописывал. Модуль не находит

NickSivin commented 4 years ago

Тоже столкнулся с данной проблемой, решилось следующими шагами:

  1. В корне проекта создал папку 'Frameworks', в самом проекте у группы без папки 'Frameworks' указал путь на эту папку. В эту папку положил TrustDefender, но не добавлял его в проекте.
  2. В 'Build Settings' в 'Framework Search Paths' добавил значение '$(PROJECT_DIR)/Frameworks'
  3. Самое интересное - тот файл .framework, что мне скинули, имел каку-то странную структуру. Во первых нужный TrustDefender.framework почему-то лежал внутри iOS.TrustDefender.framework. Не проблема, вытаскиваем наружу нужный файл. Во вторых уже в том самом TrustDefender.framework лежали странные файлы-ссылки на папку с текущей версией, из-за чего IDE не может корректно работать с этим framework. Я пошел по простому пути и удалил все в корне TrustDefender.framework, оставив папку Versions, далее из текущей версии папки (у меня это Versions/A), в корень вынес необходимые файлы (Modules, TrustDefender, Headers), после чего удалил уже ненужную папку Versions. И вуаля, проект собрался и фреймворк стал распознаваться IDE. @oltv00 можете прокомментировать данную ситуацию? Это какой-то лютый костыль или нам скинули "сырую" версию и я сделал все правильно? Так же я бы порекомендовал добавить в документацию пункты о том, что TrustDefender.framework не нужно добавлять в проект, а достаточно просто положить его в папку Frameworks. И про шаги с папкой я бы тоже добавил в документацию.
AndrewKSpire commented 4 years ago

@NickSivin Можно, пожалуйста чуть подробнее про первый пункт, что имеется ввиду?

в самом проекте у группы без папки 'Frameworks' указал путь на эту папку

NickSivin commented 4 years ago

Можно, пожалуйста чуть подробнее про первый пункт, что имеется ввиду?

@AndrewKSpire по дефолту у вас в проекте есть группа без папки (Frameworks), я создал папку в корне проекта с аналогичным именем и указал группе эту папку. После чего положил туда TrustDefender

AndrewKSpire commented 4 years ago

@NickSivin Огромное спасибо! Помогло

iwheelbuy commented 4 years ago

У меня есть предположение, что интегрировать фреймворк можно гораздо проще, т.е. без манипуляций с удаленным :git :tag, без перемещения фреймворка, без "Search Paths", без путей $(PROJECT_DIR)/Frameworks и т.п.

  1. Выбираете интересующий вас релиз, качаете его, разархивируете, переименовываете папку в XXX и переносите в корень вашего проекта (туда где лежит ваше Podfile). В xcodeproj или workspace ничего перетаскивать не надо!
  2. Внутри папки XXX создаете папку Frameworks и в нее копируете полученный от менеджера TrustDefender.framework
  3. В вашем Podfile добавляете pod 'YandexCheckoutPayments', :path => 'XXX'
  4. pod install
oltv00 commented 4 years ago

@iwheelbuy Лично для меня это не выглядит проще)

@alekzernov Актуальна ли еще проблема?