Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Target has transitive dependencies that include statically linked binaries #30

Open
asg1997 opened this issue Mar 27, 2024 · 13 comments
Open
Labels
transmitted Issue transmitted to inner service

Comments

@asg1997
Copy link

asg1997 commented Mar 27, 2024

Добрый день, столкнулась с ошибкой при интеграции sdk со стороны ios.

[!] The 'Pods-Runner' target has transitive dependencies that include statically linked binaries: (/Users/maksim/Desktop/разработка/neuro_astro/ios/Pods/YandexMobileAds/static/YandexMobileAds.xcframework)

# Uncomment this line to define a global platform for your project
platform :ios, '13.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  
  use_frameworks!
  use_modular_headers!
  
  pod 'YandexMobileAds', '~> 6.4.0'

  # для ускорения работы FirebaseFirestore
  pod 'FirebaseFirestore',
    :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git',
    :tag => '10.22.0'
  
    
  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  target 'RunnerTests' do
    inherit! :search_paths
  end
end

# pre_install do |installer|
#     def installer.verify_no_static_framework_transitive_dependencies; end
# end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end
flutter doctor -v

[✓] Flutter (Channel stable, 3.19.4, on macOS 14.2.1 23C71 darwin-x64, locale ru-RU)
• Flutter version 3.19.4 on channel stable at /Users/maksim/Documents/Flutter_SDK/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 68bfaea224 (7 days ago), 2024-03-20 15:36:31 -0700
• Engine revision a5c24f538d
• Dart version 3.3.2
• DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
• Android SDK at /Users/maksim/Library/Android/sdk
• Platform android-34, build-tools 33.0.0
• ANDROID_HOME = /Users/maksim/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
• All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15A507
• CocoaPods version 1.15.2

[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.87.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.84.0

[✓] Connected device (4 available)
• Яна (mobile) • 00008130-001864193CD8001C • ios • iOS 17.3.1 21D61
• Ангелина (mobile) • 00008110-001C1DC60E03801E • ios • iOS 17.4.1 21E236
• macOS (desktop) • macos • darwin-x64 • macOS 14.2.1 23C71 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 123.0.6312.87

[✓] Network resources
• All expected network resources are available.

• No issues found!

@mobile-ads-github
Copy link
Collaborator

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

Thank you for your message, a task with the number PCODESUP-3080 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 mobile-ads-github added the transmitted Issue transmitted to inner service label Mar 27, 2024
@ekinsdrow
Copy link

Добрый день, так же столкнулся с этой же проблемой при попытке сделать pod install или arch -x86_64 pod install
Прилетает такая же ошибка

Запускаю на mac с arm

@ekinsdrow
Copy link

ekinsdrow commented Mar 28, 2024

Получилось победить изменив строчку с use_frameworks! в podfile проекта на use_frameworks! :linkage => :static
image

@asg1997 FYI

UPD - перестал работать pod install, пришлось решать как тут - #17 через изменение зависимости в '.symlink'

@dmitriyap11
Copy link

Ещё один вариант обхода проблемы:

...

target 'Runner' do
 ...
end

# Fix:
# [!] The 'Pods-Runner' target has transitive dependencies
# that include statically linked binaries: (.. /ios/Pods/YandexMobileAds/static/YandexMobileAds.xcframework)
static_frameworks = ['YandexMobileAds', 'yandex_mobileads']
pre_install do |installer|
  installer.pod_targets.each do |pod|
    if static_frameworks.include?(pod.name)
      def pod.static_framework?;
        true
      end
      def pod.build_type;
        Pod::BuildType.static_library
      end
    end
  end
end

...

В этом случае BuildType.static_library используется только у указанных пакетов:YandexMobileAds и yandex_mobileads.

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

Thank you for your message, a task with the number PCODESUP-3080 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 , 3 недели прошло. Коллеги, планируется ли какое-то решение?

@vanyasem
Copy link

vanyasem commented Aug 14, 2024

@mobile-ads-github проблема всё ещё актуальна в версии 7.2.0

@perpointt
Copy link

perpointt commented Sep 25, 2024

@mobile-ads-github пожалуйста поднимите приоритет исьюхи!

Приложения на flutter по умолчанию создаются с опцией use_frameworks!, что означает что в проекте будут использоваться динамические библиотеки.

YandexMobileAds используется статическую библиотеку, тут есть несколько решений

  1. Можно написать use_frameworks! :linkage => :dynamic, но тогда все библиотеки будут установлены статически. Это увеличит вес приложения, но уменьшит время загрузки. Могут возникнуть конфликты с другими библиотеками, которые требуют динамического подключения. Подойдёт для большинства приложений, но в моём случае невозможно использотвать этот вариант из-за isar.

  2. Фикс описан @dmitriyap11 в сообщении выше. В этом случае BuildType.static_library используется только у указанных пакетов:YandexMobileAds и yandex_mobileads. Способ рабочий, спасибо Дима :)

@mobile-ads-github пожалуйста добавьте в документацию этот скрипт, или дайте оффициальный коментарий, как решать эту проблему, спасибо!

@vanyasem
Copy link

@mobile-ads-github проблема всё ещё актуальна в версии 7.4.0

@perpointt
Copy link

@mobile-ads-github пожалуйста дайте хоть какой-то ответ по этой исьюхи

@mobile-ads-github
Copy link
Collaborator

Здравствуйте! Извините за долгий ответ.
Подскажите, пожалуйста, о какой проблеме идет речь. YandexMobileAds линкуется только статически, поэтому в Podfile необходимо сделать правки, чтобы библиотека линковалась статически.

@perpointt
Copy link

@mobile-ads-github где об этом написано в документации? есть какая-то оффициальная рекомендация о том как лучше это делать?

@perpointt
Copy link

@mobile-ads-github ваще демо-приложение не собирается на iOS

Error (Xcode): Undefined symbols:

Error (Xcode): Linker command failed with exit code 1 (use -v to see invocation)

Could not build the application for the simulator.
Error launching application on iPhone 15 Pro Max.

пожалуйста! помогите решить проблему! у нас 5 приложений в которые мы хотим подключить вашу рекламу, но не можем это сделать!

@mobile-ads-github
Copy link
Collaborator

Какую версию Xcode вы используете?

@perpointt
Copy link

@mobile-ads-github Version 15.2 (15C500b)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
transmitted Issue transmitted to inner service
Projects
None yet
Development

No branches or pull requests

6 participants