2012-04-06 18 views
11

2つのアプリアイコン(無料とプレミアム)が組み込まれています。アプリ内購入が正常に完了した後、フリーアイコンとプレミアムアイコンをプログラムで交換できますか?アプリのアイコンをプログラムで変更することはできますか

+2

これは可能です!この回答を見てみましょう:http://stackoverflow.com/questions/41950994/is-this-possible-to-apply-the-alternative-icon-to-the-ios-application – KlimczakM

答えて

13

いいえ、アイコンはアプリケーションバンドルで指定されています。変更する必要はありません。あなたがそれを変更すると、あなたのアプリケーションの署名は無効になり(同じチェックサムではない)、あなたのアプリはもう動かなくなります。

+0

これは内部にも当てはまりますか?アプリを公共のApp Storeを通じて配布するのではなく、 plistは不変ですか? –

0

私は恐れていません。アプリケーションアイコンが条件付きで変更することはできません。

0

私はjailbroken電話なしでは可能ではないと思います。アプリケーションアイコンはアプリケーションバンドルに含まれていますが、書き込みは許可されていません。

-1

私は上記のすべての答えには同意しません。 アプリ "OneTap"を試してください、それはあなたの新しいアプリのあなた自身のアイコンを作ることができます。 OneTapアプリはItuneで無料です。

+3

これが可能なら、多くの人々が興味を持っていると確信しています。解決策のURLまたはリンクを確認してください。 – Vincent

+1

できません! OneTapは独自のAppIconを変更しません。選択した画像でSafariを開くだけで、ユーザーはホーム画面に保存を押す必要があります。この後、ワンタップアプリにリダイレクトするサファリを開くこの新しいアプリアイコンをタップできます したがって、プログラムで変更するアプリアイコンは使用できません – AlexPrinceton

3

いいえ、間違いなく。アプリケーションバンドルのその部分は読み取り専用であり、コード署名されています。

TapOneアプリに関する回答はまったく異なるものです。ウェブサイトや電話番号に「ウェブクリップ」を作成します。たとえば、あなたのウェブサイトのためのiPhoneのアイコンを作成するには、ウェブページのヘッダーにこのようなものを追加します。https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

TapOneとウェブクリップは、プログラムません。

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

はここに利用できるより多くの情報がありますアプリケーションバンドル内のアイコンを変更します。

9

この状況の新しい解決策があります。

あなたはiOSの10.3はXcodeの8.3で出ている

setAlternateIconName(_:completionHandler:) 

を使用することができます。

10.3+

更新:

使用法は、キーがplistの使用量を見つけると、あなたは(少なくとも私にとってはdidntの仕事)xcassetsから資産をロードできないことに注意することがあり、非常に単純です。プロジェクトにはアイコンファイルを追加する必要があり、画質は180x180のイメージを優先します。

「アイコンファイル(iOS 5)」を使用する必要があります。新しいアイコンファイルは機能しません。

最後に、ボタン上のアイコンをクリックすると、「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

答えを拡大してみてください。あなたはそれがUIApplicationの方法かplistか何かをセットアップする方法であると説明していません。単に「このメソッドを呼び出す」と言っても誰にも役に立ちません。 – dlbuckley

+0

私は人々とこのエキサイティングなニュースを共有したいと思います。私はそれをやったのと同じように、どのようにしてssonにするのかを分かち合います。だから悲しいこれはあなたのために十分ではありません。 – ymutlu

+0

これはエキサイティングなニュースです、あなたは正しいです。しかし、あなたは答えは、この新しい機能を使用する方法についてのすべての話を教えてくれません、それは意味と実装の詳細です。私は答えを投票しましたが、それは単に投票を得ようとしているだけで誰も助けようとしていないという答えだからです。あなたが完全に機能を説明するためにあなたの答えを修正したら、私は幸せにそれを投票する:) – dlbuckley

1

アップデート:iOSの10.3以来、あなたはInfo.plistファイルで定義された代替アイコンを持つことで、アプリのアイコンを更新することができます。

続きを見るApple Docs

関連する問題