2012-04-06 15 views
11

Ho due icone di applicazioni integrate (gratuite e premium), è possibile sostituire l'icona gratuita con l'icona premium a livello di programmazione dopo che l'acquisto in-app è stato completato con successo?Posso cambiare l'icona dell'app a livello di programmazione

+2

Dal iOS '10.3' questo è possibile! Dai un'occhiata a questa risposta: http://stackoverflow.com/questions/41950994/is-questo-possibile-per-applicare-il-alternativo-icon-to-il-ios-applicativo – KlimczakM

risposta

13

No, l'icona è specificata nel pacchetto di applicazioni, che non è necessario modificare. Se lo modifichi, la firma dell'app diventerà non valida (non lo stesso checksum) e quindi l'app non verrà più eseguita.

+0

Questo si applica anche a un interno app piuttosto che una distribuita attraverso l'App Store pubblico? Il plist è immutabile? –

0

Ho paura di no; abbastanza sicuro che l'icona della app non può cambiare condizionalmente.

0

Non credo sia possibile senza un telefono jailbroken. L'icona dell'app è contenuta nel pacchetto dell'applicazione, su cui non ti è permesso scrivere.

-1

Non sono d'accordo con tutte le risposte sopra. Prova l'app "OneTap", ti permetterà di creare la tua icona della tua nuova app. L'app OneTap è gratuita su Itune.

+3

Sono sicuro che molte persone sono interessate se questo è possibile. Si prega di lasciare un collegamento URL funzionante o il codice sorgente della soluzione. – Vincent

+1

Non è possibile! OneTap non modifica il proprio AppIcon. Basta aprire Safari con l'immagine selezionata e l'utente dovrebbe premere Salva nella schermata iniziale. Dopodiché puoi toccare questa nuova icona dell'app che aprirà il safari che ti reindirizzerà all'app OneTap Quindi non è possibile modificare l'icona dell'applicazione programmabile – AlexPrinceton

3

No, sicuramente no. Quella parte del pacchetto di applicazioni è di sola lettura e anche firmata dal codice.

La risposta relativa all'app TapOne è qualcosa di completamente diverso. Crea "clip web" per siti Web o numeri di telefono. Ad esempio, per creare un'icona iPhone per il tuo sito, si dovrebbe aggiungere qualcosa di simile per l'intestazione pagina web:

<link rel="apple-touch-icon" href="/your-custom-icon.png"/> 

C'è più informazioni disponibili qui: https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

TapOne e web clip non lo fanno a livello di codice cambia l'icona all'interno di un pacchetto di applicazioni.

9

C'è una nuova soluzione per questa situazione.

È possibile utilizzare

setAlternateIconName(_:completionHandler:) 

iOS 10.3 è fuori con Xcode 8.3.

10.3+

Aggiornamento:

L'uso è piuttosto semplice, la chiave è quello di scoprire l'uso plist e notare che non è possibile caricare risorse da xcassets (almeno non funzionava per me). È necessario aggiungere i file icona per proiettare e preferire immagini 180x180 per la qualità.

È necessario utilizzare "File icona (iOS 5)", i nuovi file Icona non funzionano.

Un'ultima cosa, quando si cambia icona su un pulsante, si aprirà una finestra di avviso che dice 'Hai cambiato l'icona per "IcoTest".'

enter image description here

//ViewController.swift 
@IBAction func ico1Click(_ sender: Any) { 
    if UIApplication.shared.supportsAlternateIcons{ 
     UIApplication.shared.setAlternateIconName("Icon2", completionHandler: { (error) in 
      print(error ?? "") 
     }) 
    }else{ 
     print("NO NO") 
    } 
} 

//Info.plist 
<key>CFBundleIcons</key> 
<dict> 
    <key>CFBundleAlternateIcons</key> 
    <dict> 
     <key>Icon1</key> 
     <dict> 
      <key>CFBundleIconFiles</key> 
      <array> 
       <string>alternater1_180x180</string> 
      </array> 
      <key>UIPrerenderedIcon</key> 
      <false/> 
     </dict> 
     <key>Icon2</key> 
     <dict> 
      <key>CFBundleIconFiles</key> 
      <array> 
       <string>alternater2_180x180</string> 
      </array> 
     </dict> 
    </dict> 
</dict> 
+0

Prova ad espandere la risposta. Non hai spiegato che si tratta di un metodo su UIApplicazione o su come impostare il plist o altro. Il semplice 'chiamare questo metodo' non è utile a nessuno. – dlbuckley

+0

Mi piacerebbe condividere questa entusiasmante notizia con le persone. Condividerò un come su come ho fatto io. Così triste questo non è abbastanza per te. – ymutlu

+0

È una notizia eccitante, hai ragione. Ma la tua risposta non dice tutta la storia su come usare questa nuova funzionalità, le sue implicazioni e dettagli di implementazione. I down hanno votato la risposta perché, così com'è, è una risposta che cerca semplicemente di ottenere voti e di non aiutare nessuno. Se modifichi la tua risposta per spiegare pienamente la funzione, allora lo farò volentieri votare :) – dlbuckley

1

Un aggiornamento: dal momento che iOS 10.3 è possibile aggiornare l'icona dell'applicazione avendo icone alternative definite nel Info.plist.

saperne di più visita Apple Docs

Problemi correlati