I have searched online on how to change your app icon dynamically and all says you would need put the images under project directory. Is there any ways I can get an image from URL from my plist and show it as my app icon?
According to the documentation, you must declare your alternate icons in your app's Info.plist, which is shipped in your app bundle. Since your app bundle is read-only, you can't add/edit entries in your Info.plist, which means it's impossible to download a new app icon from a server and set it as your app's icon
Related
Since iOS 10.3 has been released, Apple added a new feature which allows us to change the app icon dynamically, by using setAlternateIconName(_:completionHandler:) method. So far, as mentioned in the method documentation, we have to mention the name(s) of the alternate app icon(s) in the project .plist file, assigned to CFBundlePrimaryIcon key.
Actually, when working with static icons (icons that have been added directly to the app main bundle) it works as expected without any problems:
My question is:
Is it possible -or is there a workaround- to set the alternate app icon dynamically (for instance: icons that have been downloaded from the web and saved in the app documents directory)?
I don't think its possible.
setAlternateIconName(_:completionHandler:) API looks for the icons inside app bundle and cannot be changed to fetch from sandbox.
Also, most probably Apple reviews the app icons you have bundled for avoiding use of same app icons or icons similar to Apple apps.
Refer: https://www.hackingwithswift.com/example-code/uikit/how-to-change-your-app-icon-dynamically-with-setalternateiconname
I have proprietary custom fonts in my iOS app and I'm wondering whether other apps can use my font after the app has been installed on a device.
Thanks!
No. As the other apps can't access your app's bundle resources, they can't use your custom font.
Since It's not possible to access other app bundle details, there is no document available since now.
But you can learn more about NSBundle here and about Accessing a Bundle's Content here.
Yes, one can get your assets like , Appicons, Launch Image, Fonts any mp3/mp4 file that all added as Assets.
Now, How can we get this...
for Example,
Download an App through Mac Itunes --> Right Click & Open in Folder --> Copy IPA to Dektop --> Now Change .IPA extension to .ZIP & Extract the converted ZIP file --> OPen FOlder --> Right Click on App & Click on Show Package Contents --> It will shwo you the Assets Used in Apps
Since iOS 13, apps can make use of a new Fonts entitlement, namely Install fonts. Apps that use the related API are called 'font provider apps'. Examples of such apps are CreativeCloud from Adobe and MyFonts from MonoType.
More info here: https://developer.apple.com/videos/play/wwdc2019/227/
Since iOS 10.3 has been released, Apple added a new feature which allows us to change the app icon dynamically, by using setAlternateIconName(_:completionHandler:) method. So far, as mentioned in the method documentation, we have to mention the name(s) of the alternate app icon(s) in the project .plist file, assigned to CFBundlePrimaryIcon key.
Actually, when working with static icons (icons that have been added directly to the app main bundle) it works as expected without any problems:
My question is:
Is it possible -or is there a workaround- to set the alternate app icon dynamically (for instance: icons that have been downloaded from the web and saved in the app documents directory)?
I don't think its possible.
setAlternateIconName(_:completionHandler:) API looks for the icons inside app bundle and cannot be changed to fetch from sandbox.
Also, most probably Apple reviews the app icons you have bundled for avoiding use of same app icons or icons similar to Apple apps.
Refer: https://www.hackingwithswift.com/example-code/uikit/how-to-change-your-app-icon-dynamically-with-setalternateiconname
I am trying to add a plist file to the Settings.bundle in my iOS project programmatically. How would I go about doing this?
I used Apple's API to find where to put a created plist file to see if the Settings.bundle would check there for a plist file but it doesn't recognize it and the child pane goes to a blank screen instead of showing the settings.
The reason for this is based on the user logging in to my app I want to have different settings show in the Settings App
You don't. Settings.bundle is supposed to be created at compile time, and is fixed (as well as signed as part of the application build process.)
See the Settings.bundle documentation which explicitly states (emphasis added):
A Settings bundle has the name Settings.bundle and resides in the top-level directory of your app’s bundle.
The emphasized part is what tells me you can't put the bundle anywhere else. This answer confirms what I just said.
Conditionally displayed settings are also not possible.
I don't think you can. The OS handles that independently, and you aren't allowed to run any code to affect it.
Instead, you are going to want to offer a settings screen within your app that allows full control over the presentation and function.
I have a strange problem with my application name: my project is called "something - somenumber" (with the dash).
For the submission, the App name I've chosen is without tje dash, infact, in the iTunes Store I can see the name without it.
But when I download my approved App, the name is with the dash..
Have you ever heard something similar???
Is this a problem with the new SDK and IOS version?
Now the name has to coincide with project name???
Thanks
By default, the Bundle display name in the Info.plist of iOS apps is ${PRODUCT_NAME}. ${PRODUCT_NAME}, by default, is the same as the project name, which in your case has a dash. The Bundle display name is the text that gets displayed under your app's icon in the device's home screen. This could be the reason why you can see the dash when you download the app.
You should change the CFBundleDisplayName in the apps Info plist file. This value is what the iOS spring board uses underneath each app. This can also be localised.
.bundle identifier is for the provisioning profile.