iOS share extension display name - ios

My app supports 2 different share extensions, and I distinguish between them using the CFBundleDisplayName in the Info.plist file for both extensions. This worked fine in iOS12, but in iOS13, it seems that it only shows the app's display name instead, which makes it confusing to have two share actions in the share sheet with the same name.
Is this new functionality in iOS13 that I'm unaware of? Is there a work-around to continue supporting 2 share extensions from the same app? I haven't found any documentation on this change in behavior.

We're having the same issue. I only found a thread at Apple Developer ... but that's not an answer, how to provide multiple extensions with different display names in iOS 13.

Related

need to apply dynamic app icon from web in iOS [duplicate]

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

Long list of domains in iOS Entitlement file in iOS 9.0-9.2

We have a need to support 100+ domains in our entitlements file for Universal Links.
Example:
applinks:test.myapp.com
applinks:blah.myapp.com
applinks:foo.bar.com
etc...
I know that *.myapp.com will be supported in iOS 9.3, but is there a way to do this elegantly for customers using iOS 9.0 to 9.2 without having to manually add 100+ entries to the entitlements file? Is there a way to do this without having to rebuild and re-release our app every time we need to add a domain to the list?
Thanks!
The new wildcard support in iOS 9.3 is designed for exactly the situation you're describing, so there isn't really a solid alternative in earlier OS versions.
If you don't want to worry about continually updating the list of subdomain applinks entries (or even if you do, but need to wait for App Store review), the best workaround is probably hosting fallback pages on each subdomain with a call-to-action the user can use to continue into the app. That would work as follows:
Assume that you have applinks:mydomain.com configured.
User opens a link to new.mydomain.com/exciting-page (which is NOT covered by the entitlement above).
User sees a custom interstitial, functionally similar to something like this. On this interstitial is a link pointing to mydomain.com/new/exciting-page
User opens the link and the app launches.
The only thing I am not sure about is whether mydomain.com and new.mydomain.com count as 'different domains' for the purpose of Universal Links, since Universal Linking functionality is disabled in Safari for links within the same domain (source). If this turns out not to work, you could easily use something like applinks:mydomain.io and a link to mydomain.io/new/exciting-page in step 3 instead.

Any iOS 8 app extensions/extension types that work with iPhone's Message app?

While reading on app extensions introduced with iOS 8, I noticed that there are extension types that can work with an iPhone user's images, notes etc. But I was wondering if I can make an action or a share extension that would work with iPhone's Message app as the host app. Is there any resources about it?
Edit: I understand that you need to specify a particular data type for app extensions to work on certain data type. Are text conversations a certain data type/object?
I guess this is a misunderstanding of what Share Extensions are.
You embed a Share Extension into your app to offer services of your app to others. Any app that embeds a Share Sheet and provides data of a type your extension offers to handle can (and will) use your extension.

Can I show an App Extension with an UIDocumentationInteractionController?

I' using an UIDocumentationInteractionController to show all compatible apps which can open the files stored in my app. It has always worked well, however I have noticed that with iOS 8 it shows only the apps and not the App Extensions. In the official documentation I can't find anything about that. Is it a bug or a deliberate thing? Do we need to use the UIActivityViewController instead?
As far as IOS 8.1 UIActivityViewController is the only extension point for the share & action extensions. so yes, if you wish to allow share extensions you must switch to UIActivityViewController.
You can read about it in this blog post:
http://getnotebox.com/developer/uiactivityviewcontroller-ios-8/
Here is a pretty good guide on using UIActivityViewController:
http://nshipster.com/uiactivityviewcontroller/

Confusion on universal app/iPad target

There are many similar questions, but I haven't really found the answer for this.
I'm making an iPad version of a large iPhone app. Which is the best way to go when distributing? I understand that when turning the app into a "Universal" app, all resources (images etc) for the iPad version are also downloaded to iPhones.
This is probably not desired, so to me it sounds better to use the built-in XCode function to duplicate the target into an iPad target. (This is nice since it will generate iPad-specific versions of all the NIB-files)
However, I'm afraid that this will split the app into two versions on the app store. I want to make it look like a universal app on app store, with the little "+"-sign. Is it possible to make it look like a universal app, when it's actually two different targets?
In a Universal app there is only one binary.
If you create to targets you can compile for either iPhone or iPad, but then you'll have two different apps.
So, no it is not possible to make two apps look and behave like an universal app.
I don't think that the images etc being present in both versions are such a serious problem.
They get compressed and can mostly be used for both versions.
I would prefer having a universal app that syncs via iCloud on all my devices than having to download two versions of the app... Apple does it too, e.g. in iBooks.

Resources