mirror of
https://github.com/godotengine/godot.git
synced 2024-12-04 01:52:56 +00:00
[iOS] Add options to specify additional entitlements and capabilities in the export settings.
This commit is contained in:
parent
d741a646a5
commit
d3e16c9ee2
@ -2,6 +2,6 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
$entitlements_push_notifications
|
||||
$entitlements_full
|
||||
</dict>
|
||||
</plist>
|
||||
|
@ -84,6 +84,9 @@
|
||||
<member name="capabilities/access_wifi" type="bool" setter="" getter="">
|
||||
If [code]true[/code], networking features related to Wi-Fi access are enabled. See [url=https://developer.apple.com/support/required-device-capabilities/]Required Device Capabilities[/url].
|
||||
</member>
|
||||
<member name="capabilities/additional" type="PackedStringArray" setter="" getter="">
|
||||
Additional data added to the [code]UIRequiredDeviceCapabilities[/code] array of the [code]Info.plist[/code] file.
|
||||
</member>
|
||||
<member name="capabilities/performance_a12" type="bool" setter="" getter="">
|
||||
Requires the graphics performance and features of the A12 Bionic and later chips (devices supporting all Vulkan renderer features).
|
||||
Enabling this option limits supported devices to: iPhone XS, iPhone XR, iPad Mini (5th gen.), iPad Air (3rd gen.), iPad (8th gen) and newer.
|
||||
@ -92,15 +95,28 @@
|
||||
Requires the graphics performance and features of the A17 Pro and later chips.
|
||||
Enabling this option limits supported devices to: iPhone 15 Pro and newer.
|
||||
</member>
|
||||
<member name="capabilities/push_notifications" type="bool" setter="" getter="">
|
||||
If [code]true[/code], push notifications are enabled. See [url=https://developer.apple.com/support/required-device-capabilities/]Required Device Capabilities[/url].
|
||||
</member>
|
||||
<member name="custom_template/debug" type="String" setter="" getter="">
|
||||
Path to the custom export template. If left empty, default template is used.
|
||||
</member>
|
||||
<member name="custom_template/release" type="String" setter="" getter="">
|
||||
Path to the custom export template. If left empty, default template is used.
|
||||
</member>
|
||||
<member name="entitlements/additional" type="String" setter="" getter="">
|
||||
Additional data added to the root [code]<dict>[/code] section of the [url=https://developer.apple.com/documentation/bundleresources/entitlements].entitlements[/url] file. The value should be an XML section with pairs of key-value elements, for example:
|
||||
[codeblock lang=text]
|
||||
<key>key_name</key>
|
||||
<string>value</string>
|
||||
[/codeblock]
|
||||
</member>
|
||||
<member name="entitlements/game_center" type="bool" setter="" getter="">
|
||||
Enable to allow access to Game Center features. [url=https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_game-center]com.apple.developer.game-center[/url].
|
||||
</member>
|
||||
<member name="entitlements/increased_memory_limit" type="bool" setter="" getter="">
|
||||
Enable if app may perform better with a higher memory limit. [url=https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_kernel_increased-memory-limit]com.apple.developer.kernel.increased-memory-limit[/url].
|
||||
</member>
|
||||
<member name="entitlements/push_notifications" type="String" setter="" getter="">
|
||||
Environment for Apple Push Notification service. See [url=https://developer.apple.com/documentation/bundleresources/entitlements/aps-environment]aps-environment[/url].
|
||||
</member>
|
||||
<member name="icons/app_store_1024x1024" type="String" setter="" getter="">
|
||||
App Store application icon file. If left empty, it will fallback to [member ProjectSettings.application/config/icon]. See [url=https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons]App icons[/url].
|
||||
</member>
|
||||
|
@ -328,10 +328,15 @@ void EditorExportPlatformIOS::get_export_options(List<ExportOption> *r_options)
|
||||
plugins_changed.clear();
|
||||
plugins = found_plugins;
|
||||
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "entitlements/increased_memory_limit"), false));
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "entitlements/game_center"), false));
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "entitlements/push_notifications", PROPERTY_HINT_ENUM, "Disabled,Production,Development"), "Disabled"));
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "entitlements/additional", PROPERTY_HINT_MULTILINE_TEXT), ""));
|
||||
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "capabilities/access_wifi"), false));
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "capabilities/push_notifications"), false));
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "capabilities/performance_gaming_tier"), false));
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "capabilities/performance_a12"), false));
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "capabilities/additional"), PackedStringArray()));
|
||||
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "user_data/accessible_from_files_app"), false));
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "user_data/accessible_from_itunes_sharing"), false));
|
||||
@ -518,9 +523,20 @@ void EditorExportPlatformIOS::_fix_config_file(const Ref<EditorExportPreset> &p_
|
||||
strnew += lines[i].replace("$docs_in_place", ((bool)p_preset->get("user_data/accessible_from_files_app")) ? "<true/>" : "<false/>") + "\n";
|
||||
} else if (lines[i].contains("$docs_sharing")) {
|
||||
strnew += lines[i].replace("$docs_sharing", ((bool)p_preset->get("user_data/accessible_from_itunes_sharing")) ? "<true/>" : "<false/>") + "\n";
|
||||
} else if (lines[i].contains("$entitlements_push_notifications")) {
|
||||
bool is_on = p_preset->get("capabilities/push_notifications");
|
||||
strnew += lines[i].replace("$entitlements_push_notifications", is_on ? "<key>aps-environment</key><string>development</string>" : "") + "\n";
|
||||
} else if (lines[i].contains("$entitlements_full")) {
|
||||
String entitlements;
|
||||
if ((String)p_preset->get("entitlements/push_notifications") != "Disabled") {
|
||||
entitlements += "<key>aps-environment</key>\n<string>" + p_preset->get("entitlements/push_notifications").operator String().to_lower() + "</string>" + "\n";
|
||||
}
|
||||
if ((bool)p_preset->get("entitlements/game_center")) {
|
||||
entitlements += "<key>com.apple.developer.game-center</key>\n<true/>\n";
|
||||
}
|
||||
if ((bool)p_preset->get("entitlements/increased_memory_limit")) {
|
||||
entitlements += "<key>com.apple.developer.kernel.increased-memory-limit</key>\n<true/>\n";
|
||||
}
|
||||
entitlements += p_preset->get("entitlements/additional").operator String() + "\n";
|
||||
|
||||
strnew += lines[i].replace("$entitlements_full", entitlements);
|
||||
} else if (lines[i].contains("$required_device_capabilities")) {
|
||||
String capabilities;
|
||||
|
||||
@ -541,6 +557,9 @@ void EditorExportPlatformIOS::_fix_config_file(const Ref<EditorExportPreset> &p_
|
||||
for (int idx = 0; idx < capabilities_list.size(); idx++) {
|
||||
capabilities += "<string>" + capabilities_list[idx] + "</string>\n";
|
||||
}
|
||||
for (const String &cap : p_preset->get("capabilities/additional").operator PackedStringArray()) {
|
||||
capabilities += "<string>" + cap + "</string>\n";
|
||||
}
|
||||
|
||||
strnew += lines[i].replace("$required_device_capabilities", capabilities);
|
||||
} else if (lines[i].contains("$interface_orientations")) {
|
||||
|
@ -76,11 +76,11 @@
|
||||
Array of the additional command line arguments passed to the code signing tool.
|
||||
</member>
|
||||
<member name="codesign/entitlements/additional" type="String" setter="" getter="">
|
||||
Additional data added to the root [code]<dict>[/code] section of the [url=https://developer.apple.com/documentation/bundleresources/entitlements].entitlements[/url] file. The value should be an XML section with pairs of key-value elements, e.g.:
|
||||
[codeblock lang=text]
|
||||
<key>key_name</key>
|
||||
<string>value</string>
|
||||
[/codeblock]
|
||||
Additional data added to the root [code]<dict>[/code] section of the [url=https://developer.apple.com/documentation/bundleresources/entitlements].entitlements[/url] file. The value should be an XML section with pairs of key-value elements, for example:
|
||||
[codeblock lang=text]
|
||||
<key>key_name</key>
|
||||
<string>value</string>
|
||||
[/codeblock]
|
||||
</member>
|
||||
<member name="codesign/entitlements/address_book" type="bool" setter="" getter="">
|
||||
Enable to allow access to contacts in the user's address book, if it's enabled you should also provide usage message in the [member privacy/address_book_usage_description] option. See [url=https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_personal-information_addressbook]com.apple.security.personal-information.addressbook[/url].
|
||||
|
Loading…
Reference in New Issue
Block a user