Its just impossible to add an action extension icon - ios

I've been literally trying for two weeks to get an icon for an action extension to appear, but absolutely nothing works.
I've seen past questions such as this iOS 8 Action Extension icon sizes and this Why isn't my iOS8 Application Action Extension App Icon showing up? but they are of no use.
I've created an Xcode template project purely to try every combination of things mentioned in the other questions, still without avail.
1) The first thing that's mentioned is that the action extension should have its own asset catalog, ok here it is:
2) Secondly that it should contain an app icon image set, here that is:
3) Thirdly people say they had to add its target membership to the extension and to the app. Here that is too (in all of these things, I've tried variations such the membership being just the extension, just the app, both)
4) Fourthly, people mention they had to add it to the compile sources, here that is, as well as it being copied in the bundle resources:
5) Some say it also needs to be copied in the container app's bundle, here that is, and for good measure its been added as a compile resource of that too:
6) One person says it was necessary to add the container apps assets to the extension bundle, I can't see how that would work as the icons in the container app are colored and not matching the requirements of the extension icons, but what the hell, might as well try everything right, and while we're at it lets add assets everywhere:
7) The asset icon itself is important, colored icons are not displayed, but I tried it anyway. A simple black and white image is described as the white parts appearing as grey but I've tried that anyway. Trying unsupported icons was just desperation and experimentation, of course I'm actually using an icon with a transparent background. When posted here it appears on this webpage as all white of course, but the non-black parts are actually fully transparent and have an alpha of 0:
But despite trying many combinations of all the various steps above, this is what it looks like on the device:
This is using iOS 10.n, latest 10.7 (it hasn't worked with any beta) and Xcode 8.6. If I download an app from the app store that uses action extensions then their icons are appearing, so there's no issue with the 10 beta. The issue is either something building the app with Xcode beta, or some step I've missed out - if that is the case, then what?

Finally found out the solution - in order to get it to work its additionally necessary to set the Asset Catalog compiler options of Build Settings section of the extension to specify the name of the app icon set within the asset catalog:
How to set an action icon really is the most appallingly badly documented aspect of iOS, totally shockingly awful.

Related

Xcode Asset Catalog not showing

I’m a new developer to Xcode and I’m trying to create my first app. However when I want to add to my asset catalog, I’m not finding the import button or when I drag and drop a image , it’s not going into a folder nor can I find a way to create a folder. I just have this blank empty space.
This is what a normal asset catalog looks like in YT tutorials:
This is what I get:
I tried looking into view, I’ve seen an Apple dev link that didn’t really help. It called for File>New> Asset catalog but it just creates this image icon as seen in my screenshot
you enabled code review, try disabling it

How to change android app icon background color in xamarin

Variations of this question have been asked over the years but I have not found anything current, up-to-date, and step-by-step. The closest thing I have found is this but it is hard to follow and not completely accurate.
https://learn.microsoft.com/en-us/answers/questions/696540/background-color-for-launcher-icons.html
For instance, it refers to Visual Studio 2017 documentation on how to change the app icon that just does not work even in the Visual Studio 2022. Really, after so many years we have no easy way of setting the app icon?
https://learn.microsoft.com/en-us/xamarin/android/deploy-test/release-prep/?tabs=windows#specify-the-application-icon
I my case I was really just trying to change the background color, which was showing up correctly under iOS but under Android was just white. So what is the best way of accomplishing this?
So the current site for creating all your iOS and Android icons is here:
https://icon.kitchen/
You upload your image with a transparent background and then select your background color. It gives you a preview of what your icon will look like and you tap Download to get a zip file containing all the icons you need with the proper folder structure.
In the case of Android you copy the mipmap* folders into your res or Resource folder in the Droid project folder.
There is one adjustment that you will have to make to the two files in the mipmap-anydpi-v26 folder. They come named "ic_launcher" but for some buggy reason they need to be named "icon".
After changing their name we encounter the next critical step due to the bug in the "Droid project Properties/Android Manifest/Application icon". You should be able to set your icon here but it does not work! Instead you must modify AndroidManifest.xml by hand to add the android:icon as follows:
<application android:label="γDog" android:theme="#style/MyTheme" android:icon="#mipmap/icon">
If you ever change the properties again you will need to make this change again because it will revert back and cause an error in your compilation.
One caveat is that on some Android platforms the background color is evidently not used and is instead left transparent.

Share image resources between app and today widget

Can I share resources (images that are compiled into the application) between my main iOS app and my today extension widget? Say I create a new application. Then add a today extension project to the solution. And then I create a UIImageView. I want to reference an image from a shared pool of images rather than having 2 of every image, one added to main app and another added to widget app.
imageView.Image = UIImage.FromBundle("IMG_3799.JPG");
The IMG_3799.JPG is inside the main application in the References folder of that project. I'd prefer the same image asset to be referenced by the widget. Is that possible? Currently, i'm making a 2nd copy of IMG_3799.JPG and putting it into the widget.
Out of box, you can't.
The closest thing to that would be to create an app group that contains the main app and the extension and that has access to the common folder. However you can't place any file there during deployment, just during runtime, so it may or may not be a workaround for what you require, but that is the only way.
I'm afraid this might be late. Following is what I did with Xcode 12.4
First, go into your Assets.xcassets file in Xcode then select the image you want to be shared.
Second, click "Hide or show the Inspectors" in the top right corner of Xcode.
Thir, click "Show the file inspector"
Then you should see Target Membership where you can simply click the checkbox to have the images to be used in main app, extensions, etc.
I found this method for Wigetkit from 17:10 of this youtube video: https://www.youtube.com/watch?v=ZzBBDrFNXmk
I came across this answer while looking for a way to share images between my main app and my iMessage extension. As it turns out, just by adding the image files to both targets I was able to use one single copy of my images in both places.
In the project navigator, I added the images to a folder (not .xcassets) under my main project (not the extension) and just ensured that the Target Membership was set to both the main app and extension.

WatchKit sometimes not loading images

I have a number of images in my interface, some simply used as information feedback and others are there as part of Buttons.
The information feedback images are updated in the interface using code. The images which are part of buttons have the image choice defined in Xcode and they never change.
A number of users have sent me images showing screens where none of the buttons have images, ie they're blank. The buttons still work though.
The situation doesn't happen with all users and it works exactly as designed in the simulator.
All images are stored in the WatchKit app so have not been explicitly cached as that shouldn't be necessary. All images are in PNG format.
Has anyone else experienced this and is there a fix?
If the image files in your WatchKit app are "loose" (i.e. not in an assets catalog), make sure you have the "#2x" suffix in the file name. Many developers have reported issues where loose images display in the simulator but not on actual hardware.
I would highly recommend creating an assets catalog in your WatchKit app (not extension) that includes all of your Watch assets. Make sure that each image is set to "Device Specific" in the inspector panel and that "Apple Watch" is the only option selected. Using this technique, the actual file names don't matter.
I just happened to write a post with additional details that might be useful to you: http://blog.mikeswanson.com/post/118580394879/watchkit-image-tips

Ios default icon for open view from list

In every ios app you can have a list that contains elements with subelements.
Tapping on the element will open a new page and you can usually press back to return.
This is indicated with a grey ">" symbol on the right.
Is this symbol downloadable somewhere? I know i can just type a > but it doesn't look exactly like the default icon used by ios.
I'm using Xamarin dialog and a standard RootElement embedded as a list item looks exactly like the default ios but i need to customize it with an icon placed left of the text(which is no problem except that i now lose the default > icon).
Googling for ios system icons, ios default icons and ios sdk did not yield the wanted result. I'm hoping that these icons are somewhere embedded on the device.
I hope you guys can help me out, thanks !
As far as I know there is no way to access a UIImage instance of the chevron during run time. Most likely there is private API for this, but I am not aware of it, and since it's private you are not allowed to use it anyway.
You could probably instantiate a cell that has the disclosure indicator as accessoryType and walk the view hierarchy to find it. But that will break easily, so don't do it.
The best way is to add an image and update it with every new iOS release.
There's the iOS Artwork Extractor which basically gets you every piece of artwork that is used in iOS.
The artwork you are looking for should be named UITableNext. (at least that's the name in iOS6, I don't have an extracted archive of iOS7 yet)
Strictly speaking you are violating Apples rules and their copyright if you use their artwork without Apples written consent.
As far as I know this has never been enforced, and lots of people do it, but it's good to keep it in mind.

Resources