yandexmobile / yandex-ads-sdk-ios

Yandex Mobile Ads SDK iOS
https://yandex.com/dev/mobile-ads/
Other
40 stars 9 forks source link

Version 6.1.0 MobileAdsBundle.bundle is not added with Cocoapods use_frameworks! :linkage => :static #181

Closed Str4tos closed 2 months ago

Str4tos commented 1 year ago

Добрый день. Интегрирую Yandex Mobile Ads 6.1.0 с помощью Cocoapods.
И получаю ошибку интеграции:

[Integration] MobileAdsBundle.bundle is not added. Make sure that bundle was added to the Copy Bundle Resource phase

Проблема происходит когда:

  1. Xcode проект состоит из App target и Dynamic Framework Target, например как Unity App.
  2. Cocoapods зависимости интегрируются в Dynamic Framework Target, а не в App Target.
  3. Podfile имеет строку use_frameworks! :linkage => :static для статической линковки зависимостей.

В этом случае код и Resources.bundle зависимых фреймворков добавляется в Dynamic Framework.

image

Но Yandex Ads Framework ищет MobileAdsBundle.bundle только в Bundle.main. Возможно стоит искать MobileAdsBundle.bundle примерно следующим кодом:

// Bundle в котором лежит код Yandex Mobile Ads Framework
if let path = Bundle(for:YMAMobileAds.self).path(forResource:"MobileAdsBundle", ofType: "bundle") {
   return Bundle(path: path)
}
// Main Bundle приложения
if let path = Bundle.main.path(forResource:"MobileAdsBundle", ofType: "bundle") {
   return Bundle(path: path)
}

Понимаю, что я могу добавить MobileAdsBundle.bundle в Copy Bundle Resource phase для App target, но лучше учитывать такую ситуацию в Framework который ищет свои ресурсы.

Спасибо

mobile-ads-github commented 1 year ago

Спасибо за Ваше обращение, для разбора создана задача с номером PCODESUP-2587. Мы ознакомимся и вернемся с ответом в течение 2 дней, возможно запросим дополнительную информацию.

Thank you for your message, a task with the number PCODESUP-2587 has been created for analysis. We will get acquainted and return with the answer within 2 days, we may request additional information.

mobile-ads-github commented 1 year ago

Проверим возможность такой реализации. При положительном исходе, текущее ишью будет прилинковану к релизу с фиксом.