Модуль "GoogleMobileAds" не найден в iOS
Я обновил SDK Google AdMob до 7.1.0 с помощью Pods.
Итак, в моем appDelegate.m, я пытаюсь добавить эту строку
@import GoogleMobileAds;
Но я получаю сообщение об ошибке Модуль "GoogleMobileAds" не найден.
Эта проблема также присутствует в примере Interstial Ad google на gitHub.
Отношения
Ранджит
Ответы
Ответ 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
Вот решение, которое сработало для меня:
Не делайте этого
Вместо этого перетащите 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