WatchKit sometimes not loading images - ios

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

Related

App Store rejects because of app icon size

Appstore rejects app upload and shows this error:
Invalid Image Path - No image found at the path referenced under key
'CFBundleIcons': 'AppIcon20x20'
Can anyone share what the issue is? I had implemented appicon using this.
Use https://makeappicon.com website to make app icons it will automatically generate app icons of all sizes required.
This is my first post on StackOverflow so bear with me.
I created this automator workflow, it generates all icon sizes needed for the App Store currently⟨sept 2022)
https://github.com/saxjax/app-icon-creator.git
1- Open in automator and save.
2- Create a squared image 1024x1024 or larger using preview.
3- right click on the image, select "To Icon"
follow the prompts.
The script consists of blocks of 4 for each icon size:
1-Get value
2-Duplicate
3-Scale
4-Rename
If you need a particular size, just copy paste that quadruple and change the pixel size and the name accordingly.
Feel free to manipulate and share the code however you like.
In the future from Xcode 14 and out you only need to provide one 1024x1024 icon in your assets catalog.

How to Update iOS Apps to Fit Larger Screen Size

I know this question might sound ridiculous, but please finish reading this thread before marking this as a duplicate question.
I've been searching for answers throughout the internet but can't seem to find a satisfying explanation & solution as I'm not very sure how things work & how to make a change.
Click me for example
In the image, the app on the left is 'un-optimized' and stretched while the app on right is 'optimized' and perfectly fit.
So how do I 'optimize' an old app to fit on larger screens, given:
• The app is built using Objective-C
• Some screens only have header(.h) & method(.m) files, meaning there is no XML Interface Builder(.XIB) files to see how the UI looks like without running it on the device.
I've tried using size classes for screens with.XIB files, but regardless of that, the app still appears to be stretched. Also, what about those that only have header & method files? Since there is no interface builder, I couldn't modify the UI in terms of size classes & constraints.
Is there a universal setting or something that I need to change and the whole app will be magically 'optimized'? Or do I have to configure a certain setting for each screen one by one?
Could someone explain to me in simple terms how this can be done?

Its just impossible to add an action extension icon

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.

Dynamic launch screen image?

With the (relatively) new feature of iOS to have launch screens generated from a XIB file, a logical question arises: is it possible to reference any sort of dynamic resource from these XIBs? An example would be an app having customisable home screen, which makes it neccessary for the XIB file to adjust once the user changes smth (i.e. background color)?
Maybe it's possible to reference an image from Documents/ folder or read some dynamic plist file's values?
According to iOS Human interface guideline Launch file/image should be static.
Design a launch image that is identical to the first screen of the app, except for:
Text. The launch image is static, so any text you display in it won’t be localized.
UI elements that might change. If you include elements that might look different when the app
finishes launching, users can experience an unpleasant flash between
the launch image and the first app screen.
For more information see: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html

Is there a way to have a different Default.png (splash image) for different languages/locales in iOS? [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Localization of Default.png is not working
My splash screen has English text in it, so I would like to be able to have a different splash image when users have a different language set.
Is this possible?
Yes, it's possible. Pretty much the same way you localize all your resources.
You just need to provide a Default.png image and then enable all the languages you're interested in. The result is that you'll get a copy of the image for each language into the respective folders. Then edit (or overwrite) each image as you need. I have tested it right now and it works fine (on iOS 5 but I believe is the same for older versions). Here is a screenshot for easy reference:
EDIT:
Regarding any doubts about whether or not this is a good practice, this is straight from Apple's documentation:
In addition to including the launch images at the top level of your
bundle, you can also include localized versions of your launch images
in your app’s language-specific project subdirectories. For more
information on localizing resources in your app, see Table 6-2.
No.
Edit: Indeed, I'm dumbfounded. Like nevan-king I'm going to leave my answer nevertheless, since I still think that's the way it is intended to be done by the iOS guidelines (and my personal opinion about localizing whole images in order to localize its text...).
A splash screen is not intended to provide information. Splash screens are only shown for like a second or so, so it would be unfeasible to show text anyway.
Common practice for what you want to do is to use your image without text as splashscreen, and after that show a custom view with your image and localized text for a few seconds.
That way it will seem like you had a localized splash screen (and the text appears shortly after the image, which is fine).
However, keep in mind that the idea of iOS apps is fast responsiveness, so only show a "startup screen" if you must (for marketing reasons or whatever).
Read this for further information: http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5
There's no way to do this. Instead, make a Default.png with no text.
Edit: I stand corrected. Just tried Alladinian's method and it worked. I'll leave my answer, as it's a useful technique to know.
You can do this pretty easily in Photoshop by selecting a square, then copying it and pasting it over the text. Use Marquee to select a square of your graphic (say an empty part of a navigation bar). Then hit "v" for the move tool. Use cmd-opt and move the square a little to the left, then cmd-opt-shift so that it doesn't move up or down. Move the square over the text and let go of the mouse button. Repeat as necessary.
If you want to see how Apple handles multi-language splash screens, open Maps or Mail. They have a Default screen with no text, then the text appears (in whatever language) when the app has loaded.

Resources