Подтвердить что ты не робот

Ошибка Кордовы 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

4b9b3361

Ответ 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>