Ошибка Xcode «сборка для симулятора iOS, но ссылка на dylib, созданная для iOS.. для архитектуры Arm64» от Apple Silicon ⇐ IOS
Ошибка Xcode «сборка для симулятора iOS, но ссылка на dylib, созданная для iOS.. для архитектуры Arm64» от Apple Silicon
У меня есть приложение, которое отлично компилируется и работает на старых компьютерах Mac с процессорами Intel на физических устройствах и в симуляторах iOS.
Это же приложение также отлично компилируется и работает на более новом Apple Silicon Mac с процессором M1 с физическими устройствами iPhone, но оно отказывается компилироваться для симулятора iOS.
р>
Без поддержки симулятора время отладки становится очень долгим, поэтому я пытаюсь решить эту проблему. Не говоря уже о том, что функция предварительного просмотра Xcode тоже не работает, что раздражает.
Первая ошибка, с которой я столкнулся без внесения каких-либо изменений (но перешёл с Intel Mac на M1 Mac), показана ниже.
сборка для iOS Simulator, но ссылка на dylib, созданный для iOS, файл '/Users/andy/workspace/app/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' для архитектуры Arm64
Я использую библиотеку Cocoapods — GoogleWebRTC, и, согласно ее документации, должна поддерживаться рука Arm64, поэтому я не понимаю, почему возникает вышеуказанная ошибка. Как я уже говорил ранее, он отлично компилируется на реальном устройстве, которое, как я полагаю, работает на Arm64.
Согласно документу..
Этот модуль содержит WebRTC iOS SDK в двоичной форме. Это динамика библиотека, содержащая фрагменты Armv7, Arm64 и x86_64. Биткод не поддерживается. В настоящее время предоставляемые нами API предназначены только для Objective C.
Я поискал в Интернете и обнаружил, что есть два решения этой проблемы.
[*]Первый вариант — добавить arm64 в Исключенные архитектуры [*]Второй вариант — отметить Build Active Architecture Only для Release сборки.
Я не совсем понимаю, необходимо ли вышеизложенное, даже когда я компилирую свое приложение на M1 Mac, работающем под архитектурой Arm64, поскольку решение, по-видимому, применимо только для Intel Mac, который не поддерживает симулятор Arm64, поскольку для Intel Mac симуляторы могли работать в x86_64, а не в Arm64, поэтому решение №1 в моем случае неприменимо.
Когда я адаптирую только второе изменение, на самом деле ничего не меняется и выдается та же ошибка.
Когда я вношу оба изменения и пытаюсь выполнить сборку, во время сборки я получаю следующую вторую ошибку. (не совсем уверен на 100 %, исправил ли я первую ошибку или я мог бы добавить вторую ошибку в дополнение к первой, адаптировав два изменения)
Не удалось найти модуль «Лотти» для целевого «x86_64-apple-ios-simulator»; найдено: Arm64, Arm64-Apple-IOS-Simulator
Вторая библиотека, которую я использую, — это lottie-ios, и я подключаю ее с помощью быстрого менеджера пакетов. Я предполагаю, что происходит следующее: поскольку я исключил arm64 в настройках сборки для симулятора iOS, Xcode пытается запустить мое приложение в x86_64. Однако по какой-то причине библиотека не поддерживается в x86_64 и выдает ошибку. У меня нет особого понимания того, что определяет, может ли библиотека работать в x86_64 или Arm64, поэтому я не мог копать, чтобы исследовать эту проблему.
Мой слабый вывод заключается в том, что GoogleWebRTC по какой-то причине невозможно скомпилировать для запуска в симуляторе iOS с arm64 (в отличие от того, что написано в его документации), и lottie- ios невозможно скомпилировать для запуска в симуляторе iOS с x86_64. Поэтому в данном случае я не могу использовать их оба.
Вопрос 1. Я хочу знать, какие изменения я могу внести, чтобы решить эту проблему...
Приложение прекрасно компилируется и работает как на устройстве, так и в симуляторе при компиляции с Intel Mac. Приложение компилируется и отлично работает на устройстве при компиляции из Apple Silicon Mac. Просто приложение отказывается компилироваться и запускаться в симуляторе iOS от Apple Silicon Mac, и я не могу понять, почему.
Вопрос 2. Если решения нет, я хочу понять, почему это вообще происходит.
Я действительно не хочу снова покупать старый Intel Mac только для того, чтобы все работало в симуляторе.
У меня есть приложение, которое отлично компилируется и работает на старых компьютерах Mac с процессорами Intel на физических устройствах и в симуляторах iOS.
Это же приложение также отлично компилируется и работает на более новом Apple Silicon Mac с процессором M1 с физическими устройствами iPhone, но оно отказывается компилироваться для симулятора iOS.
р>
Без поддержки симулятора время отладки становится очень долгим, поэтому я пытаюсь решить эту проблему. Не говоря уже о том, что функция предварительного просмотра Xcode тоже не работает, что раздражает.
Первая ошибка, с которой я столкнулся без внесения каких-либо изменений (но перешёл с Intel Mac на M1 Mac), показана ниже.
сборка для iOS Simulator, но ссылка на dylib, созданный для iOS, файл '/Users/andy/workspace/app/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' для архитектуры Arm64
Я использую библиотеку Cocoapods — GoogleWebRTC, и, согласно ее документации, должна поддерживаться рука Arm64, поэтому я не понимаю, почему возникает вышеуказанная ошибка. Как я уже говорил ранее, он отлично компилируется на реальном устройстве, которое, как я полагаю, работает на Arm64.
Согласно документу..
Этот модуль содержит WebRTC iOS SDK в двоичной форме. Это динамика библиотека, содержащая фрагменты Armv7, Arm64 и x86_64. Биткод не поддерживается. В настоящее время предоставляемые нами API предназначены только для Objective C.
Я поискал в Интернете и обнаружил, что есть два решения этой проблемы.
[*]Первый вариант — добавить arm64 в Исключенные архитектуры [*]Второй вариант — отметить Build Active Architecture Only для Release сборки.
Я не совсем понимаю, необходимо ли вышеизложенное, даже когда я компилирую свое приложение на M1 Mac, работающем под архитектурой Arm64, поскольку решение, по-видимому, применимо только для Intel Mac, который не поддерживает симулятор Arm64, поскольку для Intel Mac симуляторы могли работать в x86_64, а не в Arm64, поэтому решение №1 в моем случае неприменимо.
Когда я адаптирую только второе изменение, на самом деле ничего не меняется и выдается та же ошибка.
Когда я вношу оба изменения и пытаюсь выполнить сборку, во время сборки я получаю следующую вторую ошибку. (не совсем уверен на 100 %, исправил ли я первую ошибку или я мог бы добавить вторую ошибку в дополнение к первой, адаптировав два изменения)
Не удалось найти модуль «Лотти» для целевого «x86_64-apple-ios-simulator»; найдено: Arm64, Arm64-Apple-IOS-Simulator
Вторая библиотека, которую я использую, — это lottie-ios, и я подключаю ее с помощью быстрого менеджера пакетов. Я предполагаю, что происходит следующее: поскольку я исключил arm64 в настройках сборки для симулятора iOS, Xcode пытается запустить мое приложение в x86_64. Однако по какой-то причине библиотека не поддерживается в x86_64 и выдает ошибку. У меня нет особого понимания того, что определяет, может ли библиотека работать в x86_64 или Arm64, поэтому я не мог копать, чтобы исследовать эту проблему.
Мой слабый вывод заключается в том, что GoogleWebRTC по какой-то причине невозможно скомпилировать для запуска в симуляторе iOS с arm64 (в отличие от того, что написано в его документации), и lottie- ios невозможно скомпилировать для запуска в симуляторе iOS с x86_64. Поэтому в данном случае я не могу использовать их оба.
Вопрос 1. Я хочу знать, какие изменения я могу внести, чтобы решить эту проблему...
Приложение прекрасно компилируется и работает как на устройстве, так и в симуляторе при компиляции с Intel Mac. Приложение компилируется и отлично работает на устройстве при компиляции из Apple Silicon Mac. Просто приложение отказывается компилироваться и запускаться в симуляторе iOS от Apple Silicon Mac, и я не могу понять, почему.
Вопрос 2. Если решения нет, я хочу понять, почему это вообще происходит.
Я действительно не хочу снова покупать старый Intel Mac только для того, чтобы все работало в симуляторе.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
XCode 16.1 Сборка для «симулятора iOS», но ссылка на dylib, созданная для «macOS»
Anonymous » » в форуме IOS - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
XCode 16.1 Сборка для «симулятора iOS», но ссылка на dylib, созданная для «macOS»
Anonymous » » в форуме IOS - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
XCode 16.1 Сборка для «симулятора iOS», но ссылка на dylib, созданная для «macOS»
Anonymous » » в форуме IOS - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-
-
-
XCode 16.1 Сборка для «симулятора iOS», но ссылка на dylib, созданная для «macOS»
Anonymous » » в форуме IOS - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
XCode 16.1 Сборка для «симулятора iOS», но ссылка на dylib, созданная для «macOS»
Anonymous » » в форуме IOS - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-