in eng/scripts/version.py [0:0]
def _get_xcodeproj_versions():
versions = {}
pattern = os.path.join(ROOT, 'sdk', '*', '*', '*.xcodeproj', 'project.pbxproj')
proj_files = glob.glob(pattern)
for path in proj_files:
module_name = re.search(r'/([a-zA-Z]+)\.xcodeproj', path).groups()[0]
with open(path, mode='r') as f:
lines = [l for l in f.readlines() if 'MARKETING_VERSION' in l]
for line in lines:
# version may or may not be in double quotes in the file
version_match = re.search(r'"([^"]+)"', line) or re.search(r'MARKETING_VERSION = ([^;]+);', line)
version = version_match.groups()[0]
if module_name in versions and versions[module_name] != version:
# throws error if multiple different versions are found
message = f'Found multiple versions for {module_name}: {version} and {versions[module_name]}'
_log_error_and_quit(message)
else:
versions[module_name] = version
return versions