Добавил api для патчинга Info.Plist файла
This commit is contained in:
parent
3642148ed3
commit
8648e8e8f7
|
|
@ -1,5 +1,6 @@
|
|||
import re
|
||||
import os
|
||||
import plist_patch as plist
|
||||
|
||||
def RewriteFile(file_to_rewrite, content):
|
||||
file_to_rewrite.seek(0)
|
||||
|
|
@ -24,14 +25,8 @@ def PatchInfoPlist(build_config):
|
|||
sln_dir = os.path.dirname(build_config['sln_path'])
|
||||
abs_info_plist_path = os.path.join(sln_dir, build_config['info_plist_rel_path'])
|
||||
|
||||
info_plist_file = open(abs_info_plist_path, 'r+')
|
||||
content = info_plist_file.read()
|
||||
|
||||
version_patt = r'\s*<key>CFBundleVersion</key>\s+<string>[\d\.]+</string>'
|
||||
version_node = r'\n\t<key>CFBundleVersion</key>\n\t<string>{0}</string>'.format(build_config['version'])
|
||||
content = re.sub(version_patt, version_node, content)
|
||||
|
||||
RewriteFile(info_plist_file, content)
|
||||
key_values = {'CFBundleVersion' : build_config['version']}
|
||||
plist.AppendOrReplace(key_values, abs_info_plist_path)
|
||||
|
||||
def PathcIos(build_config):
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
import xml.etree.ElementTree as ET
|
||||
|
||||
def AppendKeyValue(key_name, value, dict_element):
|
||||
key_element = ET.Element('key')
|
||||
key_element.text = key_name
|
||||
|
||||
value_element = ET.Element('string')
|
||||
value_element.text = value
|
||||
|
||||
dict_element.append(key_element)
|
||||
dict_element.append(value_element)
|
||||
|
||||
def ReplaceValueByKeyIndex(key_element_index, value, dict_element):
|
||||
value_index = key_element_index + 1
|
||||
value_element = dict_element[value_index]
|
||||
value_element.text = value
|
||||
|
||||
def FindIndexByKey(key_name, dict_element):
|
||||
all_keys_elements = dict_element.findall('key')
|
||||
|
||||
is_exists = False
|
||||
index = 0
|
||||
|
||||
for e in all_keys_elements:
|
||||
if e.text == key_name:
|
||||
is_exists = True
|
||||
break
|
||||
index += 1
|
||||
|
||||
element_index = index * 2
|
||||
return element_index if is_exists else -1
|
||||
|
||||
def AppendOrReplaceValueByKey(key_name, value, dict_element):
|
||||
key_index = FindIndexByKey(key_name, dict_element)
|
||||
element_exists = key_index >= 0
|
||||
|
||||
if element_exists:
|
||||
ReplaceValueByKeyIndex(key_index, value, dict_element)
|
||||
else:
|
||||
AppendKeyValue(key_name, value, dict_element)
|
||||
|
||||
def AppendOrReplace(key_value_dict, abs_plist_path):
|
||||
tree = ET.parse(abs_plist_path)
|
||||
plist_dict = tree.getroot().find('dict')
|
||||
|
||||
for key_name in key_value_dict:
|
||||
AppendOrReplaceValueByKey(key_name, key_value_dict[key_name], plist_dict)
|
||||
|
||||
tree.write(abs_plist_path)
|
||||
Loading…
Reference in New Issue