2015-05-27 4 views
0

У меня возникла проблема с неправильным включением значков android и ios при создании приложения с помощью сборки Phonegap.PhoneGap Build: значки и всплывающие окна отображаются неправильно

Config.xml, часть выглядит следующим образом:

<icon src="www/res/icon/icon.png" /> 
<splash src="www/res/screen/splash.jpg" /> 

<platform name="android"> 
    <icon src="www/res/icon/android/icon-ldpi.png" density="ldpi" /> 
    <icon src="www/res/icon/android/icon-mdpi.png" density="mdpi" /> 
    <icon src="www/res/icon/android/icon-hdpi.png" density="hdpi" /> 
    <icon src="www/res/icon/android/icon-xhdpi.png" density="xhdpi" /> 

    <splash gap:qualifier="port-hdpi" src="www/res/screen/android/screen-hdpi-port.png" width="480" height="800" /> 
    <splash gap:qualifier="port-xhdpi" src="www/res/screen/android/screen-xhdpi-port.png" width="640" height="960" /> 
    <splash gap:qualifier="land-hdpi" src="www/res/screen/android/screen-hdpi-land.jpg" width="800" height="480" /> 
    <splash gap:qualifier="land-xhdpi" src="www/res/screen/android/screen-xhdpi-land.jpg" width="960" height="640" /> 
</platform> 

<platform name="ios"> 
    <!-- iOS 7.0+ --> 
    <!-- iPhone/iPod Touch --> 
    <icon src="www/res/icon/ios/icon-60.png" width="60" height="60" /> 
    <icon src="www/res/icon/ios/[email protected]" width="120" height="120" /> 
    <icon src="www/res/icon/ios/[email protected]" width="180" height="180" /> 
    <!-- iPad --> 
    <icon src="www/res/icon/ios/icon-76.png" width="76" height="76" /> 
    <icon src="www/res/icon/ios/[email protected]" width="152" height="152" /> 
    <!-- iOS 6.1 --> 
    <!-- Spotlight Icon --> 
    <icon src="www/res/icon/ios/icon-40.png" width="40" height="40" /> 
    <icon src="www/res/icon/ios/[email protected]" width="80" height="80" /> 
    <!-- iPhone/iPod Touch --> 
    <icon src="www/res/icon/ios/icon.png" width="57" height="57" /> 
    <icon src="www/res/icon/ios/[email protected]" width="114" height="114" /> 
    <!-- iPad --> 
    <icon src="www/res/icon/ios/icon-72.png" width="72" height="72" /> 
    <icon src="www/res/icon/ios/[email protected]" width="144" height="144" /> 
    <!-- iPhone Spotlight and Settings Icon --> 
    <icon src="www/res/icon/ios/icon-small.png" width="29" height="29" /> 
    <icon src="www/res/icon/ios/[email protected]" width="58" height="58" /> 
    <!-- iPad Spotlight and Settings Icon --> 
    <icon src="www/res/icon/ios/icon-50.png" width="50" height="50" /> 
    <icon src="www/res/icon/ios/[email protected]" width="100" height="100" /> 

    <!-- Splash sreens --> 
    <splash src="www/res/screen/ios/screen-iphone-portrait-2x.png" height="960" width="640" /> 
    <splash src="www/res/screen/ios/screen-iphone-landscape-2x.jpg" height="640" width="960" /> 
    <splash src="www/res/screen/ios/screen-iphone-portrait-568h-2x.png" height="1136" width="640" /> 
    <splash src="www/res/screen/ios/screen-iphone-landscape-568h-2x.jpg" height="640" width="1136" /> 
    <splash src="www/res/screen/ios/screen-ipad-portrait.png" height="1024" width="768" /> 
    <splash src="www/res/screen/ios/screen-ipad-landscape.jpg" height="768" width="1024" /> 
</platform> 

<platform name="wp8"> 
    <icon src="www/res/icon/wp/ApplicationIcon.png" width="99" height="99" /> 
    <!-- tile image --> 
    <icon src="www/res/icon/wp/Background.png" width="159" height="159" /> 
    <splash src="www/res/screen/wp/SplashScreenImage.png" width="768" height="1280"/> 
</platform> 

Файлы существуют в указанных папках, они даже появляются внутри APK и ипа в assets/www/res и payload/myApp.app/www/res соответственно. Но phonegap build не копирует их в res/drawable-* или payload/myApp.app. Вместо этого он использует значки по умолчанию и всплывающие окна (Cordova bot на Android и прозрачные изображения в iOS).

Конструкция WP8, которая выполняется локально, работает как шарм. Я уже удалил приложение в PhoneGap Build и создал его заново, но ни одна иконка не была изменена, только идентификатор приложения немного выше.

Должен ли я размещать значки в специальном месте, или есть проблема в config.xml?

Обновление: Я просто просмотрел вывод отладки сборки iOS. Некоторые PNG копируются, но ipa по-прежнему содержит прозрачные значки в Payload\MyApp.app. Пример журнала копии:

CopyPNGFile build/MyApp.app/icon-76.png MyApp/Resources/icons/icon-76.png 
    cd /project 
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/copypng -compress /project/MyApp/Resources/icons/icon-76.png /project/build/MyApp.app/icon-76.png 

То же самое для андроид:

[crunch] Processing image to cache: /project/res/drawable-hdpi/icon.png => /project/bin/res/drawable-hdpi/icon.png 
[crunch] (processed image to cache entry /project/bin/res/drawable-hdpi/icon.png: 67% size of source) 

Ну, я определить другие каталоги/файлы в config.xml!

ответ

0

Синтаксис, указанный в вопросе, является синтаксисом для локальной Кордовы.

Кажется, что служба Phonegap Build не использует тот же синтаксис. Phonegap Build работает отлично, если вы действительно стоите рядом с the Phonegap Build docs, используя атрибут gap:platform вместо того, чтобы вставлять свои значки в теги platform.

1

У меня были некоторые проблемы с SplashScreen, а также, смотрите следующий ответ: https://stackoverflow.com/a/26427769/1800695

Добавить рядом с config.xml:

<preference name="SplashScreen" value="screen"/> 

Также эти записи в моем config.xml для иконок и заставок (Android только):

<preference name="SplashScreen" value="screen" /> 
<preference name="SplashScreenDelay" value="3000" /> 
<platform name="android"> 
    <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" /> 
    <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" /> 
    <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" /> 
    <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" /> 
    <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" /> 
    <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" /> 
    <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" /> 
    <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" /> 
    <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" /> 
    <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" /> 
    <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" /> 
    <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" /> 
</platform> 
<icon src="resources/android/icon/drawable-xhdpi-icon.png" /> 

Кроме того, этот пакет NPM м представляющие интерес: https://www.npmjs.com/package/cordova-media-generator

+0

Я обязательно попробую это, как только проблема с иконками будет решена, и решение значка не сможет решить проблему с заставкой. – Alexander

+0

Я обновил ответ с помощью моей иконки и настроек всплеска, надеюсь, что это поможет. –

+0

И это работает с услугой Phonegap Build? – Alexander

0

пытаются идти в ногу с документацией .. плотность объявлена ​​в end.exmpl:

<platform name="android"> 
     <splash src="res/screen/android/screen-hdpi-landscape.png" density="land-hdpi" /> 
     <splash src="res/screen/android/screen-ldpi-landscape.png" density="land-ldpi" /> 
     <splash src="res/screen/android/screen-mdpi-landscape.png" density="land-mdpi" /> 
     <splash src="res/screen/android/screen-xhdpi-landscape.png" density="land-xhdpi" /> 

     <splash src="res/screen/android/screen-hdpi-portrait.png" density="port-hdpi" /> 
     <splash src="res/screen/android/screen-ldpi-portrait.png" density="port-ldpi" /> 
     <splash src="res/screen/android/screen-mdpi-portrait.png" density="port-mdpi" /> 
     <splash src="res/screen/android/screen-xhdpi-portrait.png" density="port-xhdpi" /> 
</platform> 

Это часть моего рабочего config.xml,


также ЦСИ souldnt быть «www/.../...» из-за ошибки при построении процесса, только в корневой папке проекта.Способ проверки сборки сборки как следует в платформах/android/res/multipleFolders -> папки, которые должны быть заполнены с помощью screenplash img, которые не добавляются вами вручную.

Смежные вопросы