Подтвердить что ты не робот

Модуль "GoogleMobileAds" не найден в iOS

Я обновил SDK Google AdMob до 7.1.0 с помощью Pods.

Итак, в моем appDelegate.m, я пытаюсь добавить эту строку

@import GoogleMobileAds;

Но я получаю сообщение об ошибке Модуль "GoogleMobileAds" не найден.

Эта проблема также присутствует в примере Interstial Ad google на gitHub.

Отношения Ранджит

4b9b3361

Ответ 1

Обязательно установите флажок "Копировать элемент в случае необходимости" при копировании GoogleMobileAds.framework в ваше приложение.

введите описание изображения здесь

В моем случае я удалил фреймворк и снова добавил эту фреймворк и проверил, что это поле и проблема исчезли.

Ответ 2

попробуйте скопировать ваш GoogleMobileAds.framework в корневую папку проекта и после этого добавить его в библиотеки. Он отлично работает для меня.

Ответ 3

Ни один из других ответов на сегодняшний день не работал у меня. Вот что:

Перейдите к разделу "Построение фаз", "Свяжите двоичные файлы с библиотеками". Я уже добавил GoogleMobileAds.framework здесь, поэтому я удалил его и снова добавил.

Чтобы добавить его, щелкните знак + для раздела "Связывание двоичных файлов с библиотеками" и нажмите "Добавить другое...". Перейдите к месту хранения GoogleMobileAds.framework и выберите его.

Убедитесь, что вы сначала добавили GoogleMobileAds.framework в свой проект, перейдя в "Файл" > "Добавить файлы в ваше имя проекта".

Это исправило проблему для меня.

Ответ 4

Вот ответ:

Импортируйте это в свой .m файл:

#import <GoogleMobileAds/GADInterstitial.h>
#import <GoogleMobileAds/GADBannerView.h>

Ответ 5

Я решил установить "Определить модули" в "ДА" в настройках сборки и повторно импортировать Framework.

Ответ 6

Вот решение, которое сработало для меня:

Не делайте этого
don ' t do this
Вместо этого перетащите GoogleMobileAds.framework в свой проект и добавьте все остальные фреймы, упомянутые здесь, и при необходимости перетащите и перетащите нужные пункты.

введите описание изображения здесь

Ответ 7

Я столкнулся с этой проблемой при обновлении моих контейнеров и использовании Firebase. К сожалению, ни один из ответов здесь не помог, поэтому я решил, что опубликую то, что работает для меня.

Я нашел отличный поток, который помог мне здесь. В основном выполнялось следующее:

  • Удалить мои контейнеры - rm -rf Pods
  • Переустановите мои контейнеры - pod install --repo-update

Надеюсь, это поможет кому-то, потому что это меня немного смутило.

Ответ 8

Для меня проблема заключалась в том, что я не обновил приложение "Цель развертывания". Он был установлен в < 7.0, поэтому он, вероятно, жаловался. Как только я обновил цель до > 7.0, ошибки исчезли. (для будущих людей, обновляющих свои приложения всего несколько раз в год, как я)

Ответ 9

Реальная проблема здесь в том, что в настройках сборки вашего приложения вам не хватает настроек:

Пути поиска в каркасе

Либо отредактируйте файл project.pbxproj, чтобы BuildSettings включал что-то вроде:

FRAMEWORK_SEARCH_PATHS = "/Users/bram/src/GoogleMobileAdsSdkiOS-7.16.0/";

Или используйте Xcode UI, чтобы изменить настройки сборки следующим образом:

настройка в интерфейсе Xcode

Ответ 10

Я застрял с этой проблемой в течение нескольких часов, но окончательное решение найдено. Мой метод не использует ссылки на "ручные файлы", а только использование чистого подкаста.

Я столкнулся с этой проблемой, когда обновил свои модули ('pod install' или 'pod update') после добавления другой цели в проект.

Мое решение:

Перейдите к своему подкоду и убедитесь, что вы определили блок "target..." для каждой цели вашего проекта (вуаля! кажется, не документирована, по крайней мере, я ее не нашел), Например, у вас есть 2 цели: "theApp" и "theApp Lite". В этом случае ваш файл подкачки должен выглядеть так:

target 'theApp' do
# ...your pods and options here
end

target 'theApp Lite' do
# ...your pods and options here
end

Затем выполните обновление "pod install" или "pod update" для обновления ваших библиотек.

Затем перейдите к каждой целевой настройке "Общие" и убедитесь, что у вас есть правильный (соответствующий целевому) "libPods... a" (или "libPods... framework", если вы используете опцию "use_frameworks!" podfile) файл, связанный в разделе "Связанные структуры и библиотеки". Удалите мусор/неправильные/запутанные ссылки, если таковые имеются. Добавьте вручную, если они отсутствуют (должны появиться в группе "Рабочее пространство" /dir, когда вы нажмете "+" ).

В разделе "Фазы сборки" вы должны увидеть "[CP]" - префиксные элементы для каждой цели.

После этого у меня не было проблем со зданием.

Ответ 11

В случае, если кто-то все еще сталкивается с этой ошибкой - проверьте, заполнено ли в поле настроек сборки "Пути поиска в каркасе" правильный путь к вашей структуре

Ответ 12

Версия Xcode 7.2.1 (7C1002) Цель C

У меня была эта проблема, и мне приходилось постоянно добавлять GoogleMobileAds в проект, чтобы избавиться от этого. Не уверен, что это ошибка. Сначала выберите GoogleMobileAds.framework, затем просто отключите и отметьте целевое членство, затем попробуйте создать ошибку. Это сработало для меня. Надеюсь, это поможет.

Ответ 13

Если кто-то все еще испытывает эту же проблему, я просто смог найти решение. Я потратил несколько часов на то, чтобы все, что было рекомендовано до сих пор, и НИЧЕГО не работало, я до сих пор не знаю, что я делаю неправильно, но здесь был небольшой взлом, который работал на меня: Независимо от того, какой формат я загружал из Google (я пробовал руководство и методы Cocoa Pods), не работал, но когда я только что загрузил свой небольшой проект xCode-тестера (BannerExample.xcodeproj, я считаю), я скопировал структуру, которая была связана с этим тестовый проект, вставил его в файл целевого проекта, а затем добавил фреймворк и связал его. После этого я смог полностью импортировать фреймворк, и adMob отлично работает. Я не могу для жизни понять, какая разница, но это действительно сработало. Надеюсь, что это решение может помочь кому-либо, кто имеет дело с одной и той же проблемой. Кажется, я вырвал одну из последних пяти волос на голове. Удачи!

Ответ 14

Не распаковывайте файлы lib под окнами, он не может правильно обрабатывать символические ссылки.

Ответ 15

Я просто добавляю "use_frameworks!". в podfile, обновить pod и он работает. Эта проблема возникла, когда я обновил свою ОС до версии El Captain (10.11.15) и XCode до 8. Мой podfile сейчас:

    target 'My Target' do
       use_frameworks!
       pod 'MagicalRecord'
       pod 'AFNetworking'
       pod 'Firebase'
       pod 'Firebase/Core'
       pod 'Firebase/AdMob'
    end

Ответ 16

У меня такая же проблема. вот что я сделал. Это сработало для меня (надеюсь, это помогает кому-то).

  • скопируйте файл GoogleMobileAds.framework и удалите его из контейнера, если он у вас есть.
  • Добавьте эту структуру в свой проект вручную (выберите "при необходимости скопировать элементы" ). Проверьте фазы сборки, чтобы убедиться, что у вас есть это в разделе "link binary...".
  • Очистить и восстановить его снова = > успех.

Ответ 17

У меня такая же проблема. Вот что я сделал. Надеюсь, это поможет кому-то.

  • Удалите GoogleMobileAds.framework из вашего проекта (или сохраните его в другой папке).
  • Перейдите к Build Phases, Link Binary with Libraries. Нажмите знак + для раздела Link Binary with Libraries и нажмите Add Other.... Перейдите к месту хранения GoogleMobileAds.framework > Versions > A > GoogleMobileAds и откройте его.

Это прекрасно исправило проблему для меня.

Ответ 18

Я оставляю script, который генерирует инъекционные статические фреймворки

pod --version 1.3.1
Version 9.1 (9B55)

Подфайл [Target]

target 'generic' do
    #Google
    pod 'GoogleAds-IMA-iOS-SDK', '~> 3.6.1'
    pod 'Google-Mobile-Ads-SDK', '~> 7.25.0'

    #pod Module 'GoogleMobileAds' not found 
    pod '#LIB_ERROR#'
    sd
end

Подфайл [Fuction]

def inject_frameworks(installer, targetName, listPaths)
    def print_info(text)
        puts "\e[33m[!] #{text}\e[0m"
    end

    installer.pods_project.targets.each do |target|
        if target.name == targetName
            print_info "Inject frameworks in #{target.name}"
            config = target.build_configurations.first
            if config
                xcconfig_path = config.base_configuration_reference.real_path
                build_settings = Hash[*File.read(xcconfig_path).lines.map{|x| x.split(/\s*=\s*/, 2)}.flatten]

                frameworks_paths = Array.new
                if build_settings['FRAMEWORK_SEARCH_PATHS']
                    frameworks_paths.concat(build_settings['FRAMEWORK_SEARCH_PATHS'].delete!("\n").split(/ /))
                end 

                listPaths.each do |frameworks_path|
                    print_info "[#{target.name}] Add search path frameworks #{File.dirname frameworks_path}"
                    frameworks_paths.push(File.dirname frameworks_path)
                end

                build_settings['FRAMEWORK_SEARCH_PATHS'] = frameworks_paths.join(" ")
                File.open(xcconfig_path, "w") { |file| file << "" }
                build_settings.each do |key,value|
                  File.open(xcconfig_path, "a") {|file| file << "#{key} = #{value.strip}\n"}
                end

                listPaths.each do |frameworks_path|
                    print_info "[#{target.name}] Add frameworks #{File.basename frameworks_path}"
                    new_file_framework = config.project.frameworks_group.new_file(frameworks_path)
                    target.frameworks_build_phase.add_file_reference(new_file_framework, true)
                end
            end
        end
    end
end

Подфайл [Run Fuction]

post_install do |installer|
    inject_frameworks(installer, "#LIB_ERROR#", [
        '$(PROJECT_DIR)/Google-Mobile-Ads-SDK/Frameworks/frameworks/GoogleMobileAds.framework',
        '$(PROJECT_DIR)/GoogleAds-IMA-iOS-SDK/GoogleInteractiveMediaAds/GoogleInteractiveMediaAds.framework'
    ])
end