Почему я получаю эту ошибку при создании XCFramework?: При сборке для симулятора iOS библиотека не была найдена в пути

Я написал следующие команды в файле скрипта для создания XCFrameworks как для iPhoneSimulator, так и для iPhoneOS, как показано ниже:

xcodebuild archive -scheme "ProjectD" -archivePath "/Users/Ron/Archives/ProjectDiphoneSimulator.xcarchive" -sdk 'iphonesimulator' SKIP_INSTALL=NO

xcodebuild archive -scheme "ProjectD" -archivePath "/Users/Ron/Archives/ProjectDiphoneOS.xcarchive" -sdk 'iphoneos' SKIP_INSTALL=NO

xcodebuild -create-xcframework -framework "/Users/Ron/Archives/ProjectDiphoneSimulator.xcarchive/Products/Library/Frameworks/ProjectDiphoneSimulator.framework" -output "/Users/Ron/XCFrameworks/ProjectDiphoneSimulator.xcframework"

xcodebuild -create-xcframework -framework "/Users/Ron/Archives/ProjectDiphoneOS.xcarchive/Products/Library/Frameworks/ProjectDiphoneOS.framework" -output "/Users/Ron/XCFrameworks/ProjectDiphoneOS.xcframework"

Я попытался использовать это в проекте после перетаскивания его на встроенные платформы и библиотеки.

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

При сборке для iOS Simulator библиотека не была найдена в /Users/Ron/XCFrameworks/ProjectD.xcframework.

Если я изменю порядок создания архива и XCFramework, как показано ниже:

xcodebuild archive -scheme "ProjectD" -archivePath "/Users/Ron/Archives/ProjectDiphoneOS.xcarchive" -sdk 'iphoneos' SKIP_INSTALL=NO

xcodebuild archive -scheme "ProjectD" -archivePath "/Users/Ron/Archives/ProjectDiphoneSimulator.xcarchive" -sdk 'iphonesimulator' SKIP_INSTALL=NO

xcodebuild -create-xcframework -framework "/Users/Ron/Archives/ProjectDiphoneOS.xcarchive/Products/Library/Frameworks/ProjectDiphoneOS.framework" -output "/Users/Ron/XCFrameworks/ProjectDiphoneOS.xcframework"

xcodebuild -create-xcframework -framework "/Users/Ron/Archives/ProjectDiphoneSimulator.xcarchive/Products/Library/Frameworks/ProjectDiphoneSimulator.framework" -output "/Users/Ron/XCFrameworks/ProjectDiphoneSimulator.xcframework"

Это работает для симулятора, а не для устройства с той же ошибкой:

При сборке для iPhone библиотека не была найдена в /Users/Ron/XCFrameworks/ProjectD.xcframework.

Я также установил «Библиотеки сборки для распространения» на «Да». Если я попытаюсь создать их с разными целями (2 XCFrameworks для iphone и симулятор), это сработает. Но это буквально противоречит цели XCFrameworks.

Я что-то упускаю или делаю какие-то шаги неправильно? Спасибо за ответы заранее.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
2
0
5 467
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно создать один .xcframework файл из обоих .framework. (который будет включать в себя симулятор и архитектуру устройства). Для этого запустите одну команду xcodebuild -create-xcframework и передайте 2 разных файла .framework:

xcodebuild
-create-xcframework
-framework "/Users/Ron/Archives/ProjectDiphoneOS.xcarchive/Products/Library/Frameworks/ProjectDiphoneOS.framework"
-framework "/Users/Ron/Archives/ProjectDiphoneSimulator.xcarchive/Products/Library/Frameworks/ProjectDiphoneSimulator.framework"
-output "/Users/Ron/XCFrameworks/ProjectDiphoneOS.xcframework"

Когда вместо этого вы запускаете 2 разные команды xcodebuild -create-xcframework, в результате ваш .xcframework включает только последний переданный вами .framework файл, предназначенный для устройств. Вот почему ваш проект не запускается в симуляторе.

Спасибо за ответ!. Это была простая вещь, которую я упустил из виду.

Rohith S 21.12.2020 09:48

Другие вопросы по теме