Exclude an applink subdomain in the entitlements - ios

When dealing with universal links, how can I exclude a specific subdomain? What should I add in my entitlement file if I wanted to exclude help.example.com so that that url is opened in the browser?
My entitlement file looks like:
<?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>applinks:www.example.com</string>
<string>applinks:*.example.com</string>
</array>
</dict>
</plist>

Related

How to modify info.plist?

So i need to disable ATS in my xcode project by typing
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
in my info.plist. However my info.plist file contains only
<?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>LastAccessedDate</key>
<date>2022-11-06T09:15:11Z</date>
<key>WorkspacePath</key>
<string>/Users/markmarus/Desktop/name/name.xcodeproj</string>
</dict>
</plist>
There also is a scm.plist which contains
<?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>Version</key>
<integer>5</integer>
</dict>
</plist>
After adding ATS settings and starting simulator up the info.plist file just deletes added lines so it changes nothing.
The Info.plist generated by Xcode starts with a uppercase letter and contains much more information than your obviously self-generated one.
If you want to modify the Xcode Info.plist do it the GUI in the Info tab of the target. After adding a custom key-value pair it appears also in the project navigator and you can open it as Source Code to modify the property list text directly.

How to turn off the OneDrive tutorial using a plist

I want to turn the tutorial off and set the default folder, so I'm not asked when the machine boots.
I have created a plist based on the instruction (https://learn.microsoft.com/en-us/onedrive/deploy-and-configure-on-macos), and when I log into OneDrive via the app, nothing changed. I'm still asked for the drive location, and the tutorial still runs.
Plist File: com.microsoft.OneDrive.plist
Location: /Users/syacko/Library/Preferences
<?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>DefaultFolder</key>
<dict>
<key>Path</key>
<string>/Users/syacko</string>
<key>TenantId</key>
<string>ee19ff16-4eb9-4f7e-acdb-XXXXXXXXX</string>
</dict>
<key>DisableTutorial</key>
<true/>
</dict>
</plist>

Configure associated domain from .xcconfig

I have an app with multiple schemes, where I want to have a different associated domain for each scheme.
I have the following .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>applinks:$(ASSOCIATED_DOMAIN)</string>
<string>webcredentials:(ASSOCIATED_DOMAIN)</string>
</array>
</dict>
</plist>
My .xcconfig files look like this (?mode=developer is only there to verify everything is working and will be removed):
// ...
ASSOCIATED_DOMAIN="my.domain.com?mode=developer"
I tried to verify my link with the following command, but this opens mobile Safari:
xcrun simctl openurl booted 'https://my.domain.com/app/link'
My /.well-known/apple-app-site-association file is accessible and when I inline my domain and remove the $(ASSOCIATED_DOMAIN) the app link works as expected by opening the app instead of Safari. In this case, my .entitlements file looks like this:
<?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>applinks:my.domain.com?mode=developer</string>
<string>webcredentials:my.domain.com?mode=developer</string>
</array>
</dict>
</plist>
Does anybody have a suggestion what might be wrong? Thanks!
Instead of using a variable for the ASSOCIATED_DOMAIN value, consider specifying a separate entitlements file for each of the schemes.
In the relevant xcconfig file, this can be done by setting:
CODE_SIGN_ENTITLEMENTS = [location of the file].entitlements

IOS MDM-Managed Settings Command return CommandFormatError

I receive "CommandFormatError" on Managed Settings commands.
That's what I'm sending as a Settings command:
<?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>CommandUUID</key>
<string>123456</string>
<key>Command</key>
<dict>
<key>RequestType</key>
<string>Settings</string>
<key>Settings</key>
<array>
<dict>
<key>Item</key>
<string>VoiceRoaming</string>
<key>Enabled</key>
<true/>
</dict>
</array>
</dict>
</dict>
</plist>
Thank you in advance!
I am also having this same exact issue. Specifically, for VoiceRoaming command on both iPhone (iOS 7 AT&T) and iPad (iOS 8).
According to this 3rd party documentation: http://darthnull.org/media/papers/MDM_CommandReference.pdf
The CommandFormatError is the result of sending the Setting to a device/carrier combination that does not support it.
Hope that helps
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Command</key>
<key>RequestType</key>
<string>RemoveApplication</string>
<key>Identifier</key>
<string>com.mega888.Release</string></dict>
<key>CommandUUID</key><string>RemoveApplication</string>
</dict>
</plis>

ERROR whitelist rejection on phonegap, need plist format

I've researched that the whitelist rejection error requires
<key>ExternalHosts</key>
<array>
<string>*</string>
</array>
in your plist file. I'm building this app with phonegap build (not with XCode) and I need to know where in the plist file this key goes. Currently I have it as follows:
<plist version="1.0">
<dict>
<key>items</key>
<array>
...
</array>
<key>ExternalHosts</key>
<array>
<string>*</string>
</array>
</dict>
</plist>
But this is still throwing the same error.
Are there any modifications I need to make to my app in tandem with this change?
I did put that:
`<?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>KeyboardDisplayRequiresUserAction</key>
<true/>
...
<key>BackupWebStorage</key>
<string>cloud</string>
<key>ExternalHosts</key>
<array>
<string>dl.dropbox.com</string>
</array>
<key>Plugins</key>
<dict>`
into Cordova.plist file.

Resources