Phonegap projelerine uygulama simgesi nasıl eklenir?


85

Varsayılan config.xml ile yeni bir phonegap (v 3.0.0-0.14.0) projesi oluşturdum ve ardından iOS ve Android platformları ekledim.

Yapılandırma, tüm platform simgelerine giden tüm yolları içerir.

İOS ve Android için varsayılan simgelerin üzerine yazdım, böylece yol ve ad hala bu pngs ile eşleşiyor.

Simülatörde çalışırken simgeler görünmez. Simgelerin "Kaynaklar" klasörünün hala telefon aralığı varsayılan simgelerini içerdiğini söylediği xCode'da aradım. Android ile aynı.

Neyi yanlış yapıyorum?

Phonegap ile iOS ve Android için özel uygulama simgelerini nasıl ekleyebilirim?

Teşekkürler

benim 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
bu mu? yerel derleme yapılandırma dosyasını yoksayar mı? stackoverflow.com/questions/15018098/…
Markus

Markus haklı, yorumu bir cevap olmalı
drodsou

1
Simgelerin hata ayıklaması / çalışması için bilmeniz gereken her şey hakkında bir SSS yapmak için zaman ayırdım (cordova 5.1.1). Stackoverflow.com/a/31674547/82609'u
Sebastien Lorber

Yanıtlar:


67

Neyse ki belgelerde sıçrama görüntüleriyle ilgili biraz var, bu da beni simge görüntüleri için doğru konumu bulma yoluna koydu. İşte başlıyor.

Dosyaların yerleştirildiği yer Projenizi komut satırı arayüzü "cordova build ios" kullanarak oluşturduğunuzda, platforms/ios/klasörde iOS uygulamanız için eksiksiz bir dosya yapısına sahip olmalısınız .

Bu klasörün içinde uygulamanızın adını taşıyan bir klasör var. Sırayla ve klasörlerini resources/bulacağınız bir dizin içerir .icons/splashscreen/

Simgeler klasöründe dört simge dosyası bulacaksınız (57 piksel ve 72 piksel için, her biri normal ve 2x sürümünde). Bunlar, şimdiye kadar gördüğünüz Phonegap yer tutucu simgeleridir.

Ne yapalım

Tek yapmanız gereken simge dosyalarını bu klasöre kaydetmek. Yani bu:

YourPhonegapProject/Platforms/ios/YourAppName/Resources/icons

Açılış ekranı dosyaları için aynı.

Notlar

  1. Dosyaları oraya yerleştirdikten sonra projeyi yeniden oluşturun cordova build iosVE xCode'un 'Ürünü temizle' menü komutunu kullanın. Bu olmadan, Phonegap yer tutucularını görmeye devam edeceksiniz.

  2. İnfo.plist veya config.xml içindeki isimleri düzenlemek yerine dosyalarınızı iOS / Apple yöntemiyle (yani icon-72@2x.png vb.) Yeniden adlandırmak en akıllıca olacaktır. En azından benim için çalıştı.

  3. Ve bu arada, config.xml (yani <icon gap:platform="ios" height="114" src="res/icon/ios/icon-57-2x.png" width="114" />) içindeki simgeler için verilen garip yolu ve garip dosya adını görmezden gelin . Bu tanımları orada yeni bıraktım ve 114px simgemin icon@2x.pngyerine adlandırılmış olmasına rağmen simgeler gayet iyi görünüyordu icon-57-2x.png.

  4. Apple'ın simge üzerindeki parlak etkisini önlemek için config.xml kullanmayın. Bunun yerine, xCode'daki kutuyu işaretleyin (sol gezinme sütunundaki proje başlığını tıklayın, Hedef başlığı altında uygulamanızı seçin ve simgeler bölümüne gidin).


dosya adlarını config.xml'de bırakmak phonegap oluşturma hizmetiyle yapıyı bozmaz mı? bu yalnızca yerel derleme config.xml dosyasını yok saydığı için çalışır. ya phonegap onu okumaya karar verirse? Bu dosyaları bir tür inşa süreciyle kopyalamanızı öneririm.
Markus

1
Merhaba Markus, Phonegap Build hizmetiyle ilgili deneyimim yok (kısa ve başarısız bir deneme yaptığım zaman şaşırtıcı olması dışında). Bu yüzden yorumunuzu yargılayamam ama sözünüzü alacağım. Bu nedenle cevabım sadece kendi yapılarını yapanları hedefliyor.
Wytze

1
Bu cevap güncel değil (ancak 3.0.0 için çalışıyor). Bunu halletmek için artık manuel işlem gerekmiyor. Edge belgesini ve cevabımı burada kontrol edin stackoverflow.com/a/31674547/82609
Sebastien Lorber

46

SSS: İKON / SPLASH EKRANI (Cordova 5.x / 2015)

Cevabımı, simgeler / açılış ekranlarıyla uğraşırken karşılaştığım birçok sorunu çözmenize yardımcı olabilecek genel bir SSS olarak sunuyorum. Benim gibi belgelerin her zaman çok net ve güncel olmadığını öğrenebilirsiniz. Bu, muhtemelen mevcut olduğunda StackOverflow belgelerine gidecektir .

İlk olarak: soruyu cevaplamak

Phonegap ile iOS ve Android için özel uygulama simgelerini nasıl ekleyebilirim?

Cordova sizin versiyonundaicon etiketi işe yaramaz. Cordova 3.0.0'da bile belgelenmemiştir. En son sürümü değil, kullandığınız cli'ye uyan belge sürümünü kullanmalısınız!

Simge etiketi Ben belgelerin farklı versiyonlarda görebilirsiniz neye göre sürümü 3.5.0 önce hiç Android için çalışmaz. 3.4.0'da hala dosyaları manuel olarak kopyalamanızı tavsiye ediyorlar

Daha yeni versiyonlarda : config.xmldaha yeni Cordova versiyonları için daha iyi görünüyorsunuz. Ancak yine de bilmek isteyebileceğiniz birçok şey var. Yükseltmeye karar verirseniz, burada değiştirebileceğiniz bazı yararlı şeyler vardır:

  • Buna gerek yok gap:ad
  • <preference name="SplashScreen" value="screen" />Android'e ihtiyacınız var

Simgeler ve açılış ekranı ile uğraşırken kendinize sorabileceğiniz soruların daha fazla detayı aşağıda verilmiştir:

Cordova / Phonegap'in eski bir sürümünü kullanabilir miyim

Hayır, simge / açılış ekranı özelliği Cordova'nın eski sürümlerinde yoktu, bu nedenle en son sürümü kullanmalısınız. Eski sürümlerde, simgeleri / açılış ekranını yalnızca Phonegap Build işliyordu, bu nedenle yerel olarak oluşturmak ve simgeleri kullanmak yalnızca bir kancayla mümkündü. Bu özelliği kullanmak için minimum sürümü bilmiyorum ama 5.1.1 ile hem Cordova / Phonegap cli'de iyi çalışıyor. Cordova 3.5 ile benim için işe yaramadı.

Düzenleme : Android için en az 3.5.0 kullanmalısınız

Simgeler hakkındaki derleme sürecinde nasıl hata ayıklayabilirim?

Cli bir CP komutu kullanır. Geçersiz bir simge yolu sağlarsanız, bir cphata gösterecektir :

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

Düzenleme : cordova build <platform> --verbosesimgelerinizin nereye kopyalandığını görmek için cp komut kullanım günlüklerini almak için kullanmanız gerekir

Simgeler, yapılandırmaya göre bir klasöre gitmelidir. Benim için birçok alt klasöre giriyor:platforms/android/build/intermediates/res/armv7/debug/drawable-hdpi-v4/icon.png

Ardından APK'yi bulabilir ve simgelerin mevcut olup olmadığını kontrol etmek için bir zip arşivi olarak açabilirsiniz. Android için özel bir res/drawable*klasör olduğu için bir klasörde olmalılar .

Simgeleri / açılış ekranlarını projemde nereye koymalıyım?

Birçok örnekte, simgelerin / açılış ekranlarının bir resklasör içinde açıklandığını göreceksiniz . Bu res, çıktı APK'sindeki özel bir Android klasörüdür, ancak resprojenizde bir klasör kullanmanız gerektiği anlamına gelmez .

Simgenizi istediğiniz yere koyabilirsiniz, ancak kullandığınız yolun projenin köküne göre olması gerekir ve o wwwkadar dikkatli olmayın ! Bu belgelenmiştir, ancak net değildir çünkü tüm örnekler kullanılmaktadır resve bu klasörün nerede olduğunu bilmiyorsunuz :(

Demek istediğim, ikonu içine koyarsan www/icon.pngkesinlikle wwwyoluna dahil etmelisin .

Mars 2016'yı Düzenle : Sürümlerimi yükselttikten sonra, artık simgelerin wwwklasöre göre olduğu, ancak belgelerin değiştirilmediği görülüyor ( sorun )

Çalışıyor mu <icon src="icon.png"/>?

Hayır değil! .

Android'de daha önce çalışıyormuş gibi görünüyor (yoğunluk özelliği henüz desteklenmediğinde?) Ama artık değil. Bu Cordova sorununa bakın

İOS'ta, bu genel bildirimi kullanmak daha özel bildirimleri geçersiz kılabilir , bu nedenle --verboseher şeyin beklendiği gibi çalıştığından emin olmak için dikkatli olun ve geliştirin .

Tüm yoğunluklar için aynı simge / açılış ekranı dosyasını kullanabilir miyim?

Evet yapabilirsin. Aynı dosyayı hem simge hem de açılış ekranı için bile kullanabilirsiniz (sadece test etmek için!). 65kb'lik "büyük" bir simge dosyasını sorunsuz bir şekilde kullandım.

Platform etiketi ile platform özelliği arasındaki fark nedir?

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

aynıdır

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

Phonegap kullanıyorsam boşluğu: ad alanını kullanmalı mıyım?

Tecrübelerime göre Phonegap veya Cordova'nın yeni sürümlerinin her ikisi de herhangi bir gap:xml ad alanı kullanmadan simge bildirimlerini anlayabiliyor .

Yine de burada geçerli bir cevap bekliyorum: cordova / phonegap eklentisi VS config.xml ekle

Anladığım kadarıyla, gap:ad alanına sahip bazı özellikler daha önce PhonegapBuild'de, ardından Phonegap'ta ve ardından Cordova'ya (?)

Is <preference name="SplashScreen" value="screen" />gerekli?

En azından Android için evet öyle. Ek açıklamalar içeren bir sorun açtım .

Simge bildirim sırası önemli mi?

Evet öyle! Android üzerinde herhangi bir etkisi olmayabilir, ancak testlerime göre iOS'ta var. Bu beklenmedik ve belgelenmemiş bir davranış, bu yüzden başka bir konu açtım .

İhtiyacım var cordova-plugin-splashscreen

Evet, açılış ekranının çalışmasını istiyorsanız bu kesinlikle gereklidir. Belgeler net değil ( yayın ) ve eklentinin yalnızca bir açılış ekranı javascript API'si sunmak için gerekli olduğunu düşünelim.

Resimleri tüm genişlik / yükseklik / yoğunluklar için hızlı bir şekilde nasıl yeniden boyutlandırabilirim

Bunu yapmanıza yardımcı olacak araçlar var. Benim için en iyisi http://makeappicon.com/ ama bir e-posta adresi sağlamayı gerektiriyor.

Diğer olası çözümler şunlardır:

Bana bir örnek yapılandırma verebilir misiniz?

Evet. İşte benim gerçekconfig.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>

İyi bir örnek kaynağı başlangıç ​​kitleridir. Gibi PhoneGap-başlangıcında veya İon marş


2
i (birçoğuna), küçük bir cli yarar, yani kolları uygulaması simgesine, ekranı ve önizleme nesil inşa https://github.com/mmacmillan/cordova-imaging i yapılandırma dosyası thats tarafından tahrik iyi belgelenmiş çünkü bu ilgili söz boyutlar / boyutlar / konumlar ve platforma özgü belgelere bağlantılar içerir; bu, vermek için zaman ayırdığınız ayrıntılı yanıtı tamamlamaya yardımcı olabilir
Mike MacMillan

Tüm bunları Cordova 5.1 ile yaptım, dosyalar belirttiğiniz gibi .apk içine kopyalanıyor, ancak yine de tablet yeni simge göstermiyor. Herhangi bir fikir?
Gringo Suave

Yapılması gereken, uygulamanın eski sürümünü kaldırmak ve ardından yeni sürümü yüklemek. Sonra tablet bir şeyin değiştiğini fark etti. Böylece yeni simgeyi alabildim.
Gringo Suave

1
Ne harika bir cevap! Sorunumu cordova build android --verbosebelirlemek ve çözmek için önerinizi kullandım . Teşekkürler!
Sarah

Güzel cevap Sebastien;) başparmak yukarıya
Alaeddine

32

Cordova 3.5.0-0.2.6'dan itibaren <icon />config.xml'deki öğe aşağıdaki uyarılarla çalışır:

  1. srcNitelik proje kök klasörüne bir yol görecelidir. Bu konuyla ilgili sorun takipçisi, neden değişikliğin nedeni.

  2. <icon src="..." />Çözünürlük / dpi olmadan eleman varsayılan simge olarak tüm platformlarda kullandığı simge olarak belgelenmiştir. Bununla birlikte, android yapılarında varsayılan simge, belirli çözünürlükler ayarlanmadan yalnızca android çekilebilir klasörüne kopyalanır. Bu, /res/drawableklasörde özel simgenin görünmesini sağlar ve belirli çözünürlüklere sahip cordova varsayılan simgesi, son apk (yani /res/drawable-ldpi) içindeki diğer klasörlerde bulunur . config.xmlAndroid platformunda her çözünürlük için bir simge öğesi eklemelisiniz .

Örneğin, simge görüntünüz www/res/img/icon.pngkök projenize göre yoldaysa, bu satırlar config.xmluygulama simgenizin android'de çalışmasını sağlar:

<!-- 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" />

Bu yapılandırmayla, tüm çözünürlükler için varsayılan cordova simgesinin üzerine yazan ve özel çemberler olmadan tek bir görüntü simgesine sahip olabilirsiniz. Basitçe inşa cordova build androidetmek hile yapmalı.


2. sorun için bir hata raporu bağlantınız var mı? Bu problemi yeni bir projede buldum ve ilk başta kafamı karıştırdı. Mümkünse ne zaman düzeltildiğini bilmek için ilerlemeyi takip etmek ister. Şerefe.
Mike

omg sonunda işe yaradı! İçin teşekkürler density. Değiştim <icon gap:platform="android" gap:qualifier="ldpi" src="www/res/icon/android/icon-36-ldpi.png" />için<icon gap:platform="android" density="ldpi" src="www/res/icon/android/icon-36-ldpi.png" />
Tha Leang

@Ronoaldo Periera senin kurtarıcım !! Her yoğunluk için <icon ..> etiketi! parlak!!
Hittz

Varsayılan simge src, Android için iyi çalışmaz, bu yüzden aslında yok sayılır! Cevabımı burada kontrol edin: stackoverflow.com/a/31674547/82609
Sebastien Lorber

8

Yerel olarak oluştururken otomatik simgeleri eklemek için kolay kullanımlı bir yolunu istiyorsanız ( cordova emulate ios, cordova run android, vs) bu ana fikri de bakabilirsiniz:

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

Umarım bu, gelecekte bir ara kutudan çıkmaya başlar, işte Cordova projesiyle ilgili hata raporu:

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


Linus cevabımda açıklandığı gibi evet şimdi çalışıyor ama aynı zamanda bazı şeyleri
bozmuş

4

Simge dosyasını koyacağınız bir config.xml dosyası oluşturmanız gerekir.

<?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>

Şunu kontrol edin: https://build.phonegap.com/docs/config-xml

iOS'a özel simgeler var


yapılandırma dosyam zaten tüm simgeleri içeriyor. yeni bir telefon aralığı projesi oluştururken varsayılan olarak oluşturulur
Markus

2
Çalışmıyor. PG Build ile çalıştı, ancak Cordova 3.x cli config.xml'de belirtilen simgeleri dikkate almaz (ne de root'ta icon.png & screen.png). Ayrıca bu sorunun cevabını arıyorum.
lefnire

Yup config.xml yalnızca PhoneGap Build içindir! bunu nasıl yapacağını bilen var mı ?!
Michael

Cordova 3.5.0-0.2.6'da, Android'de bazı uyarılarla birlikte simge desteği çalışır. Ayrıntılar için cevabıma bakın.
Ronoaldo Pereira

4

Buradaki yanıtların çoğu iOS'a yönelik olduğundan, burada Android'de simgeyi değiştirmek için bir çözüm var.

Android için:

Bütünleme değişiklikler <proje konumu> \ platformlar \ android \ karınca-build \ res değil <proje konumu> \ platformlar \ android \ res

İkinci konumda değişiklik yapan bazı kişiler işe yaramış olabilir, ancak Phonegap'in \ android \ res'den \ android \ ant-build \ res içine kopyaladığını fark ettikten sonra, orayı kontrol etmeye karar verdim ve varsayılanı içeren ayrı bir çekilebilir klasör seti buldum phonegap simgesi.

Bunları değiştirmek nihayet işe yaradı.

Yerel olarak derleyip çalıştırdığım ve Adobe PhoneGap Build'i kullanmadığım için <proje konumu> \ www \ res \ icon \ android'deki simgeleri değiştirmek de işe yaramadı.


3

Phonegap 3.1.0-0.15.0 çalıştırıyorum, iOS7 çözünürlüğü 120x120px olarak değiştirdiğinden, projeye bu boyutlarda bir dosya ekledim ve sonra info.plist dosyasını değiştirdim.

  1. Xcode'da proje dosyasına sağ tıklayarak ve "Dosyaları" [Proje Adınız] 'a ekle " seçeneğini belirleyerek projeye 120x120'lik bir dosya ekleyin ...
  2. Xcode "Kaynaklar / [Proje Adınız] -info.plist" içindeki info.plist dosyasına gidin
  3. Altında "Simge dosyaları (iOS 5) / İlköğretim Simge / Simge dosyaları" değişim "Öğe 2" dosya vardı dosya adı (ben tüm diğer simgeler tarafında Proje klasörüne yerleştirilir "simge 120.png mayın denilen her ne kadar ama bu önemli olmamalı)

Daha fazla bilgi burada bulunabilir: http://www.digifloor.com/missing-recommended-icon-file-error-ios-app-13

İOS'ta açılış ekranını düzeltmek için aynı boyutlara ve aynı dosya adlarına sahip yeni dosyalara eski dosyaların üzerine yazdım. Xcode'daki menü çubuğunda Ürün> Temizle'ye gitmeyi unutmayın (Shift + Command + K kısayolu) ve düzgün çalışmalıdır! :)


3

Cordova 3.3.1-0.1.2'de beklenen davranış doğru çalışmıyor.

içinde

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

onları res adlı bir klasöre ana www klasörünüze koymanız gerektiğini açıkça belirtir ve özgün özelleştirilebilir config.xml belirtilen yol yerine belirli bir adlandırma kuralını izleyen simgeler (burada seçtiğiniz bir dosyaya işaret edersiniz, hangisi / çok daha iyi). daha sonra her platform için oradan almalı ve bunları /? android? / res / drawable-? dpi / icon.png platformlarına koymalıdır, ancak şu anda böyle bir doğru davranış yok ... hata.

sanırım bunları her platform için manuel olarak yerleştirmemiz gerekiyor. elbette tekrar www klasörüne kopyalamaktan kaldırılması gerekir. Benim için yine de ana www klasöründeki içeriği tamamen değiştirmek zorunda kaldım çünkü orada garip bir rastgele klasör bulmak için bir yönlendirme index.html'yi hacklemeden merhaba dünyasında bile çalışmadı. Res klasörünü www'nin yanına koymak en mantıklı olanıdır, ancak bu basamaklı ve kafa karıştırıcı tasarım seçimleri / kusurları dizisinden kaynaklanıyor gibi görünüyor.


2

bazı durumlarda, cordova'nın dahili skript'leri simgeleri doğru klasöre koymaz, bu nedenle kendi simgeniz yerine f *** cordova robotunu görebilirsiniz.

Kanca komut dizisini kullanın .;)

üç kanca-your-cordovaphonegap-proje-ihtiyaçları

Kanca klasöründe bir "after_platform_add" klasörü oluşturun ve devgirl'deki son skript'i koyun / değiştirin.

Linux'ta komut dosyası için yönetici hakları ayarlamayı unutmayın "chmod 777 <script>"

iyi şanslar!


1

Yaptığım tek şey aşağıdaki satırları config.xml'ye ekledim <icon src="www/img/appIcon.png" />

Ve tamamen iyi çalıştı


Teşekkürler adamım. Res / icon.png içine bir simge koymaya çalıştım (belge örneklerinde olduğu gibi ...) ve ios üzerinde hiç çalışmadı. Sonunda o kafa karıştırıcı "res" klasöründen vazgeçtim ve önerdiğiniz gibi simgeyi "www" altına koydum ve benim için de bir cazibe oluşturdu! Bu, Cordova 6.0.0 için çalışır. ios platformu.
firepol

1

Bu kodu config.xml dosyanıza eklemeniz yeterli

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

Örneğin:

<icon src="icon.png">

Her şekilde .png uzantısını kullanmanız gerektiğini unutmayın


png resimleri kullanmayı dene
Jobincs

0

Ayrıca tüm bunların nasıl bağlantılı olduğunu anlamaya çalışmanın tam ortasındayım.

XCode'da şimdiye kadar bulduklarım burada, ancak varsayımlarım doğruysa düzeltilmeyi veya onaylanmayı umuyorum. Cordova'dan xcode'a, simgeleri doğru şekilde uygulayan kutudan çıkmış bir yapı bulamadım. Sizin gibi config.xml'de listelenen tüm simgeleri güncelledim ama zar yok.

Yani...

İlk olarak, genellikle projenin kök dizinindeki config.xml dosyasını "www" klasörümdeki ile güncellerim (bunu www / config.xml'nin herhangi bir önceliğe sahip olduğu veya uygulanıp uygulanmadığı konusundaki belirsizlikten dolayı yapıyorum)

İkinci olarak, projenin "Yapım Aşamalarını" güncelliyorum. "Paket Kaynaklarını Kopyala" yı genişletin, "Kaynaklar / simgeler", "Kaynaklar / giriş" içindeki tüm resimleri zaten fark ettiniz. Aşağıdakilerden birini yapabilirsiniz:

  • resimlerinizin üzerine yazmamak için bunların hepsini kaldırın VEYA
  • tüm bu resimleri kendinizinkiyle güncelleyin (listelenen resmin adını yeniden adlandırın)

Ben bunun üzerinde çalışırken, resimleri "Özet" sekmesinden en az düzeyde güncelleyebilirsiniz.

Resimlerinizi res klasörlerinizden "Özet" sekmesindeki uygun resme sürükleyip bırakın. (res / icon / ios -> Uygulama simgeleri ve res / screen / ios -> Görüntüleri Başlat). Uygulamam yalnızca iPhone olduğundan bunu yalnızca iPhone için yapıyorum. Parlak görünmesini istemiyorsanız "önceden oluşturulmuş" seçeneğini işaretleyin.

Ardından projenin plist dosyasında belirtilen "icon.png" dosyasını güncelleyin: PROJECT_NAME-Info.plist veya proje hedefine bakarken "Bilgi" sekmesinde. Bunu "icon-57.png" olarak yeniden adlandırın (artık proje kökünüzde yaşıyor, sürükle ve bırak işlemi yaptığınızda bu otomatik olarak köke eklenmiştir.

Oluşturun ve güncellenmiş bir uygulama simgesi olmalısınız.


Projeyi Cordova 3.0.3 ile oluşturdum, ancak bunun phonegap yapılarında da aynı olduğunu düşünüyorum.
Sam Tsai

0

Sadece config.xml'imi Sebastian'ın örneğine benzeyecek şekilde değiştirdiğimi not ederek.

Özellikle yerel derlemeler yapmıyorsanız tüm bunların hatalarını ayıklamada yardımcı olan bir şey de ... XAP / IPA / APK dosyalarını PhoneGap bulutundan oluşturulmuş olarak indirmek ve her biri için klasörler oluşturmaktır. Her dosyayı bir .ZIP uzantısıyla yeniden adlandırın ve her birinin içeriğini ilgili klasörlerine çıkarın. Yani temelde, telefona gönderilecek olan pakette ne olduğunu artık görebilirsiniz.

Bunu yaparak, Microsoft Phone platformu için simgeyi veya açılış ekranını değiştirmeye yönelik tüm girişimlerimi büyük ölçüde görmezden geldiğini görebiliyorum. Daha sonra ApplicationIcon.png ve SplashScreenImage.jpg'yi değiştirirseniz, klasör kümesini yeniden sıkıştırın ve .XAP dosyası olarak yeniden adlandırın, ardından telefonunuza dağıtabilirsiniz ve mükemmel şekilde çalışacaktır. Her nasılsa, icon.png ve icon.jpg dosyanızı bu iki dosyaya dönüştürmek için PhoneGap yapısını edinmenin bir yolu var. Belki de Masood'un önerisi burada bir olasılıktır ve bir kanca senaryosu kullanır.

Aynı şeyi .IPA dosyası (iOS) için yapmak, www'nin üzerindeki üst düzeyde icon-something.png gibi birkaç dosyayla sonuçlanır. Hepsi boş görünüyor.

Aynısını .APK dosyası (Android) için yapmak, res / çizilebilir bir dizi klasörle sonuçlanır ve her birinde icon.png var gibi görünür. Şu anda iddia edebileceğim bir başarıya en yakın olanı bu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.