Phonegap 프로젝트에 앱 아이콘을 추가하는 방법은 무엇입니까?


85

기본 config.xml을 사용하여 새 phonegap (v 3.0.0-0.14.0) 프로젝트를 만든 다음 iOS 및 Android 플랫폼을 추가했습니다.

구성에는 모든 플랫폼 아이콘에 대한 모든 경로가 포함됩니다.

경로와 이름이 여전히 해당 png와 일치하도록 iOS 및 Android의 기본 아이콘을 덮어 썼습니다.

시뮬레이터에서 실행할 때 아이콘이 표시되지 않습니다. xCode에서 아이콘의 "Resources"폴더에 여전히 phonegap 기본 아이콘이 포함되어 있음을 알 수 있습니다. Android와 동일합니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

Phonegap을 사용하여 iOS 및 Android 용 사용자 지정 앱 아이콘을 추가하려면 어떻게해야합니까?

감사

내 config.xml

<icon src="icon.png" />

<icon gap:density="ldpi" gap:platform="android" src="res/icon/android/icon-36-ldpi.png" />
<icon gap:density="mdpi" gap:platform="android" src="res/icon/android/icon-48-mdpi.png" />
<icon gap:density="hdpi" gap:platform="android" src="res/icon/android/icon-72-hdpi.png" />
<icon gap:density="xhdpi" gap:platform="android" src="res/icon/android/icon-96-xhdpi.png" />

<icon gap:platform="ios" height="57" src="res/icon/ios/icon-57.png" width="57" />
<icon gap:platform="ios" height="72" src="res/icon/ios/icon-72.png" width="72" />
<icon gap:platform="ios" height="114" src="res/icon/ios/icon-57-2x.png" width="114" />
<icon gap:platform="ios" height="144" src="res/icon/ios/icon-72-2x.png" width="144" />

<icon gap:platform="blackberry" src="res/icon/blackberry/icon-80.png" />
<icon gap:platform="blackberry" gap:state="hover" src="res/icon/blackberry/icon-80.png" />

<icon gap:platform="webos" src="res/icon/webos/icon-64.png" />
<icon gap:platform="winphone" src="res/icon/windows-phone/icon-48.png" />
<icon gap:platform="winphone" gap:role="background" src="res/icon/windows-phone/icon-173.png" />

4
이거예요? 로컬 빌드가 구성 파일을 무시합니까? stackoverflow.com/questions/15018098/…
Markus

Markus의 말이 맞습니다. 그의 의견은 답이되어야합니다
drodsou 2013-08-03

1
아이콘을 디버그 / 작동시키기 위해 알아야 할 모든 것에 대한 FAQ를 작성하는 데 시간이 걸렸습니다 (cordova 5.1.1). 확인 stackoverflow.com/a/31674547/82609
세바스티앙 Lorber

답변:


67

다행스럽게도 스플래시 이미지에 대한 문서가 약간 있으므로 아이콘 이미지에 대한 올바른 위치를 찾는 데 도움이됩니다. 그래서 여기에 있습니다.

파일 배치 위치 명령 줄 인터페이스 "cordova build ios"를 사용하여 프로젝트를 빌드 한 후에는 platforms/ios/폴더에 iOS 앱에 대한 전체 파일 구조가 있어야 합니다.

이 폴더 안에는 앱 이름이있는 폴더가 있습니다. 차례로 및 폴더를 resources/찾을 수 있는 디렉토리가 포함 됩니다 .icons/splashscreen/

아이콘 폴더에는 4 개의 아이콘 파일이 있습니다 (57px 및 72px, 각각 일반 및 @ 2x 버전). 지금까지 보신 Phonegap 자리 표시 자 아이콘입니다.

해야 할 일

이 폴더에 아이콘 파일을 저장하기 만하면됩니다. 그래서 그건:

YourPhonegapProject/Platforms/ios/YourAppName/Resources/icons

스플래시 화면 파일과 동일합니다.

메모

  1. 여기에 파일을 배치 한 후 cordova build iosxCode의 '제품 정리'메뉴 명령을 사용 하여 프로젝트를 다시 빌드하십시오 . 이것이 없으면 여전히 Phonegap 자리 표시자를 볼 수 있습니다.

  2. info.plist 또는 config.xml에서 이름을 편집하는 대신 파일 이름을 iOS / Apple 방식 (예 : icon-72@2x.png 등)으로 변경하는 것이 가장 현명합니다. 적어도 그것은 나를 위해 일했습니다.

  3. 그리고 config.xml (예 :)의 아이콘에 지정된 이상한 경로와 이상한 파일 이름은 무시하십시오 <icon gap:platform="ios" height="114" src="res/icon/ios/icon-57-2x.png" width="114" />. 나는 그 정의를 거기에 남겨 두었고 내 114px 아이콘의 이름 icon@2x.pngicon-57-2x.png.

  4. 아이콘에 대한 Apple의 광택 효과를 방지하기 위해 config.xml을 사용하지 마십시오. 대신 xCode의 상자를 선택합니다 (왼쪽 탐색 열에서 프로젝트 제목을 클릭하고 대상 헤더 아래에서 앱을 선택한 다음 아이콘 섹션까지 아래로 스크롤).


config.xml에 파일 이름을 남기지 않으면 phonegap 빌드 서비스로 빌드가 중단됩니까? 이것은 로컬 빌드가 config.xml을 무시하기 때문에 작동합니다. phonegap이 그것을 읽기로 결정한다면? 일종의 빌드 프로세스로 해당 파일을 복사하는 것이 좋습니다.
Markus

1
안녕하세요 Markus, 저는 Phonegap Build 서비스에 대한 경험이 없습니다 (단순하고 실패한 시도를했을 때 당황 스러웠던 것을 제외하고). 그래서 나는 당신의 코멘트를 판단 할 수 없지만 당신의 말을 받아 들일 것입니다. 따라서 내 대답은 자신의 빌드를 수행하는 사람들만을 대상으로합니다.
Wytze 2014

1
이 답변은 구식이지만 3.0.0에서 작동합니다. 이를 처리하기 위해 더 이상 수동 프로세스가 필요하지 않습니다. 에지 문서와 여기에 내 대답은 확인 stackoverflow.com/a/31674547/82609
세바스티앙 Lorber

46

FAQ : 아이콘 / 스플래시 화면 (Cordova 5.x / 2015)

아이콘 / 스플래시 화면을 다루는 동안 발생한 많은 문제를 해결하는 데 도움이 될 수있는 일반적인 FAQ로 제 답변을 제시합니다. 나처럼 문서가 항상 명확하거나 최신이 아니라는 것을 알 수 있습니다. 가능한 경우 StackOverflow 문서 로 이동 합니다.

첫째 : 질문에 답하기

Phonegap을 사용하여 iOS 및 Android 용 사용자 지정 앱 아이콘을 추가하려면 어떻게해야합니까?

코르도바의 버전에서icon 태그는 쓸모가 없다. Cordova 3.0.0에는 문서화되어 있지 않습니다. 최신 버전이 아닌 사용중인 cli에 맞는 문서 버전을 사용해야합니다!

아이콘 태그는 내가 문서의 서로 다른 버전에서 볼 수있는 내용에 따라 버전 3.5.0 전에 모든 안드로이드 작동하지 않습니다. 3.4.0에서는 여전히 파일을 수동으로 복사하라는 조언이 있습니다.

최신 버전 : config.xml최신 Cordova 버전이 더 좋아 보입니다. 그러나 여전히 알고 싶은 것이 많이 있습니다. 업그레이드하기로 결정한 경우 수정해야 할 몇 가지 유용한 사항이 있습니다.

  • gap:네임 스페이스 가 필요하지 않습니다.
  • <preference name="SplashScreen" value="screen" />Android 가 필요 합니다.

다음은 아이콘과 스플래시 화면을 처리 할 때 스스로에게 물어볼 수있는 질문에 대한 자세한 내용입니다.

이전 버전의 Cordova / Phonegap을 사용할 수 있습니까?

아니요, 아이콘 / 스플래시 화면 기능은 이전 버전의 Cordova에 없었으므로 최신 버전을 사용해야합니다. 이전 버전에서는 Phonegap Build만이 아이콘 / 스플래시 화면을 처리 했으므로 로컬에서 빌드하고 아이콘을 처리하는 것은 후크로만 가능했습니다. 이 기능을 사용하기위한 최소 버전을 모르지만 5.1.1에서는 Cordova / Phonegap cli 모두에서 제대로 작동합니다. Cordova 3.5에서는 작동하지 않았습니다.

편집 : Android의 경우 3.5.0 이상을 사용해야합니다.

아이콘에 대한 빌드 프로세스를 디버그하려면 어떻게해야합니까?

cli는 CP 명령을 사용합니다. 잘못된 아이콘 경로를 제공하면 cp오류 가 표시됩니다 .

sebastien@sebastien-xps:cordova (dev *+$%)$ cordova run android --device
cp: no such file or directory: /home/sebastien/Desktop/Stample-react/cordova/res/www/stample_splash.png

편집 : cordova build <platform> --verbose아이콘이 복사되는 위치를 확인하기 위해 cp 명령 사용 로그를 얻는 데 사용 했습니다.

아이콘은 구성에 따라 폴더에 있어야합니다. 나를 위해 그것은 많은 하위 폴더에 있습니다.platforms/android/build/intermediates/res/armv7/debug/drawable-hdpi-v4/icon.png

그런 다음 APK를 찾아서 zip 아카이브로 열어 아이콘이 있는지 확인할 수 있습니다. Android 용 특수 폴더res/drawable* 이므로 폴더에 있어야합니다 .

프로젝트에서 아이콘 / 스플래시 화면을 어디에 배치해야합니까?

많은 예에서 아이콘 / 스플래시 화면이 res폴더 안에 선언되어 있음을 알 수 있습니다. 이것은 res출력 APK의 특수 Android 폴더이지만 res프로젝트에서 폴더 를 사용해야한다는 의미는 아닙니다 .

아이콘은 어디에나 놓을 수 있지만 사용하는 경로 는 프로젝트의 루트에 상대적 이어야 하며www 주의 하지 마십시오 ! 이것은 문서화되어 있지만 모든 예제가 사용 res하고 있으며이 폴더가 어디에 있는지 모르기 때문에 명확 하지는 않습니다.

내 말은 아이콘을 넣으면 www/icon.png절대적으로 www경로에 포함해야 함 을 의미합니다.

Mars 2016 편집 : 버전을 업그레이드 한 후 이제 아이콘이 www폴더에 상대적인 것처럼 보이지만 문서가 변경되지 않았습니다 ( 문제 ).

합니까의 <icon src="icon.png"/>작업?

아니 그렇지 않아! .

Android에서는 이전에는 (밀도 속성이 아직 지원되지 않았을 때?) 작동했지만 더 이상 작동하지 않는 것 같습니다. 이 Cordova 문제보기

iOS에서는이 전역 선언을 사용하면 보다 구체적인 선언 이 재정의 될 수 있으므로 --verbose모든 것이 예상대로 작동하도록 주의하고 빌드하십시오 .

모든 밀도에 대해 동일한 아이콘 / 스플래시 화면 파일을 사용할 수 있습니까?

그래 넌 할수있어. 아이콘과 스플래시 화면 모두에 동일한 파일을 사용할 수도 있습니다 (테스트 용입니다!). 문제없이 65kb의 "큰"아이콘 파일을 사용했습니다.

플랫폼 태그와 플랫폼 속성을 사용할 때의 차이점은 무엇입니까?

<icon src="icon.png" platform="android" density="ldpi" />

와 같다

<platform name="android">
    <icon src="www/stample_icon.png" density="ldpi" />
</platform>

Phonegap을 사용하는 경우 gap : 네임 스페이스를 사용해야합니까?

내 경험상 Phonegap 또는 Cordova의 새 버전은 gap:xml 네임 스페이스 를 사용하지 않고도 아이콘 선언을 이해할 수 있습니다.

그러나 나는 여전히 유효한 대답을 기다리고 있습니다 : cordova / phonegap plugin add VS config.xml

내가 이해하는 한 gap:네임 스페이스가있는 일부 기능 은 PhonegapBuild에서 이전에 사용할 수 있으며 Phonegap에서 사용할 수 있으며 Cordova (?)

인가 <preference name="SplashScreen" value="screen" />가 필요?

적어도 안드로이드에서는 그렇습니다. 추가 설명으로 문제 를 열었습니다 .

아이콘 선언 순서가 중요합니까?

네 그렇습니다! Android에는 영향을 미치지 않을 수 있지만 테스트에 따르면 iOS에는 영향을 미칩니다. 이것은 예상치 못한 문서화되지 않은 동작이므로 다른 문제를 열었습니다 .

내가 필요 cordova-plugin-splashscreen합니까?

예, 스플래시 화면이 작동하려면 절대적으로 필요합니다. 문서는 명확하지 않으며 ( issue ) 플러그인은 스플래시 화면 자바 스크립트 API를 제공하는 데만 필요하다고 생각합니다.

모든 너비 / 높이 / 밀도의 이미지 크기를 빠르게 조정하려면 어떻게해야합니까?

그렇게하는 데 도움이되는 도구가 있습니다. 나에게 가장 좋은 것은 http://makeappicon.com/ 이지만 이메일 주소를 제공해야합니다.

기타 가능한 솔루션은 다음과 같습니다.

나에게 구성 예제를 줄 수 있습니까?

예. 여기 내 진짜config.xml

<?xml version='1.0' encoding='utf-8'?>
<widget id="co.x" version="0.2.6" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:gap="http://phonegap.com/ns/1.0">
    <name>x</name>
    <description>
        x
    </description>
    <author email="info@x.co" href="https://x.co">
        x
    </author>
    <content src="index.html" />
    <preference name="permissions"                  value="none" />
    <preference name="webviewbounce"                value="false" />
    <preference name="StatusBarOverlaysWebView"     value="false" />
    <preference name="StatusBarBackgroundColor"     value="#0177C6" />
    <preference name="detect-data-types"            value="true" />
    <preference name="stay-in-webview"              value="false" />
    <preference name="android-minSdkVersion"        value="14" />
    <preference name="android-targetSdkVersion"     value="22" />
    <preference name="phonegap-version"             value="cli-5.1.1" />

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


    <plugin name="cordova-plugin-device"                spec="1.0.1" />
    <plugin name="cordova-plugin-console"               spec="1.0.1" />
    <plugin name="cordova-plugin-whitelist"             spec="1.1.0" />
    <plugin name="cordova-plugin-crosswalk-webview"     spec="1.2.0" />
    <plugin name="cordova-plugin-statusbar"             spec="1.0.1" />
    <plugin name="cordova-plugin-screen-orientation"    spec="1.3.6" />
    <plugin name="cordova-plugin-splashscreen"          spec="2.1.0" />

    <access origin="http://*" />
    <access origin="https://*" />

    <access launch-external="yes" origin="tel:*" />
    <access launch-external="yes" origin="geo:*" />
    <access launch-external="yes" origin="mailto:*" />
    <access launch-external="yes" origin="sms:*" />
    <access launch-external="yes" origin="market:*" />

    <platform name="android">
        <icon src="www/stample_icon.png" density="ldpi" />
        <icon src="www/stample_icon.png" density="mdpi" />
        <icon src="www/stample_icon.png" density="hdpi" />
        <icon src="www/stample_icon.png" density="xhdpi" />
        <icon src="www/stample_icon.png" density="xxhdpi" />
        <icon src="www/stample_icon.png" density="xxxhdpi" />
        <splash src="www/stample_splash.png" density="land-hdpi"/>
        <splash src="www/stample_splash.png" density="land-ldpi"/>
        <splash src="www/stample_splash.png" density="land-mdpi"/>
        <splash src="www/stample_splash.png" density="land-xhdpi"/>
        <splash src="www/stample_splash.png" density="land-xhdpi"/>
        <splash src="www/stample_splash.png" density="land-xhdpi"/>
        <splash src="www/stample_splash.png" density="port-hdpi"/>
        <splash src="www/stample_splash.png" density="port-ldpi"/>
        <splash src="www/stample_splash.png" density="port-mdpi"/>
        <splash src="www/stample_splash.png" density="port-xhdpi"/>
        <splash src="www/stample_splash.png" density="port-xxhdpi"/>
        <splash src="www/stample_splash.png" density="port-xxxhdpi"/>
    </platform>

    <platform name="ios">
        <icon src="www/stample_icon.png" width="180" height="180" />
        <icon src="www/stample_icon.png" width="60" height="60" />
        <icon src="www/stample_icon.png" width="120" height="120" />
        <icon src="www/stample_icon.png" width="76" height="76" />
        <icon src="www/stample_icon.png" width="152" height="152" />
        <icon src="www/stample_icon.png" width="40" height="40" />
        <icon src="www/stample_icon.png" width="80" height="80" />
        <icon src="www/stample_icon.png" width="57" height="57" />
        <icon src="www/stample_icon.png" width="114" height="114" />
        <icon src="www/stample_icon.png" width="72" height="72" />
        <icon src="www/stample_icon.png" width="144" height="144" />
        <icon src="www/stample_icon.png" width="29" height="29" />
        <icon src="www/stample_icon.png" width="58" height="58" />
        <icon src="www/stample_icon.png" width="50" height="50" />
        <icon src="www/stample_icon.png" width="100" height="100" />
        <splash src="www/stample_splash.png" width="320" height="480"/>
        <splash src="www/stample_splash.png" width="640" height="960"/>
        <splash src="www/stample_splash.png" width="768" height="1024"/>
        <splash src="www/stample_splash.png" width="1536" height="2048"/>
        <splash src="www/stample_splash.png" width="1024" height="768"/>
        <splash src="www/stample_splash.png" width="2048" height="1536"/>
        <splash src="www/stample_splash.png" width="640" height="1136"/>
        <splash src="www/stample_splash.png" width="750" height="1334"/>
        <splash src="www/stample_splash.png" width="1242" height="2208"/>
        <splash src="www/stample_splash.png" width="2208" height="1242"/>
    </platform>

    <allow-intent href="*" />
    <engine name="browser" spec="^3.6.0" />
    <engine name="android" spec="^4.0.2" />
</widget>

좋은 예는 스타터 키트입니다. phonegap-start 또는 Ionic 스타터 처럼


2
내가 (많은 다른 사람의 사이에서) 작은 CLI 유틸리티, 그 핸들의 응용 프로그램 아이콘, 시작 화면 및 미리보기 생성 내장 https://github.com/mmacmillan/cordova-imaging을 , 나는 그것의 구성 파일 그게 전부에 의해 구동 잘 설명하기 때문이에 대한 언급 크기 / 치수 / 위치, 플랫폼 별 문서에 대한 링크 포함 이것은 당신을 제공하기 위해 시간이 걸렸 자세한 답변을 보충하는 데 도움이 될 수 있습니다
마이크 맥밀란

이 모든 작업을 Cordova 5.1에서 언급했듯이 파일이 .apk로 복사되었지만 여전히 태블릿에 새 아이콘이 표시되지 않습니다. 어떤 아이디어?
Gringo Suave

해야 할 일은 이전 버전의 앱을 제거한 다음 새 버전을 설치하는 것입니다. 그런 다음 태블릿은 무언가 변경된 것을 발견했습니다. 그래서 새로운 아이콘을 얻을 수있었습니다.
Gringo Suave

1
정말 환상적인 대답입니다! 귀하의 제안 cordova build android --verbose을 사용하여 내 문제를 식별하고 해결했습니다. 감사!
Sarah

멋진 대답 세바) 엄지 손가락
Alaeddine

32

Cordova 3.5.0-0.2.6부터 <icon />config.xml 의 요소는 다음주의 사항과 함께 작동합니다.

  1. src속성은 프로젝트 루트 폴더에 상대적인 경로입니다. 이 문제에 대한 문제 추적기는 변경 이유입니다.

  2. <icon src="..." />해상도 / dpi의없는 요소는 기본 아이콘으로 모든 플랫폼에서 사용하는 아이콘으로 설명되어 있습니다. 그러나 Android 빌드에서 기본 아이콘은 특정 해상도 설정없이 Android 드로어 블 폴더에만 복사됩니다. 이렇게하면 사용자 지정 아이콘이 /res/drawable폴더에 나타나고 특정 해상도의 코르도바 기본 아이콘이 최종 apk 내의 다른 폴더에 있습니다 (예 :) /res/drawable-ldpi. config.xmlAndroid 플랫폼의 각 해상도에 대해 하나의 아이콘 요소를 추가해야합니다 .

예를 들어 아이콘 이미지가 www/res/img/icon.png루트 프로젝트에 상대적인 경로에있는 경우 다음 줄 config.xml은 Android의 앱 아이콘이 작동하도록합니다.

<!-- Default application icon -->
<icon src="www/res/img/icon.png" />
<!--
    Default icon should work, but cordova don't overwrite
    the default on all densities
-->
<icon src="www/res/img/icon.png" platform="android" density="ldpi" />
<icon src="www/res/img/icon.png" platform="android" density="mdpi" />
<icon src="www/res/img/icon.png" platform="android" density="hdpi" />
<icon src="www/res/img/icon.png" platform="android" density="xhdpi" />

이 구성을 사용하면 모든 해상도에 대한 단일 이미지 아이콘이 기본 코르도바 아이콘을 덮어 쓰고 사용자 지정 훅없이 만들 수 있습니다. 로 빌드하기 만하면 cordova build android됩니다.


문제 2에 대한 버그 신고 링크가 있습니까? 나는 방금 새로운 프로젝트 에서이 문제를 쳤고 처음에는 나를 혼란스럽게 만들었다. 가능한 경우 언제 수정되었는지 확인하기 위해 진행 상황을 따르고 싶습니다. 건배.
Mike

omg가 마침내 작동하도록했습니다! 감사합니다 density. 나는 변경 <icon gap:platform="android" gap:qualifier="ldpi" src="www/res/icon/android/icon-36-ldpi.png" /><icon gap:platform="android" density="ldpi" src="www/res/icon/android/icon-36-ldpi.png" />
타 Leang

@Ronoaldo Periera 당신의 구세주! 각 밀도에 대한 <icon ..> 태그! 훌륭한!!
Hittz

기본 아이콘 src는 Android에서 잘 작동하지 않으므로 실제로 무시됩니다! 여기에 내 대답을 확인하십시오 stackoverflow.com/a/31674547/82609
세바스티앙 Lorber

8

로컬 구축 할 때 자동으로 아이콘을 추가 할 수있는 사용하기 쉬운 방법을 원하는 경우에 ( cordova emulate ios, cordova run android, 등)이 요지를 보라 :

https://gist.github.com/LinusU/7515016

바라건대 이것은 미래에 언젠가 즉시 작동하기 시작할 것입니다. 여기 Cordova 프로젝트에 대한 관련 버그 보고서가 있습니다.

https://issues.apache.org/jira/browse/CB-2606


내 대답의 예에서 설명 된 것 같이 리누스는 지금 작동하지만 또한 몇 가지 물건, 체크 깨진 것 같습니다 stackoverflow.com/a/31674547/82609
세바스티앙 Lorber

4

아이콘 파일을 넣을 config.xml 파일을 만들어야합니다.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
   xmlns:gap = "http://phonegap.com/ns/1.0"
   id        = "example"
   version    = "1.0.0">

   <icon src="icon.png" />
</widget>

이것을 확인하십시오 : https://build.phonegap.com/docs/config-xml

iOS 전용 아이콘이 있습니다


내 구성 파일에는 이미 모든 아이콘이 포함되어 있습니다. 새로운 phonegap 프로젝트를 생성 할 때 기본적으로 생성됩니다.
Markus

2
작동하지 않습니다. PG Build와 함께 작동했지만 Cordova 3.x cli는 config.xml에 지정된 아이콘을 고려하지 않습니다 (루트의 icon.png 및 screen.png도 고려하지 않음). 또한이 질문에 대한 답을 찾고 있습니다.
lefnire 2013-08-16

Yup config.xml은 PhoneGap Build 전용입니다! 아무도 이것을하는 방법을 알고 있습니까?!
Michael

Cordova 3.5.0-0.2.6에서는 아이콘 지원이 작동하지만 Android에서는 몇 가지주의 사항이 있습니다. 자세한 내용은 내 대답을 참조하십시오.
Ronoaldo Pereira 2014

4

여기에있는 대부분의 답변은 iOS를 대상으로하기 때문에 Android에서 아이콘을 변경하는 솔루션이 있습니다.

Android의 경우 :

의 메이크업 변화 <프로젝트 위치> \ 플랫폼 \ 안드로이드 \ 개미 빌드 \ 고해상도 가 아닌 <프로젝트 위치> \ 플랫폼 \ 안드로이드 \ 고해상도

일부 사람들의 경우 후자의 위치를 ​​변경해도 효과가있을 수 있지만 Phonegap이 \ android \ res에서 \ android \ ant-build \ res로 복사되는 것을 확인한 후 거기에 체크인하기로 결정하고 기본값이 포함 된 별도의 드로어 블 폴더 세트를 찾았습니다. phonegap 아이콘입니다.

그것들을 바꾸는 것이 마침내 효과가있었습니다.

Adobe PhoneGap Build를 사용하지 않고 로컬에서 빌드 및 실행 중이므로 <프로젝트 위치> \ www \ res \ icon \ android의 아이콘 변경도 작동하지 않았습니다.


3

iOS7이 해상도를 120x120px로 변경했기 때문에 phonegap 3.1.0-0.15.0을 실행하고 있습니다.이 크기의 파일을 프로젝트에 추가 한 다음 info.plist 파일을 변경했습니다.

  1. Xcode에서 프로젝트 파일을 마우스 오른쪽 버튼으로 클릭하고 "[Your Project Name]"에 파일 추가 ...를 선택하여 120x120 파일을 프로젝트에 추가합니다.
  2. Xcode "Resources / [Your Project Name] -info.plist" 의 info.plist 파일로 이동합니다.
  3. 에서 "아이콘 파일 (아이폰 OS 5) / 차 아이콘 / 아이콘 파일" 변화 "항목이" 파일이 있던 파일 이름 (나는 다른 모든 아이콘 측면을 따라 프로젝트 폴더에 "아이콘-120.png 내라는대로에를 , 이것은 중요하지 않습니다)

더 많은 정보는 여기에서 찾을 수 있습니다 : http://www.digifloor.com/missing-recommended-icon-file-error-ios-app-13

iOS에서 스플래시 화면을 수정하기 위해 크기와 파일 이름이 같은 새 파일을 붙여 넣어 이전 파일을 덮어 썼습니다. Xcode (바로 가기 Shift + Command + K)의 메뉴 표시 줄에서 Product> Clean 으로 이동하면 제대로 작동합니다! :)


3

cordova 3.3.1-0.1.2에서 예상되는 동작이 제대로 작동하지 않습니다.

http://cordova.apache.org/docs/en/3.3.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens

원래 사용자 정의 가능한 config.xml 지정 방식 대신 특정 이름 지정 규칙을 따르는 res 및 아이콘이라는 폴더의 기본 www 폴더에 넣어야한다고 분명히 명시합니다 (선택한 파일을 가리키며, 훨씬 낫다). 그런 다음 각 플랫폼에 대해 거기에서 가져 와서 platform /? android? / res / drawable-? dpi / icon.png에 넣어야하지만 현재로서는 올바른 동작이 없습니다 ... 버그.

그래서 각 플랫폼에 대해 수동으로 배치해야한다고 생각합니다. 물론 www 폴더에 다시 복제하지 않도록 제거해야합니다. 저에게는 이상한 임의의 폴더를 찾기 위해 리디렉션 index.html을 해킹하지 않고 hello world에서도 작동하지 않았기 때문에 어쨌든 메인 www 폴더의 내용을 완전히 교체해야했습니다. www 옆에 res 폴더를 두는 것이 가장 의미가 있지만이 일련의 계단식 및 혼란스러운 디자인 선택 / 결함으로 인해 내게 어떤 영향을 미치는지 확인했습니다.


2

어떤 경우에는 cordova의 내부 skripts가 올바른 폴더에 아이콘을 넣지 않아서 자신의 아이콘 대신 f *** cordova 로봇을 볼 수 있습니다.

후크 스크립트를 사용하십시오.;)

코도 바폰 간극 프로젝트 요구 사항

hook 폴더에 "after_platform_add"폴더를 만들고 devgirl에서 마지막 skript를 넣거나 변경합니다.

Linux에서 스크립트에 대한 실행 권한을 설정하는 것을 잊지 마십시오. "chmod 777 <script>"

행운을 빕니다!


1

내가 한 모든 것은 config.xml에 아래 줄을 추가했습니다. <icon src="www/img/appIcon.png" />

그리고 그것은 완전히 잘 작동했습니다.


Thx 남자. res / icon.png (문서 예제에서와 같이 ...)에 아이콘 하나를 넣으려고했지만 ios에서는 작동하지 않았습니다. 나는 마침내 그 혼란스러운 "res"폴더를 포기하고 당신이 제안한대로 "www"아래에 아이콘을 놓았다. 그것은 나에게도 매력처럼 작용했다! 이것은 Cordova 6.0.0에서 작동합니다. iOS 플랫폼.
firepol

1

이 코드를 config.xml 파일에 추가하기 만하면됩니다.

<icon src="path to your icon image">

예 :

<icon src="icon.png">

.png 확장자를 사용해야 함을 기억하십시오.


PNG 이미지를 사용하려고
Jobincs

0

이 모든 것이 어떻게 연결되는지 이해하려고 노력 중입니다.

지금까지 XCode에서 찾은 내용이 있지만 내 가정이 옳다면 수정되거나 확인되기를 바랍니다. 아이콘을 올바르게 적용하는 Cordova의 xcode에 대한 기본 빌드를 찾지 못했습니다. 당신처럼 config.xml에 나열된 모든 아이콘을 업데이트했지만 주사위는 업데이트하지 않았습니다.

그래서...

먼저, 나는 일반적으로 프로젝트의 루트에있는 config.xml을 내 "www"폴더에있는 것으로 업데이트합니다 (이는 www / config.xml이 우선 순위가 있는지 또는 적용되었는지 여부에 대한 불확실성 때문에 수행합니다).

둘째, 프로젝트의 "Build Phases"를 업데이트합니다. "Copy Bundle Resources"를 확장하면 "Resources / icons", "Resources / splash"의 모든 이미지를 이미 확인했습니다. 다음 중 하나를 수행 할 수 있습니다.

  • 이미지를 덮어 쓰지 않도록 모두 제거하거나
  • 이러한 모든 이미지를 자신의 것으로 업데이트합니다 (나열된 이미지 이름으로 이름 변경).

제가이 문제를 해결하는 동안 "요약"탭에서 최소한의 이미지 만 업데이트 할 수있을 것입니다.

res 폴더의 이미지를 "요약"탭의 적절한 이미지로 끌어다 놓습니다. (res / icon / ios-> 앱 아이콘 및 res / screen / ios-> 이미지 실행). 내 앱은 iPhone 전용이므로 iPhone에서만 수행합니다. 광택이 나타나지 않게하려면 "prerendered"를 선택하십시오.

그런 다음 프로젝트의 plist 파일 인 PROJECT_NAME-Info.plist 또는 프로젝트 대상을 볼 때 "정보"탭에서 참조 된 "icon.png"를 업데이트합니다. 이름을 "icon-57.png"로 바꿉니다 (이제는 프로젝트 루트에 있으며 드래그 앤 드롭을 수행 할 때 자동으로 루트에 추가되었습니다.

빌드하면 업데이트 된 앱 아이콘이 표시됩니다.


Cordova 3.0.3으로 프로젝트를 빌드했지만 phonegap 빌드에서도 동일하다고 생각합니다.
Sam Tsai

0

방금 Sebastian의 예제처럼 보이도록 config.xml을 변경했습니다.

특히 로컬 빌드를 수행하지 않는 경우이 모든 디버깅에 도움이되는 것은 PhoneGap 클라우드에서 빌드 된대로 XAP / IPA / APK 파일을 다운로드하고 각각에 대한 폴더를 만드는 것입니다. .ZIP 확장자로 각 파일의 이름을 바꾸고 각 파일의 내용을 각각의 폴더에 추출하십시오. 따라서 기본적으로 이제 휴대폰으로 배송 될 패키지에 무엇이 포함되어 있는지 확인할 수 있습니다.

이렇게하면 Microsoft Phone 플랫폼의 경우 아이콘이나 스플래시 화면을 교체하려는 모든 시도를 대부분 무시하고 있음을 알 수 있습니다. 그런 다음 ApplicationIcon.png 및 SplashScreenImage.jpg를 교체 한 다음 폴더 세트를 다시 압축하고 .XAP 파일로 다시 이름을 바꾼 다음 휴대폰에 배포하면 완벽하게 작동합니다. 어쨌든 PhoneGap 빌드를 가져와 icon.png와 icon.jpg를이 두 파일로 바꾸는 방법이 있습니다. 아마도 Masood의 제안은 여기에서 가능하며 후크 스크립트를 활용합니다.

.IPA 파일 (iOS)에 대해 동일한 작업을 수행하면 www 위의 상위 수준에 icon-something.png와 같은 여러 파일이 생성됩니다. 모두 비어있는 것처럼 보입니다.

.APK 파일 (Android)에 대해 동일한 작업을 수행하면 res / drawable-something 폴더 집합이 생성되고 각 폴더에 내 icon.png가있는 것처럼 보입니다. 현재 제가 주장 할 수있는 성공에 가장 가깝습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.