[macOS/iOS export] Add option to set custom Info.plist data.
This commit is contained in:
@@ -10,6 +10,13 @@
|
||||
<link title="iOS plugins documentation index">$DOCS_URL/tutorials/platform/ios/index.html</link>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="application/additional_plist_content" type="String" setter="" getter="">
|
||||
Additional data added to the root [code]<dict>[/code] section of the [url=https://developer.apple.com/documentation/bundleresources/information_property_list]Info.plist[/url] file. The value should be an XML section with pairs of key-value elements, e.g.:
|
||||
[codeblock]
|
||||
<key>key_name</key>
|
||||
<string>value</string>
|
||||
[/codeblock]
|
||||
</member>
|
||||
<member name="application/app_store_team_id" type="String" setter="" getter="">
|
||||
Apple Team ID, unique 10-character string. To locate your Team ID check "Membership details" section in your Apple developer account dashboard, or "Organizational Unit" of your code signing certificate. See [url=https://developer.apple.com/help/account/manage-your-team/locate-your-team-id]Locate your Team ID[/url].
|
||||
</member>
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "run_icon_svg.gen.h"
|
||||
|
||||
#include "core/io/json.h"
|
||||
#include "core/io/plist.h"
|
||||
#include "core/string/translation.h"
|
||||
#include "editor/editor_node.h"
|
||||
#include "editor/editor_paths.h"
|
||||
@@ -154,6 +155,8 @@ void EditorExportPlatformIOS::get_export_options(List<ExportOption> *r_options)
|
||||
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/min_ios_version"), "12.0"));
|
||||
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/additional_plist_content", PROPERTY_HINT_MULTILINE_TEXT), ""));
|
||||
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "application/icon_interpolation", PROPERTY_HINT_ENUM, "Nearest neighbor,Bilinear,Cubic,Trilinear,Lanczos"), 4));
|
||||
|
||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "application/export_project_only"), false));
|
||||
@@ -1498,6 +1501,8 @@ Error EditorExportPlatformIOS::_export_project_helper(const Ref<EditorExportPres
|
||||
false
|
||||
};
|
||||
|
||||
config_data.plist_content += p_preset->get("application/additional_plist_content").operator String() + "\n";
|
||||
|
||||
Vector<IOSExportAsset> assets;
|
||||
|
||||
Ref<DirAccess> tmp_app_path = DirAccess::create_for_path(dest_dir);
|
||||
@@ -1867,6 +1872,26 @@ bool EditorExportPlatformIOS::has_valid_export_configuration(const Ref<EditorExp
|
||||
valid = dvalid || rvalid;
|
||||
r_missing_templates = !valid;
|
||||
|
||||
const String &additional_plist_content = p_preset->get("application/additional_plist_content");
|
||||
if (!additional_plist_content.is_empty()) {
|
||||
const String &plist = vformat("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
"<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">"
|
||||
"<plist version=\"1.0\">"
|
||||
"<dict>\n"
|
||||
"%s\n"
|
||||
"</dict>\n"
|
||||
"</plist>\n",
|
||||
additional_plist_content);
|
||||
|
||||
String plist_err;
|
||||
Ref<PList> plist_parser;
|
||||
plist_parser.instantiate();
|
||||
if (!plist_parser->load_string(plist, plist_err)) {
|
||||
err += TTR("Invalid additional PList content: ") + plist_err + "\n";
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!err.is_empty()) {
|
||||
r_error = err;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user