Ошибка Ionic ios, архив ошибок не найден
Я пытался понять это, но в конце туннеля, похоже, нет света, поэтому он пытается здесь... надеюсь, что вы сможете помочь.
У меня есть ионный проект. Запуск через ionic serve
дает мне результат, которого я ожидаю, без проблем. Однако при запуске команды, такой как ionic cordova run ios -lc
, я получаю ошибку, нарушающую процесс сборки. Ошибка, которую я получаю, следующая:
[cordova] error: archive not found at path '/Users/path-to-app/platforms/ios/demoapp.xcarchive' [cordova] ** EXPORT FAILED ** [cordova] [cordova] (node:5866) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error code 65 for command: xcodebuild with args: -exportArchive,-archivePath,demoapp.xcarchive,-exportOptionsPlist,/Users/path-to-app/platforms/ios/exportOptions.plist,-exportPath,/Users/path-to-app/platforms/ios/build/device [cordova] (node:5866) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Здесь я вижу две разные ошибки: архив не найден и проблема с устаревшими. Не знаю, кто нарушает сборку, но не может найти решение для одного из них.
Ионная информация:
Ionic:
ionic (Ionic CLI) : 4.1.2
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.0
Cordova:
cordova (Cordova CLI) : 8.0.0
Cordova Platforms : android 7.0.0, browser 5.0.4, ios 4.5.5
Cordova Plugins : no whitelisted plugins (0 plugins total)
System:
Android SDK Tools : 25.1.7 (/Users/Vincent/Library/Android/sdk)
ios-deploy : 1.9.2
NodeJS : v9.1.0 (/usr/local/bin/node)
npm : 6.4.1
OS : macOS High Sierra
Xcode : Xcode 10.0 Build version 10A255
Любая помощь будет оценена!
Ответы
Ответ 1
В настоящее время cordova-ios несовместим с Xcode 10
Вы можете попытаться отключить новую систему сборки, которую использует Xcode 10, и использовать старую, добавив ее в файл build.json
"buildFlag": [
"-UseModernBuildSystem=0"
]
или добавление --buildFlag="-UseModernBuildSystem=0"
к команде сборки
Полная команда должна быть cordova build ios --buildFlag="-UseModernBuildSystem=0"
.
Или для ионной ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
Ответ 2
В дополнение к вышеуказанному ответу, предоставленному @jcesarmobile, другим решением является создание приложения с Ionic CLI, выполнив следующую команду:
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
В соответствии с документацией по ionic build
команды, передать дополнительные параметры в Кордова CLI вы должны использовать --
разделитель после аргументов Ионных CLI. Выполнение команды build
через Ionic CLI вместо CLI Cordova также будет создавать сетевые ресурсы и обеспечивать дружеские проверки, прежде чем кордова просто создаст приложение.
Ответ 3
Пример для рабочего build.json (для размещения в корневом каталоге кордовой/ионной программы) - это следующий контент:
{
"ios": {
"debug": {
"buildFlag": [
"-UseModernBuildSystem=0"
]
},
"release": {
"buildFlag": [
"-UseModernBuildSystem=0"
]
}
}
}
Дополнительные сведения о build.json см. Также в документе cordova doc: https://cordova.apache.org/docs/en/latest/guide/platforms/ios/
Ответ 4
Команда, предложенная jcesarmobile, не работает для меня, но делает
cordova build ios --buildFlag="-UseModernBuildSystem=0"
(без иона) успешно завершил сборку.
После этого я смог сделать Ion Cordova build IOS без проблем. (даже без buildFlag). Я не эксперт в этом, на самом деле было ошибкой не включать ионный LOL. Таким образом, хотя все, кажется, работает хорошо, я не уверен, есть ли какие-либо недостатки в строительстве только с кордовой в первый раз. Может быть, кто-то может пролить свет на комментарии
Ответ 5
Надеюсь, это все еще полезно.
Несколько ловушек: подготовка файла XCODE.
Пришло время подготовить проект к открытию в XCODE.
Однако Ionic-Cordova не поддерживает НОВУЮ систему сборки XCODE. Таким образом, проект должен быть подготовлен для системы сборки Legacy. Подводный камень № 2.
Важный! Отключите устройство iPhone или iPad, подключенное к Mac, или следующая команда не будет работать !!! Ловушка № 3.
ionic cordova build ios --prod --buildFlag='-UseModernBuildSystem=0'
Congrats! Ваш файл MyApp.xcodeproj(ect) готов. Вы почти на половину пути для загрузки IPA.
Просто дважды щелкните файл Myapp.xcodeproj или откройте его через XCODE.
![Picture showing XCODE]()
Есть несколько других подводных камней, которые вы найдете:
- Это типичный подводный камень # 4, чтобы не иметь надлежащих привилегий. В
В частности, "Разработчик" (Pitfall # 4.1) не имеет привилегий.
отправить приложения в магазин
- Дважды проверьте, что "Идентификатор пакета" является именно тем, который вы установили
в файле config.xml!
- В XCODE обнаружена ошибка подписи Pitfall # 5, поэтому снимите флажок "Автоматически управлять подписью" и снова отметьте. Вы обязательно столкнетесь с этой ошибкой.
Ошибки XCODE и неправильная поддержка Cordova новой системы здания приводят ко всем этим проблемам. Я сделал полное руководство, показывающее, как их исправить после долгих часов. Надеюсь, это поможет!
Ответ 6
В моем случае я должен указать версию компилятора swift и параметры рабочего пространства в XCODE 10.2.1
ПРИМЕЧАНИЕ: в моем проекте я установил плагин Onesignal
Сначала я указал версию компилятора swift.
- Откройте файл myproject-name.workspace, потому что установлены cocoapods.
- Перейдите на вкладку " Настройки сборки" в xcode.
- Прокрутите в самом низу вкладки настройки сборки и найдите Swift Compiler - Language.
- Выберите версию Swift из выпадающего меню Swift Language Version (например, Swift 4).
Затем измените настройку рабочего пространства
- Зайдите в Xcode File Menu
- Выберите настройки рабочего пространства
- Выберите Legacy Build System из выпадающего списка Build System.
- Нажмите Готово
А ведь попробуйте пересобрать следующую команду в терминале
ionic cordova build ios