Ошибка Кордовы ios Images.xcassets
Я потратил много времени, пытаясь разобраться с этим, но безрезультатно.
Я обдумал кордову, и с тех пор как мой капитан у моего mac теперь есть проблемы с NPM и кордорой.
Я получил его для установки, но теперь я должен использовать sudo для кордовы.
I попробовал следующее:
sudo cordova platform remove ios
sudo cordova platform add ios
sudo cordova build ios
И это дает мне следующий вывод:
** BUILD FAILED **
The following build commands failed:
CompileAssetCatalog build/emulator/<AppName>.app <AppName>/Images.xcassets
(1 failure)
ERROR building one of the platforms: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/cordova/build-debug.xcconfig,-project,<AppName>.xcodeproj,ARCHS=i386,-target,<AppName>,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/sharedpch
You may not have the required environment or OS to build this project
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/cordova/build-debug.xcconfig,-project,<AppName>.xcodeproj,ARCHS=i386,-target,<AppName>,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Users/MacUserName/Desktop/<AppName>/<AppName>/platforms/ios/build/sharedpch
версия Кордовы
sudo cordova -v
6.0.0
Обновление: теперь я запускаю 6.1.1, все еще ту же проблему
версия платформы Кордовы iOS
sudo cordova platform ios -v
6.1.1
Версия для Mac: 10.11.3
XCode Версия: 7.2.1
Ответы
Ответ 1
Я бы порекомендовал использовать кордово-иконки и кордово-всплеск-пакеты npm. Это потому, что вы можете просто поместить два изображения в свой корень, тогда команды будут работать для вас. Они написаны кордовой, и вы можете установить их с помощью:
npm install -g cordova-icon
npm install -g cordova-splash
Затем просто введите 1024x1024 версию вашего логотипа в качестве значка "icon.png" в корне проекта. А:
"Изображение заставки должно быть 2208x2208 px с центральным квадратом около 1200x1200 px. Изображение может быть обрезано вокруг центральной площади.
https://www.npmjs.com/package/cordova-splash
Просто поместите изображение, соответствующее этому описанию в корне проекта, как "splash.png"
Удалите любые строки в файле config.xml, которые указывают изображения, которые будут использоваться для ios, значок cordova-icon/splash автоматически поместит их в нужное место с правильными именами, чтобы xcode распознал их.
Как только у вас есть эта настройка, просто выполните следующие команды:
cordova platform remove ios
cordova platform add ios
cordova-icon
cordova-splash
Затем запустите команду сборки. Для меня это:
cordova build ios --build-config
Но у вас может не быть конфигурации сборки или нужны дополнительные параметры. Если сборка завершилась неудачно (убедитесь, что вы запустили команду, даже если вы считаете, что она не сработает - она установит все), просто откройте созданное рабочее пространство в платформах /ios в xcode, очистите проект и выполните сборку. Это должно работать.
Ответ 2
Мне удалось исправить эту проблему:
- удаление ссылок на значок или заставки в файле
config.xml
;
- поместите файлы
splash.png
и/или icon.png
в папку www/resources
вашего проекта cordova; то,
- запустите команду
ionic cordova resources --icon
или ionic cordova resources --splash
это создаст для вас все правильные файлы splash/icon и добавит их в файл config.xml
. Это предупреждение затем уходит.
Надеюсь, что это сработает!
Ответ 3
- Переименовать платформу /ios
- Тип терминала:
cordova platform add ios
-
cordova build ios
.
работал в моем случае
Ответ 4
Я получил эту ошибку, когда использовал cordova-icon
, но мое изображение icon.png
не было квадратным.
Изменение icon.png
на квадратное изображение и повторное выполнение cordova-icon
означало, что cordova build ios
теперь работает для меня.
Ответ 5
После копания в cordova_lib, я думаю, мне ясно (мне), что кордова не должна изменять размер значка для вас, а только копировать их, если они существуют и имеют правильные размеры.
Смотрите этот код в кордове-lib\src\cordova\metadata\ios_parser.js:
// See https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/LaunchImages.html
// for launch images sizes reference.
var platformIcons = [
{dest: 'icon-60.png', width: 60, height: 60},
{dest: '[email protected]', width: 120, height: 120},
{dest: '[email protected]', width: 180, height: 180},
{dest: 'icon-76.png', width: 76, height: 76},
{dest: '[email protected]', width: 152, height: 152},
{dest: 'icon-small.png', width: 29, height: 29},
{dest: '[email protected]', width: 58, height: 58},
{dest: 'icon-40.png', width: 40, height: 40},
{dest: '[email protected]', width: 80, height: 80},
{dest: 'icon.png', width: 57, height: 57},
{dest: '[email protected]', width: 114, height: 114},
{dest: 'icon-72.png', width: 72, height: 72},
{dest: '[email protected]', width: 144, height: 144},
{dest: 'icon-50.png', width: 50, height: 50},
{dest: '[email protected]', width: 100, height: 100}
];
var destIconsFolder, destSplashFolder;
var xcassetsExists = folderExists(path.join(platformRoot, 'Images.xcassets/'));
if (xcassetsExists) {
destIconsFolder = 'Images.xcassets/AppIcon.appiconset/';
} else {
destIconsFolder = 'Resources/icons/';
}
platformIcons.forEach(function (item) {
var icon = icons.getBySize(item.width, item.height) || icons.getDefault();
if (icon){
var src = path.join(appRoot, icon.src),
dest = path.join(platformRoot, destIconsFolder, item.dest);
events.emit('verbose', 'Copying icon from ' + src + ' to ' + dest);
shell.cp('-f', src, dest);
}
});
Лучшим вариантом, похоже, является использование плагина, который делает изменение размера для вас с помощью перехватчиков. Проверьте Создание значков iOS и Android в Кордове /PhoneGap или https://github.com/disusered/cordova-icon-gm для новая более надежная версия одного и того же плагина (крючки в каталогах устарели в 6.x).
Ответ 6
Для файла соло icon.png изображение должно быть 1024x1024, чтобы работать с соло <icon src="icon.png"/>
в config.xml. > .
Мне нужно это с cordova-cli 6.5.0, cordova-ios 4.5.1 и xcodebuild 9.0.
Ответ 7
Мне удалось решить эту проблему, удалив ссылки без всплывающих подсказок в файле config.xml, самая новая версия кордовы, кажется, использует только раскадровки:
Итак, удалено:
<splash src="res/ios/splash/Default~iphone.png" width="320" height="480"/>
<splash src="res/ios/splash/[email protected]~iphone.png" width="640" height="960"/>
<splash src="res/ios/splash/Default-Portrait~ipad.png" width="768" height="1024"/>
<splash src="res/ios/splash/[email protected]~ipad.png" width="1536" height="2048"/>
<splash src="res/ios/splash/Default-Landscape~ipad.png" width="1024" height="768"/>
<splash src="res/ios/splash/[email protected]~ipad.png" width="2048" height="1536"/>
<splash src="res/ios/splash/[email protected]~iphone.png" width="640" height="1136"/>
<splash src="res/ios/splash/Default-667h.png" width="750" height="1334"/>
<splash src="res/ios/splash/Default-736h.png" width="1242" height="2208"/>
<splash src="res/ios/splash/Default-Landscape-736h.png" width="2208" height="1242"/>
И сохранил только эти:
<splash src="res/ios/splash/[email protected]~iphone~anyany.png" />
<splash src="res/ios/splash/[email protected]~iphone~comany.png" />
<splash src="res/ios/splash/[email protected]~iphone~comcom.png" />
<splash src="res/ios/splash/[email protected]~iphone~anyany.png" />
<splash src="res/ios/splash/[email protected]~iphone~anycom.png" />
<splash src="res/ios/splash/[email protected]~iphone~comany.png" />
<splash src="res/ios/splash/[email protected]~ipad~anyany.png" />
<splash src="res/ios/splash/[email protected]~ipad~comany.png" />
Ответ 8
Это простое решение, которое я попробовал, это добавить правильный размер изображения 1024x1024.
<platform name="ios">
<icon src="res/icon-1024.png" />
</platform>