Edit2:
私は問題を可能な限り単純なプロジェクトに絞り込みました。これがセットアップです。
新しいシングルビューアプリを作成し、すぐに新しいアクション拡張ターゲットを追加しました。 .xcassetsファイルに新しいアイコンセットを作成し、iPadのRetinaサイズのアイコンを追加しました(すべてのアイコンを入力してみましたが、結果は同じです)。
バンドルリソースのコピービルドフェーズにImages.xcassetsを含めるようにしました。
そして、シミュレーターでアプリを実行すると、すべてが機能します!
ただし、デバイスにコンパイルすると、空白のアイコンが表示されます。
使用しているPNGファイルに問題があることを意味しているのではないかと思いましたが、ここでもすべて問題ないようです。
誰かが同じようなことに遭遇しましたか?
this のような質問にすでにアクセスし、答えを探しています。すべて正しく実行していると思いますが、アクションシートにアイコンが表示されません。
これが私がしたことです:
Images.xcassetsに保存されている作業アプリアイコンを持つ作業コンテナアプリを作成しました。次に、同じプロジェクトのメンバーとしてアクション拡張ターゲットを作成しました。
含まれているアプリから拡張機能の「バンドルリソースのコピー」ビルドフェーズにImages.xcassetsを追加しました。拡張機能のUIImage.imageNamed(...)
を使用して、.xcassetsファイルから画像を読み込むことができるため、これが機能したことはわかっています。
拡張機能の設定の[全般]タブで、[アプリアイコンと起動画像]の下の[アプリアイコンソース]をポイントして、含まれているアプリに使用されているものと同じ「AppIcon」というImages.xcassetsのリソースをポイントしました。
それがうまくいかなかったとき、私はさらに読んで、アクション拡張が「アルファマスク」スタイルの画像を必要とすることを発見しました。 .xcassetsファイルに「AppIcon-2」という別のアイテムを作成し、1色+透明のPNGを除いて、すべてのサイズのアプリアイコンを入力しました。拡張機能の「アプリアイコンと起動画像」をこの新しい「AppIcon-2」に向けました
それでも私のアクション拡張機能のアイコンは空白の白い四角です。私が見逃しているステップはありますか?アルファマスクが必要な非常に特殊な形式はありますか? (私はフォトショップで.pngとして保存しています)。リソースが.xcassetsに持つ必要のある非常に具体的な名前はありますか?
また、ビルドフェーズに.xcassetsを追加することで問題が解決されたことを示唆しているように思われる、いくつかの回答(上記のリンクなど)にも混乱しています。ほとんどのアプリアイコンは完全に不透明ではありませんか? iOSは完全に不透明なアプリアイコンからどのようにアルファマスクを生成しますか?
編集:どのような変更が違いを生んだのか完全にはわかりません(私はそれを推測し、それを理解したらこの投稿を更新しようとします)が、「AppIcon-2」のアルファマスクに基づいて機能するアイコンが表示されています「シミュレーターで。シミュレーターをチェックすることすら考えていませんでしたが、アイコンが正しい場所から引っ張られていることを証明しています。デバイスに関する何かが、画像を異なる方法で処理しています。
編集:Apple iOS8.1でこの問題を修正しました!
------------ OLD ----------------------
この時点での答えは、バグレポートをApple atに送信することだと思います。
必要最低限のサンプルプロジェクトを提出できれば、それは私たちの目的に役立ちます!
これが私が提出したものです:
概要:アクション拡張アイコンは、メッセージとUIActivityViewControllerからはよく表示されますが、フォトアプリから表示される場合、アイコンは空白です。
これはApple PhotosAppのバグだと思います
複製する手順:これらの指示に従いますが、写真アプリから
http://www.photoinvestigator.co/blog/how-to-use-ios8-action-extensions/
期待される結果:メタデータ拡張機能のアイコンが http://www.photoinvestigator.co/blog/how-to-use-ios8-action-extensions/ のように正しく表示されることを期待します。
実際の結果:アイコンは真っ白です
バージョン:iOS 8.0.2、iOS 8.0.0
注: iOS 8アクション拡張アイコンはデバイス上で空白です(シミュレーターで動作します)
メッセージアプリの拡張機能を使用した例を次に示します。アイコンは正しく表示されています。 http://www.photoinvestigator.co/blog/how-to-use-ios8-action-extensions/ しかし、 Appleの写真アプリからこれらの手順を実行すると、アイコンが正しく表示されません。
構成:iOS8を実行しているすべてのiOSデバイス。 iPad 3rd Gen、iPhone 5、iPhone 5c、iPhone 6 Plus
添付ファイル:
編集:彼らはIDの複製としてそれを閉じました:チケットID:17208813進捗状況!
Yarnee App についても同じ問題があります。しかし、Camera Rollの横にあるアイコンは、Dropboxなどの他のアプリでも機能することがわかりました。次のスクリーンショットを参照してください。
少しバグのように感じます...
私も同じ問題を抱えていました。私にとってうまくいったのは、トムハリントンの答えに従うことでしたが、拡張機能アイコンの[ターゲットメンバーシップ](右側のペイン)に拡張機能ターゲットとアプリターゲットの両方が含まれていることも確認してください。 (ビルドフェーズでは、両方のターゲットのバンドルリソースのコピーの下にも表示されます。)
また、拡張機能アイコンの背景は完全に透明である必要があり、白一色ではないことに注意してください。白、または透明以外の色は、濃い灰色でレンダリングされます。
お役に立てれば。申し訳ありませんが、これをトムの回答へのコメントとして追加したかったのですが、私の評判のため、StackOverflowでは許可されませんでした。
問題は解決したようです iOS 8.1 。
これを既存のアセットカタログで機能させるには、拡張機能のビルド設定に以下を追加する必要がありました。
アセットカタログのセットの名前は「ExtIcon」です。拡張機能のinfo.plistでCFBundleIconキーとNSExtensionServiceToolbarIconFileキーを設定しようとしましたが、うまくいきませんでした。これは、アイコンセットがinfo.plistではなく、ビルド設定を介してコンテナアプリにリンクされるのと同じ方法であるため、実際には理にかなっているようです。
拡張機能のInfo.plist
設定について言及していなかったため、アイコンファイルのエントリを含めなかったと思います。 NSExtensionServiceToolbarIconFile
辞書にNSExtensionAttributes
という名前のキーを追加する必要があります。値はアイコンファイルの名前です。
少なくともそれはそれが機能することになっている方法です。実際には、現在、アイコンの名前が付いた最上位のCFBundleIconFile
キーが必要なようです。おそらくそれはNSExtensionServiceToolbarIconFile
が存在しない場合にのみ使用されますが、少なくとも今のところは必要です。私は両方を持っていますが、おそらく必要ではありませんが、ある時点で機能し始めた場合に備えて、正しいものとして文書化されているキーをそのままにしておくことをお勧めします。