5

私の質問も他の人が以前に尋ねたものと同じです。

アプリケーションのアイコンを設定すると、アプリケーションアイコンを動的に変更できないことがわかりました。はい、同意しました。もしそうなら、私たちはダイナミックアイコンを使用しましたAppleは受け入れません。しかし、私はアップルにいくつかの規則と規制があることを受け入れます。

だからここに私の質問があります:アプリのアイコンを動的に変更する方法。アプリケーションをAppStoreに置くつもりはありません。

誰もがそれは不可能だと言っています。私はリンゴのルールについて心配していません。しかし、ええ、答えを心配しています。

誰か、私にこれをするように案内してください、そして私に「あなたはカント」と言わないでください。

前もって感謝します。

4

3 に答える 3

9

iOS 10.3+

setAlternateIconNameと呼ばれるメソッドがあります。これはiOS10.3で導入されており、アプリのアイコンを変更できますが、これらのアイコンは事前に定義しておく必要があります。これは、アイコンをアプリのバンドルに追加し、で参照する必要があることを意味しますinfo.plist

例:

典型的なinfo.plistは次のようになります。

<key>CFBundleIcons</key>
<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>alternate_icon_name</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>alternate_icon_file</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>default_icon_file</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
    </dict>
</dict>

次のようなコードを実装します。

Objective C:

[[UIApplication sharedApplication] setAlternateIconName:@"alternate_icon_name" completionHandler:^(NSError * _Nullable error) {
    NSLog(@"Error...");
}];

スウィフト3:

if UIApplication.shared.supportsAlternateIcons
{
    UIApplication.shared.setAlternateIconName("alternate_icon_name", completionHandler: { (error) in
        print(error ?? "")
    })
}

iOS10.3より前

アイコンファイル名はアプリケーションのplistに保存されているため、アイコンファイルを動的に変更することはできません。

アプリケーションplist

アプリケーションplistは読み取り専用のアプリケーションバンドルに保存されているため、動的に変更することはできません。

したがって、あなたの要件は不可能です。

于 2012-10-22T05:04:20.590 に答える
1

icon.png1つの方法は、プログラムでファイルを書き直すことです。AppResourcesファイルシステムへのアクセスを許可するプライベートAPIを検索する必要があります

于 2012-10-22T05:12:50.850 に答える
1

iOS 8の前に、私は少なくとも1回は肯定的な結果をもたらす1つの方法を試しました。

icon.pngを../Documents/icon.pngへのリンクとして設定します

ただし、インストールされているアプリケーションのアイコンを再ダウンロードするようにSpringboardに強制する必要があります(Springboardがアイコンをキャッシュするため)

iOS 8がこのように機能しないため、Documentsフォルダーが動的パスに移動されました。

したがって、バンドルから読み取り専用のicon.pngを更新する方法を見つける必要があります。

/ Applications /に(Cydiaを介して)インストールされたアプリの場合-それは可能です。

アドホック経由でインストールされたアプリの場合-readonlyicon.pngを更新する方法はありません(私が知っているように)

于 2014-11-13T05:51:03.227 に答える