Is it possible to build App Clip without having a full app? - ios14

Is it possible to register only AppClip in app connect instead of full app?
Is there a way by which we can hide bottom app banner from App Clip and just use clips?

No - the app clip must be accompanied by your full app. When you create an app clip target in Xcode, it must include a parent application identifier in its entitlements file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>appclips:example.com</string>
</array>
<key>com.apple.developer.parent-application-identifiers</key>
<array>
<string>$(AppIdentifierPrefix)com.myparent.app</string>
</array>
</dict>
</plist>
The image you have posted is of a layout that is used for all app clips, where you supply the image, subtitle, and text for the call to action button. The presentation of the card is handled by the system and cannot be modified to hide any elements.

Related

Change the title string of a setting defined via iOS settings bundle at run time?

I'm working on an iPad application that allows users to log in using Touch ID. Also I've included a preference called "Touch ID" in application settings bundle where users can switch on/off that option to enable or disable Touch ID authentication.
The following plist file is what I used to set up the settings bundle.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Touch ID</string>
<key>Key</key>
<string>settingsTouchID</string>
<key>DefaultValue</key>
<false/>
</dict>
</array>
</dict>
</plist>
The following image is the screenshot of the application settings screen.
However, certain iPads feature "Face ID" instead of "Touch ID," and I'd like to provide the option name (title field in the Plist file) for setting bundle to "Face ID" instead of "Touch ID" for those devices.
Could someone kindly inform me if dynamic titles for the application settings options are possible? 
Note: I have got some alternative solutions like, creating a settings screen within my app itself, renaming the setting name to a generic one, etc.
there is no way to edit plist files at run time

Modifying entitlement files created by IBM MobileFirst 7.1 for a hybrid iOS App

I have a project using IBM MobileFirst 7.1 with a Hybrid application deployed for iOS.
In this same Hybrid application, we are using some other native iOS SDKs that uses Keychain. We had encountered an issue with the other SDK, that was resolved by modifying the entitlement plist files.
We want to know if it is safe or not to modify Entitlements-Debug.plist and Entitlements-Release.plist files, and if modifying these files can have any impact on the IBM MobileFirst application.
The modification we were asked to do is to add The bundle seed ID on keychain-access-groups (something like 5F537T7102.*)
The old file was having the following content:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)worklight.group</string>
</array>
</dict>
</plist>
The new file is having the following content:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
<key>keychain-access-groups</key>
<array>
<string>5F537T7102.*</string>
</array>
</dict>
</plist>
Is this modification safe and will not have any drawbacks on the application?
By default, MobileFirst applications are part of the worklight.group access group that is defined in the entitlement property file in order to support feature called Simple Data Sharing.
If you are using Simple Data Sharing feature, then your modification may affect the feature else you are good to go.
More information about the Simple Data Sharing feature for iOS Native Applications can be found here.

Set read only a .plist file item

I have a plist file used to store informations as parameters of my application.
It can be configurable by Settings on device and I can set items value programmatically.
Everything working well, but I would like to set items Enable\Disable based on condition.
For example, for some reason I would like to put my item used to store a text information disabled, so the user on device can't edit this parameter on Settings device. Is it possible?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DefaultValue</key>
<string></string>
<key>Key</key>
<string>USERNAME</string>
<key>KeyboardType</key>
<string>Alphabet</string>
<key>Title</key>
<string>User</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
</dict>
</plist>
If you want that kind of flexibility, provide a settings interface within your app rather than relying on the Settings app.

Open video with (my app) on iOS

I'm creating an iOS app that essentially uploads video files to a cloud server, among other things. To make it more useable, I'd like to implement an Open with/Share with my app button. When you open the camera roll on iOS devices, select a video and click the Share button, a list of compatible apps shows up. I'd like to place my app in this list.
I did some research on the Internet, and found I had to add the file type to my plist file, so I added:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>LSItemContentTypes</key>
<array>
<string>public.video</string>
<string>public.movie</string>
<string>public.mpeg-4</string>
<string>com.apple.m4v-video</string>
<string>com.apple.quicktime-movie</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeName</key>
<string>Moment</string>
<key>LSHandlerRank</key>
<string>Owner</string>
</dict>
</array>
</plist>
My app isn't showing up, however. Am I doing something wrong here?
LSItemContentTypes is for the document controller. Since you're wanting to do this from the camera roll, you may be looking to create a Share Extension.

iOS setting bundle not editable

Is there a way to create an option in Bundle settings of iOS 7+ in such a way that it's only readable for a user. The user shouldn't be able to edit this within the option menu.
During the first use of the application I will set the above property and unique value.
Writing down the unique id in a database is not a option. The user should see this value in the settings menu of the app, provided by iOS.
Using the IMEI is not a option since the value is undergoing some kind of validation mechanism in the app itself.
You can use a PSTitleValueSpecifier for this. It will display a value that is readonly. Below is an example Root.plist file that shows a user Account Number in the App Settings. When the application start up, you can programmatically update the value and it will show up as read-only on the App Settings page.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSTitleValueSpecifier </string>
<key>Title</key>
<string>Account Number</string>
<key>Key</key>
<string>account_number_preference</string>
<key>DefaultValue</key>
<string>012-345-6789</string>
</dict>
</array>
</dict>
</plist>

Resources