Created
August 5, 2020 13:22
-
-
Save DrMoriarty/08bf11c6d5928463dd686e7788541e88 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tool | |
extends EditorPlugin | |
class MyExportPlugin: | |
extends EditorExportPlugin | |
func _add_bundles(): | |
var dir = Directory.new() | |
if dir.open('res://addons/iOS') == OK: | |
dir.list_dir_begin() | |
var file_name = dir.get_next() | |
while file_name != '': | |
if dir.current_is_dir() and file_name.ends_with('.bundle'): | |
var bundle = dir.get_current_dir() + "/" + file_name | |
print('Add iOS bundle: %s'%bundle) | |
add_ios_bundle_file(bundle) | |
file_name = dir.get_next() | |
else: | |
print('Can not open iOS addon directory!') | |
func _add_installed_frameworks(): | |
var dir = Directory.new() | |
if dir.open('res://addons/iOS') == OK: | |
dir.list_dir_begin() | |
var file_name = dir.get_next() | |
while file_name != '': | |
if dir.current_is_dir() and (file_name.ends_with('.framework') or file_name.ends_with('.xcframework')): | |
var framework = dir.get_current_dir() + "/" + file_name | |
print('Add iOS framework: %s'%framework) | |
add_ios_framework(framework) | |
file_name = dir.get_next() | |
else: | |
print('Can not open iOS addon directory!') | |
func _add_standard_frameworks(): | |
var f = File.new() | |
f.open('res://addons/iOS/std_frameworks.txt', File.READ) | |
while not f.eof_reached(): | |
var fr = f.get_line() | |
if fr.begins_with('#') or fr == '': | |
# skip comments | |
continue | |
add_ios_framework(fr) | |
print('Add standard framework: %s'%fr) | |
func _add_plist_content(): | |
var dir = Directory.new() | |
if dir.open('res://addons/iOS') == OK: | |
dir.list_dir_begin() | |
var file_name = dir.get_next() | |
while file_name != '': | |
if not dir.current_is_dir() and file_name.ends_with('.plist'): | |
if file_name == 'GoogleService-Info.plist': | |
var bundle = dir.get_current_dir() + "/" + file_name | |
add_ios_bundle_file(bundle) | |
print('Add plist bundle: %s'%bundle) | |
else: | |
var plist = dir.get_current_dir() + "/" + file_name | |
print('Add plist content: %s'%plist) | |
var f = File.new() | |
f.open(plist, File.READ) | |
var content = f.get_as_text() | |
f.close() | |
add_ios_plist_content(content) | |
file_name = dir.get_next() | |
else: | |
print('Can not open iOS addon directory!') | |
func _export_begin(features, debug, path, flags): | |
if 'iOS' in features: | |
add_ios_linker_flags("-ObjC") | |
_add_installed_frameworks() | |
_add_bundles() | |
_add_standard_frameworks() | |
_add_plist_content() | |
else: | |
print('Skip: platform not iOS') | |
func _init(): | |
add_export_plugin(MyExportPlugin.new()) | |
func _enter_tree(): | |
pass | |
func _exit_tree(): | |
pass |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment