2012-04-06 29 views
11

Ich habe zwei integrierte App-Symbole (kostenlos und Premium). Ist es möglich, das kostenlose Symbol zum Premium-Symbol programmatisch zu ersetzen, nachdem der In-App-Kauf erfolgreich abgeschlossen wurde?Kann ich das App-Symbol programmgesteuert ändern?

+2

Seit iOS '10.3' dies ist möglich! Werfen Sie einen Blick auf diese Antwort: http://stackoverflow.com/questions/41950994/is-this-possible-to-apply-the-alternative-icon-to-the-ios-application – KlimczakM

Antwort

13

Nein, das Symbol wird im Anwendungspaket angegeben, das Sie nicht ändern dürfen. Wenn Sie es ändern, wird Ihre App-Signatur ungültig (nicht die gleiche Prüfsumme) und Ihre App wird nicht mehr ausgeführt.

+0

Würde dies auch für eine interne gelten App statt einer über den öffentlichen App Store verteilt? Ist der Plist unveränderlich? –

0

Ich fürchte nicht; ziemlich sicher, dass das App-Icon sich nicht bedingt ändern darf.

0

Ich glaube nicht, dass das ohne ein jailbroken Telefon möglich ist. Das App-Symbol ist im Anwendungspaket enthalten, in das Sie nicht schreiben dürfen.

-1

Ich stimme nicht mit allen oben genannten Antwort. Bitte versuchen Sie die App "OneTap", damit Sie Ihr eigenes Icon Ihrer neuen App erstellen können. OneTap App ist kostenlos auf iTunes.

+3

Ich bin mir sicher, dass viele Leute interessiert sind, wenn das möglich ist. Bitte hinterlassen Sie einen funktionierenden URL-Link oder Quellcode der Lösung. – Vincent

+1

Es ist nicht möglich! OneTap ändert seine eigene AppIcon nicht. Es öffnet Safari mit dem ausgewählten Bild und der Benutzer sollte auf dem Startbildschirm speichern drücken. Danach können Sie auf dieses neue App-Symbol tippen, das Safari öffnet, das Sie zur OneTap App weiterleitet. So ändern Sie programmatisch App-Symbol ist nicht möglich – AlexPrinceton

3

Nein, definitiv nicht. Dieser Teil des Anwendungspakets ist schreibgeschützt und auch mit Code signiert.

Die Antwort auf die TapOne App ist etwas völlig anderes. Es erstellt "Webclips" zu Websites oder Telefonnummern. Um zum Beispiel ein iPhone Symbol für Ihre Website zu erstellen, würden Sie etwas zu Ihrer Webseite Header hinzufügen:

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

Mehr Infos gibt es hier: https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

TapOne und Web-Clips nicht programmatisch Ändern Sie das Symbol in einem Anwendungspaket.

9

Es gibt eine neue Lösung für diese Situation.

können Sie

setAlternateIconName(_:completionHandler:) 

iOS verwenden 10.3 ist aus mit Xcode 8.3.

10.3+

Update:

Verwendung ist ziemlich einfach, ist der Schlüssel plist Nutzung, um herauszufinden, und beachten Sie, dass Sie nicht Vermögenswerte aus xcassets (zumindest funktionierte nicht für mich) laden können. Sie müssen Ihre Symboldateien zum Projekt hinzufügen und 180 x 180 Bilder für die Qualität bevorzugen.

Sie müssen "Icon-Dateien (iOS 5)" verwenden, neue Icon-Dateien funktionieren nicht.

Eine letzte Sache, wenn Sie das Symbol bei einem Klick auf die Schaltfläche ändern, erscheint ein Warnfenster mit der Meldung "Sie haben das Symbol für" IcoTest "geändert."

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

Versuchen Sie, auf Ihre Antwort zu erweitern. Sie haben nicht erklärt, dass es sich um eine Methode zur UIApplication handelt oder wie Sie das PLIST oder irgendetwas einrichten. Nur zu sagen, diese Methode aufzurufen, ist für niemanden nützlich. – dlbuckley

+0

Ich möchte diese aufregenden Nachrichten mit Leuten teilen. Ich werde teilen, wie ich es getan habe. So traurig ist das nicht genug für dich. – ymutlu

+0

Es sind aufregende Neuigkeiten, Sie haben Recht. Aber deine Antwort sagt nicht die ganze Geschichte darüber, wie man diese neue Funktion benutzt, es sind Implikationen und Implementierungsdetails. Ich habe die Antwort gewählt, weil es eine Antwort ist, die einfach versucht, Stimmen zu bekommen und niemandem zu helfen. Wenn Sie Ihre Antwort ändern, um das Feature vollständig zu erklären, dann werde ich glücklich darüber abstimmen :) – dlbuckley

1

Ein Update: seit iOS 10.3 Sie das App-Symbol, indem alternative Symbole in der info.plist definiert aktualisieren können.

Mehr unter Apple Docs

Verwandte Themen