def testAddCodeSignAllTargetAllConfigurations(self):
        project = XcodeProject(self.obj)

        project.add_code_sign('iPhone Distribution', 'MYTEAM', '0x0x0x0x0', 'Provisioning name')

        self.assertEqual(project.objects['0'].attributes.TargetAttributes[u'1'].ProvisioningStyle, PBXProvioningTypes.MANUAL)
        self.assertEqual(project.objects['0'].attributes.TargetAttributes[u'2'].ProvisioningStyle,
                         PBXProvioningTypes.MANUAL)

        self.assertEqual(project.objects['5'].buildSettings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'], 'iPhone Distribution')
        self.assertEqual(project.objects['6'].buildSettings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'], 'iPhone Distribution')
        self.assertEqual(project.objects['7'].buildSettings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'], 'iPhone Distribution')
        self.assertEqual(project.objects['8'].buildSettings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'], 'iPhone Distribution')

        self.assertEqual(project.objects['5'].buildSettings['DEVELOPMENT_TEAM'], 'MYTEAM')
        self.assertEqual(project.objects['6'].buildSettings['DEVELOPMENT_TEAM'], 'MYTEAM')
        self.assertEqual(project.objects['7'].buildSettings['DEVELOPMENT_TEAM'], 'MYTEAM')
        self.assertEqual(project.objects['8'].buildSettings['DEVELOPMENT_TEAM'], 'MYTEAM')

        self.assertEqual(project.objects['5'].buildSettings['PROVISIONING_PROFILE'], '0x0x0x0x0')
        self.assertEqual(project.objects['6'].buildSettings['PROVISIONING_PROFILE'], '0x0x0x0x0')
        self.assertEqual(project.objects['7'].buildSettings['PROVISIONING_PROFILE'], '0x0x0x0x0')
        self.assertEqual(project.objects['8'].buildSettings['PROVISIONING_PROFILE'], '0x0x0x0x0')

        self.assertEqual(project.objects['5'].buildSettings['PROVISIONING_PROFILE_SPECIFIER'], 'Provisioning name')
        self.assertEqual(project.objects['6'].buildSettings['PROVISIONING_PROFILE_SPECIFIER'], 'Provisioning name')
        self.assertEqual(project.objects['7'].buildSettings['PROVISIONING_PROFILE_SPECIFIER'], 'Provisioning name')
        self.assertEqual(project.objects['8'].buildSettings['PROVISIONING_PROFILE_SPECIFIER'], 'Provisioning name')
    def testEmbedFrameworkInRightCopySection(self):
        project = XcodeProject(self.obj)
        self.assertEqual(project.objects.get_objects_in_section(u'PBXCopyFilesBuildPhase').__len__(), 1)

        project.add_file('X.framework', file_options=FileOptions(embed_framework=True))

        self.assertEqual(project.objects.get_objects_in_section(u'PBXCopyFilesBuildPhase').__len__(), 3)
Beispiel #3
0
    def testAddFileUnknownAllowed(self):
        project = XcodeProject(self.obj)
        build_file = project.add_file("file.unknowntype", file_options=FileOptions(ignore_unknown_type=True))

        # unknown files are added as resources
        self.assertEqual(project.objects.get_objects_in_section(u'PBXResourcesBuildPhase').__len__(), 2)
        self.assertEqual(build_file.__len__(), 2)
Beispiel #4
0
    def testAddFolderAsReference(self):
        project = XcodeProject(self.obj,path="tests/project.pbxproj")
        build_file = project.add_folder('samples', create_groups=False)

        self.assertListEqual(project.get_groups_by_name('samples'), [])
        self.assertEqual(project.objects.get_objects_in_section(u'PBXResourcesBuildPhase').__len__(), 2)
        self.assertEqual(build_file.__len__(), 2)
Beispiel #5
0
    def testAddFileSource(self):
        project = XcodeProject(self.obj)
        build_file = project.add_file("file.m")

        # 2 source files are created 1 x target
        self.assertEqual(project.objects.get_objects_in_section(u'PBXSourcesBuildPhase').__len__(), 2)
        self.assertEqual(build_file.__len__(), 2)
Beispiel #6
0
    def testGetGroupsByPathFromParent(self):
        project = XcodeProject(self.obj)
        groups = project.get_groups_by_path('..', parent=project.objects['1p'])

        self.assertIn(project.objects['2p'], groups)
        self.assertIn(project.objects['3p'], groups)
        self.assertNotIn(project.objects['5p'], groups)
        self.assertNotIn(project.objects['6p'], groups)
Beispiel #7
0
    def testAddFileWithAbsolutePathOnUnknownTree(self):
        project = XcodeProject(self.obj)
        build_file = project.add_file(os.path.abspath("samples/test.framework"), tree='DEVELOPER_DIR')

        self.assertEqual(project.objects[build_file[0].fileRef].sourceTree, '<absolute>')
        self.assertEqual(project.objects[build_file[1].fileRef].sourceTree, '<absolute>')
        self.assertEqual(project.objects[build_file[2].fileRef].sourceTree, '<absolute>')
        self.assertEqual(project.objects[build_file[3].fileRef].sourceTree, '<absolute>')
    def testAddLibrarySearchPaths(self):
        project = XcodeProject(self.obj)
        project.add_library_search_paths('path/to/search')

        self.assertEqual(project.objects['5'].buildSettings.LIBRARY_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['6'].buildSettings.LIBRARY_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['7'].buildSettings.LIBRARY_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['8'].buildSettings.LIBRARY_SEARCH_PATHS, 'path/to/search/**')
    def testAddHeaderSearchPaths(self):
        project = XcodeProject(self.obj)
        project.add_header_search_paths('path/to/search')

        self.assertEqual(project.objects['5'].buildSettings.HEADER_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['6'].buildSettings.HEADER_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['7'].buildSettings.HEADER_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['8'].buildSettings.HEADER_SEARCH_PATHS, 'path/to/search/**')
Beispiel #10
0
    def testGetFilesByNameWithParent(self):
        project = XcodeProject(self.obj)

        files = project.get_files_by_name('file', 'group2')
        self.assertEqual(files.__len__(), 2)

        files = project.get_files_by_name('file', 'group3')
        self.assertEqual(files.__len__(), 1)
Beispiel #11
0
    def testAddOtherLDFlags(self):
        project = XcodeProject(self.obj)
        project.add_other_ldflags('-ObjC')

        self.assertEqual(project.objects['5'].buildSettings.OTHER_LDFLAGS, '-ObjC')
        self.assertEqual(project.objects['6'].buildSettings.OTHER_LDFLAGS, '-ObjC')
        self.assertEqual(project.objects['7'].buildSettings.OTHER_LDFLAGS, '-ObjC')
        self.assertEqual(project.objects['8'].buildSettings.OTHER_LDFLAGS, '-ObjC')
Beispiel #12
0
    def testAddFileNoCreateBuildFiles(self):
        project = XcodeProject(self.obj)
        items = project.objects.__len__()
        build_file = project.add_file(".", file_options=FileOptions(create_build_files=False))

        # no create build file flag
        self.assertEqual(project.objects.__len__(), items)
        self.assertEqual(build_file, [])
Beispiel #13
0
    def testAddFrameworkSearchPaths(self):
        project = XcodeProject(self.obj)
        project.add_framework_search_paths('path/to/search')

        self.assertEqual(project.objects['5'].buildSettings.FRAMEWORK_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['6'].buildSettings.FRAMEWORK_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['7'].buildSettings.FRAMEWORK_SEARCH_PATHS, 'path/to/search/**')
        self.assertEqual(project.objects['8'].buildSettings.FRAMEWORK_SEARCH_PATHS, 'path/to/search/**')
Beispiel #14
0
    def testGetGroupsByNameFromParent(self):
        project = XcodeProject(self.obj)
        groups = project.get_groups_by_name('app', parent=project.objects['1'])

        self.assertIn(project.objects['2'], groups)
        self.assertIn(project.objects['3'], groups)
        self.assertNotIn(project.objects['5'], groups)
        self.assertNotIn(project.objects['6'], groups)
Beispiel #15
0
    def testAddFlags(self):
        project = XcodeProject(self.obj)
        project.add_flags('flag', '-flag')

        self.assertEqual(project.objects['5'].buildSettings.flag, '-flag')
        self.assertEqual(project.objects['6'].buildSettings.flag, '-flag')
        self.assertEqual(project.objects['7'].buildSettings.flag, '-flag')
        self.assertEqual(project.objects['8'].buildSettings.flag, '-flag')
    def testAddProjectNotForced(self):
        project = XcodeProject(self.obj)

        _ = project.add_project('samplescli/dependency.xcodeproj', file_options=FileOptions(create_build_files=False))
        reference_proxies = project.add_project('samplescli/dependency.xcodeproj', force=False,
                                                file_options=FileOptions(create_build_files=False))

        self.assertListEqual(reference_proxies, [])
    def testRemoveByIdRecursivelyWithFiles(self):
        project = XcodeProject(self.obj)
        result = project.remove_group_by_id('a')

        self.assertTrue(result)
        self.assertIsNone(project.objects['a'])
        self.assertIsNone(project.objects['b'])
        self.assertIsNone(project.objects['c'])
Beispiel #18
0
    def testAddFileFrameworkWithAbsolutePath(self):
        project = XcodeProject(self.obj)
        build_file = project.add_file(os.path.abspath("samples/test.framework"))

        expected_flags = ["$(SRCROOT)/tests/samples", "$(inherited)"]
        self.assertListEqual(project.objects['5'].buildSettings.FRAMEWORK_SEARCH_PATHS, expected_flags)
        self.assertListEqual(project.objects['6'].buildSettings.FRAMEWORK_SEARCH_PATHS, expected_flags)
        self.assertListEqual(project.objects['7'].buildSettings.FRAMEWORK_SEARCH_PATHS, expected_flags)
        self.assertListEqual(project.objects['8'].buildSettings.FRAMEWORK_SEARCH_PATHS, expected_flags)
Beispiel #19
0
    def testRemoveFilesByPath(self):
        project = XcodeProject(self.obj)
        original = project.__str__()
        build_files = project.add_file("file.m")

        result = project.remove_files_by_path('file.m')

        self.assertTrue(result)
        self.assertEqual(project.__str__(), original)
Beispiel #20
0
    def testAddFileLibraryWithAbsolutePath(self):
        project = XcodeProject(self.obj)
        build_file = project.add_file(os.path.abspath("samples/testLibrary.a"))

        expected_flags = "$(SRCROOT)/tests/samples"
        self.assertEqual(project.objects['5'].buildSettings.LIBRARY_SEARCH_PATHS, expected_flags)
        self.assertEqual(project.objects['6'].buildSettings.LIBRARY_SEARCH_PATHS, expected_flags)
        self.assertEqual(project.objects['7'].buildSettings.LIBRARY_SEARCH_PATHS, expected_flags)
        self.assertEqual(project.objects['8'].buildSettings.LIBRARY_SEARCH_PATHS, expected_flags)
Beispiel #21
0
    def testRemoveRunScriptNotFound(self):
        project = XcodeProject(self.obj)
        project.add_run_script(u'ls -la', insert_before_compile=True)

        self.assertEqual(project.objects[project.objects['1'].buildPhases[0]].shellScript, u'ls -la')
        self.assertEqual(project.objects[project.objects['2'].buildPhases[0]].shellScript, u'ls -la')

        project.remove_run_script(u'ls')
        self.assertEqual(project.objects[project.objects['1'].buildPhases[0]].shellScript, u'ls -la')
        self.assertEqual(project.objects[project.objects['2'].buildPhases[0]].shellScript, u'ls -la')
Beispiel #22
0
    def testRemoveByIdNonRecursive(self):
        project = XcodeProject(self.obj)
        group = project.objects['1']
        result = project.remove_group_by_id('1', recursive=False)

        self.assertTrue(result)
        self.assertFalse(project.objects['root'].has_child(group))
        self.assertIsNone(project.objects['1'])
        self.assertIsNotNone(project.objects['2'])
        self.assertIsNotNone(project.objects['3'])
Beispiel #23
0
    def testRemoveFileByIdFromTarget(self):
        project = XcodeProject(self.obj)
        build_files = project.add_file("file.m")

        file = project.get_files_by_name('file.m')[0]
        result = project.remove_file_by_id(file.get_id(), target_name='report')

        self.assertTrue(result)
        self.assertIsNotNone(project.objects[file.get_id()])
        self.assertEqual(project.objects.get_objects_in_section('PBXBuildFile').__len__(), 3)
        self.assertEqual(project.objects.get_objects_in_section('PBXSourcesBuildPhase').__len__(), 1)
Beispiel #24
0
    def testAddFileFrameworkEmbedded(self):
        project = XcodeProject(self.obj)
        options = FileOptions(create_build_files=True, weak=True, embed_framework=True, code_sign_on_copy=True)
        build_file = project.add_file("file.framework", file_options=options)

        # 2 source files are created 1 x target
        self.assertEqual(project.objects.get_objects_in_section(u'PBXFrameworksBuildPhase').__len__(), 2)
        self.assertEqual(project.objects.get_objects_in_section(u'PBXCopyFilesBuildPhase').__len__(), 2)
        self.assertEqual(build_file.__len__(), 4)
        self.assertListEqual(build_file[0].settings.ATTRIBUTES, [u'Weak', u'CodeSignOnCopy', u'RemoveHeadersOnCopy'])
        self.assertListEqual(build_file[1].settings.ATTRIBUTES, [u'Weak', u'CodeSignOnCopy', u'RemoveHeadersOnCopy'])
        self.assertListEqual(build_file[2].settings.ATTRIBUTES, [u'Weak', u'CodeSignOnCopy', u'RemoveHeadersOnCopy'])
        self.assertListEqual(build_file[3].settings.ATTRIBUTES, [u'Weak', u'CodeSignOnCopy', u'RemoveHeadersOnCopy'])
    def testAddFileOfAllTypes(self):
        for ext in ProjectFiles._FILE_TYPES:
            project = XcodeProject(self.obj)
            options = FileOptions(embed_framework=False)
            build_file = project.add_file("file{0}".format(ext), file_options=options)

            _, phase = ProjectFiles._FILE_TYPES[ext]
            amount = 0
            if phase is not None:
                amount = 2

            self.assertEqual(project.objects.get_objects_in_section(phase).__len__(), amount)
            self.assertEqual(build_file.__len__(), amount)
    def testGetParentGroupFromMainGroup(self):
        project = XcodeProject(
            {
                'objects': {
                    'project': {'isa': 'PBXProject', 'mainGroup': 'group'},
                    'group': {'isa': 'PBXGroup', 'name': 'group1'}
                },
                'rootObject': 'project'
            })
        group = project._get_parent_group(None)

        self.assertIsNotNone(group)
        self.assertEqual(project.objects[project.objects['project'].mainGroup], group)
    def testAddFileFrameworkFromSDKRootIgnoresEmbedAndCodeSign(self):
        project = XcodeProject(self.obj)
        options = FileOptions(create_build_files=True, weak=True, embed_framework=True, code_sign_on_copy=True)
        build_file = project.add_file("file.framework", tree=TreeType.SDKROOT, file_options=options)

        # 2 source files are created 1 x target
        self.assertEqual(project.objects.get_objects_in_section(u'PBXFrameworksBuildPhase').__len__(), 2)
        self.assertEqual(project.objects.get_objects_in_section(u'PBXCopyFilesBuildPhase').__len__(), 3)
        self.assertEqual(build_file.__len__(), 4)
        self.assertListEqual(build_file[0].settings.ATTRIBUTES, [u'Weak'])
        self.assertIsNone(build_file[1]['settings'])
        self.assertListEqual(build_file[2].settings.ATTRIBUTES, [u'Weak'])
        self.assertIsNone(build_file[3]['settings'])
Beispiel #28
0
    def testRemoveOtherLDFlags(self):
        project = XcodeProject(self.obj)
        project.add_other_ldflags('-ObjC')
        self.assertEqual(project.objects['5'].buildSettings.OTHER_LDFLAGS, '-ObjC')
        self.assertEqual(project.objects['6'].buildSettings.OTHER_LDFLAGS, '-ObjC')
        self.assertEqual(project.objects['7'].buildSettings.OTHER_LDFLAGS, '-ObjC')
        self.assertEqual(project.objects['8'].buildSettings.OTHER_LDFLAGS, '-ObjC')

        project.remove_other_ldflags('-ObjC')

        self.assertIsNone(project.objects['5'].buildSettings['OTHER_LDFLAGS'])
        self.assertIsNone(project.objects['6'].buildSettings['OTHER_LDFLAGS'])
        self.assertIsNone(project.objects['7'].buildSettings['OTHER_LDFLAGS'])
        self.assertIsNone(project.objects['8'].buildSettings['OTHER_LDFLAGS'])
Beispiel #29
0
    def testAddFolderNonRecursive(self):
        project = XcodeProject(self.obj)
        result = project.add_folder('samples/', recursive=False)

        # should add test.framework and testLibrary.a and 2 groups, samples, dirA
        samples = project.get_groups_by_name('samples')
        dirA = project.get_groups_by_name('dirA')
        dirB = project.get_groups_by_name('dirB')
        self.assertNotEqual(samples, [])
        self.assertNotEqual(dirA, [])
        self.assertEqual(dirB, [])

        self.assertEqual(samples[0].children.__len__(), 3) # dirA, test.framework, testLibrary.a
        self.assertEqual(dirA[0].children.__len__(), 0)
Beispiel #30
0
    def testAddFolderWithExclusions(self):
        project = XcodeProject(self.obj)
        result = project.add_folder('samples', excludes=['file.\\.m', 'test.*'])

        # should add test.framework and testLibrary.a and 2 groups, samples, dirA
        samples = project.get_groups_by_name('samples')
        dirA = project.get_groups_by_name('dirA')
        dirB = project.get_groups_by_name('dirB')
        self.assertNotEqual(samples, [])
        self.assertNotEqual(dirA, [])
        self.assertNotEqual(dirB, [])

        self.assertEqual(samples[0].children.__len__(), 1)  # dirA, -test.framework, -testLibrary.a
        self.assertEqual(dirA[0].children.__len__(), 1)  # dirB, -fileA.m
        self.assertEqual(dirB[0].children.__len__(), 0)  # -fileB.m
Beispiel #31
0
    def testGetParentGroupWithID(self):
        project = XcodeProject(self.obj)
        parent = project._get_parent_group('5p')

        self.assertEqual(parent, project.objects['5p'])
Beispiel #32
0
import sys
print("Python Version:")
print(sys.version)

try:
    from pbxproj import XcodeProject
    from pbxproj.pbxsections import XCBuildConfigurationFlags
except ImportError:
    print("It looks like you don't have the python package 'pbxproj' installed.")
    print("You need to install it - you can install it via the command:")
    print("sudo -H pip install pbxproj")
    exit(1)
from pathlib import Path

project = XcodeProject.load("Khrysalis Product Name.xcodeproj/project.pbxproj")
project.add_folder('./Khrysalis Product Name/', target_name="Khrysalis Product Name", excludes=["^.*\\.((?!swift).)*$"])
project.remove_flags(XCBuildConfigurationFlags.LIBRARY_SEARCH_PATHS, None)
project.save()


print("Successfully added project files.")
Beispiel #33
0
project.get_files_by_name
project.get_files_by_path

project.get_groups_by_name
project.get_groups_by_path

project.get_object(id)

object.get_id()
'''

config = {
'xcodeproj': './cloud-search.xcodeproj'
}
# open project
project = XcodeProject.load(config['xcodeproj'] + '/project.pbxproj')

class GroupStruct:
    Dict = {} # if an object has parrent, then it's content is it's parent
    def __init__(self, project):
        self.groups = project.objects.get_objects_in_section('PBXGroup')

        # initialize the dictionary of groups
        for item in self.groups:
            itemID = item.get_id().upper()
            for child in item.children:
                self.Dict[child.upper()] = itemID

    '''
        input: file id
        output: None if over maxIter, list of groups
Beispiel #34
0
    def testRemoveBrokenGroupsByName(self):
        project = XcodeProject(self.obj)
        result = project.remove_group_by_name('broken')

        self.assertFalse(result)
#!/usr/local/bin/python3
from pbxproj import XcodeProject
import json

jsonPath = "muxed.json"
with open(jsonPath) as f:
    conf = json.load(f)

project = XcodeProject.load(
    './repos/vidapp/vidtest/vidtest.xcodeproj/project.pbxproj')

mode = "Release"


def getflag(target, flag):
    for conf in project.objects.get_configurations_on_targets(target, mode):
        cdict = conf["buildSettings"]
        return cdict[flag]


def removeflag(target, flag):
    val = ""
    for conf in project.objects.get_configurations_on_targets(target, mode):
        cdict = conf["buildSettings"]
        val = cdict[flag]
    if val is None:
        return
    project.remove_flags(flag, val, target, "Debug")


l = "vidtest"
    def testAddReferenceFile(self):
        project = XcodeProject(self.obj, path="tests/project.pbxproj")
        build_file = project.add_file(os.path.abspath("samples/dirA"))

        self.assertEqual(project.objects.get_objects_in_section(u'PBXResourcesBuildPhase').__len__(), 2)
        self.assertEqual(build_file.__len__(), 2)
Beispiel #37
0
    def testGetOrCreateGroupFound(self):
        project = XcodeProject(self.obj)
        group = project.get_or_create_group('root')

        self.assertIsNotNone(group)
        self.assertIn(group.get_id(), self.obj['objects'])
Beispiel #38
0
    def testAddRunScriptBeforeCompile(self):
        project = XcodeProject(self.obj)
        project.add_run_script(u'ls -la', insert_before_compile=True)

        self.assertEqual(project.objects[project.objects['1'].buildPhases[0]].shellScript, u'ls -la')
        self.assertEqual(project.objects[project.objects['2'].buildPhases[0]].shellScript, u'ls -la')
Beispiel #39
0
    'Core/Services/StitchCoreRemoteMongoDBService',
    'Core/Services/StitchCoreTwilioService',
    'Darwin/StitchCore',
    'Darwin/Services/StitchAWSS3Service',
    'Darwin/Services/StitchAWSSESService',
    'Darwin/Services/StitchFCMService',
    'Darwin/Services/StitchHTTPService',
    'Darwin/Services/StitchLocalMongoDBService',
    'Darwin/Services/StitchRemoteMongoDBService',
    'Darwin/Services/StitchTwilioService',
]

# open the project
for module in modules:
    try:
        project = XcodeProject.load('{}/{}.xcodeproj/project.pbxproj'.format(
            module, os.path.basename(module)))

        frameworks = [
            os.path.abspath('Frameworks/ios/libbson.framework'),
            os.path.abspath('Frameworks/ios/libmongoc.framework'),
            os.path.abspath('Frameworks/ios/MongoSwift.framework')
        ]

        # add a file to it, force=false to not add it if it's already in the project
        options = FileOptions(create_build_files=True,
                              weak=True,
                              embed_framework=True,
                              code_sign_on_copy=True)

        for fmk in frameworks:
            project.add_file(fmk, force=False, file_options=options)
Beispiel #40
0
 def testAddFileUnknown(self):
     project = XcodeProject(self.obj)
     with self.assertRaisesRegex(ValueError, '^Unknown file extension: '):
         project.add_file("file.unknowntype")
Beispiel #41
0
from pbxproj import XcodeProject
import sys
import os
import fnmatch

xcodeprojs = []
for file in os.listdir('.'):
    if fnmatch.fnmatch(file, '*.xcodeproj'):  #project.pbxproj'):
        xcodeprojs.append(file)

if len(xcodeprojs) is 0:
    print(
        'No xcodeproj was found. Ensure you are running in the same directory as it.'
    )
    exit(1)

if len(xcodeprojs) > 1:
    print('Multiple xcodeproj found. Script will run on all of them.')

for xcodeproj in xcodeprojs:
    project = XcodeProject.load('{}/project.pbxproj'.format(xcodeproj))
    project.add_run_script(
        '"${PODS_ROOT}/SwiftLint/swiftlint" autocorrect; "${PODS_ROOT}/SwiftLint/swiftlint"',
        insert_before_compile=True)
    project.save()
Beispiel #42
0
    def testRemoveFlags(self):
        project = XcodeProject(self.obj)
        project.remove_flags('base', 'a')

        self.assertIsNone(project.objects['5'].buildSettings['base'])
Beispiel #43
0
    def testAddProjectFlags(self):
        project = XcodeProject(self.obj)
        project.add_project_flags('flag', '-flag')

        self.assertEqual(project.objects['9'].buildSettings.flag, '-flag')
        self.assertEqual(project.objects['10'].buildSettings.flag, '-flag')
Beispiel #44
0
    def testAddCodeSignAllTargetAllConfigurations(self):
        project = XcodeProject(self.obj)

        project.add_code_sign('iPhone Distribution', 'MYTEAM', '0x0x0x0x0',
                              'Provisioning name')

        self.assertEqual(
            project.objects['0'].attributes.TargetAttributes[u'1'].
            ProvisioningStyle, PBXProvioningTypes.MANUAL)
        self.assertEqual(
            project.objects['0'].attributes.TargetAttributes[u'2'].
            ProvisioningStyle, PBXProvioningTypes.MANUAL)

        self.assertEqual(
            project.objects['5'].
            buildSettings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'],
            'iPhone Distribution')
        self.assertEqual(
            project.objects['6'].
            buildSettings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'],
            'iPhone Distribution')
        self.assertEqual(
            project.objects['7'].
            buildSettings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'],
            'iPhone Distribution')
        self.assertEqual(
            project.objects['8'].
            buildSettings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'],
            'iPhone Distribution')

        self.assertEqual(
            project.objects['5'].buildSettings['DEVELOPMENT_TEAM'], 'MYTEAM')
        self.assertEqual(
            project.objects['6'].buildSettings['DEVELOPMENT_TEAM'], 'MYTEAM')
        self.assertEqual(
            project.objects['7'].buildSettings['DEVELOPMENT_TEAM'], 'MYTEAM')
        self.assertEqual(
            project.objects['8'].buildSettings['DEVELOPMENT_TEAM'], 'MYTEAM')

        self.assertEqual(
            project.objects['5'].buildSettings['PROVISIONING_PROFILE'],
            '0x0x0x0x0')
        self.assertEqual(
            project.objects['6'].buildSettings['PROVISIONING_PROFILE'],
            '0x0x0x0x0')
        self.assertEqual(
            project.objects['7'].buildSettings['PROVISIONING_PROFILE'],
            '0x0x0x0x0')
        self.assertEqual(
            project.objects['8'].buildSettings['PROVISIONING_PROFILE'],
            '0x0x0x0x0')

        self.assertEqual(
            project.objects['5'].
            buildSettings['PROVISIONING_PROFILE_SPECIFIER'],
            'Provisioning name')
        self.assertEqual(
            project.objects['6'].
            buildSettings['PROVISIONING_PROFILE_SPECIFIER'],
            'Provisioning name')
        self.assertEqual(
            project.objects['7'].
            buildSettings['PROVISIONING_PROFILE_SPECIFIER'],
            'Provisioning name')
        self.assertEqual(
            project.objects['8'].
            buildSettings['PROVISIONING_PROFILE_SPECIFIER'],
            'Provisioning name')
    def testAddFileWithAbsolutePathDoesNotExist(self):
        project = XcodeProject(self.obj)
        build_file = project.add_file(os.path.abspath("samples/unexistingFile.m"))

        # nothing to do if the file is absolute but doesn't exist
        self.assertIsNone(build_file)
Beispiel #46
0
    def testRemoveByNameNotFound(self):
        project = XcodeProject(self.obj)

        self.assertFalse(project.remove_group_by_name('xxx'))
Beispiel #47
0
	def __init__(self, path, projectFolder, buildTarget):
		self.project = XcodeProject.load(path)
		self.path = path
		self.projectFolder = projectFolder
		self.buildTarget = buildTarget
Beispiel #48
0
    def testRemoveFileByIdOnlyFiles(self):
        project = XcodeProject(self.obj)
        result = project.remove_file_by_id('group1')

        self.assertFalse(result)
Beispiel #49
0
    def testGetParentGroupCreateDefault(self):
        project = XcodeProject({'objects': {}})
        group = project._get_parent_group(None)

        self.assertIsNotNone(group)
        self.assertEqual(project.objects[group.get_id()], group)
Beispiel #50
0
    def testAddFolderNotAFolder(self):
        project = XcodeProject(self.obj)
        result = project.add_folder('samples/testLibrary.a')

        self.assertIsNone(result)
Beispiel #51
0
    def testGetOrCreateGroupNoName(self):
        project = XcodeProject(self.obj)
        group = project.get_or_create_group(None)

        self.assertIsNone(group)
Beispiel #52
0
def add_viper_files(config_path: str,
                    project_name: str,
                    module_name: str,
                    targets_list: List[str],
                    storyboard: str = None):
    with open(config_path, 'r') as stream:
        yaml_data = yaml.load(stream)

    settings = yaml_data

    project = XcodeProject.load(project_name + '/project.pbxproj')

    targets = []

    if 'targets' in settings:
        targets = settings['targets']

    # But this has higher priority
    if targets_list:
        targets = targets_list

    if storyboard:
        storyboard_name = storyboard
    else:
        storyboard_name = 'Main'

    today = datetime.date.today()
    today_str = today.strftime('%d.%m.%y')
    year_str = today.strftime('%Y')

    template_dir = settings['templates_dir']
    dir_path = os.path.dirname(os.path.realpath(__file__))
    if template_dir == '$TEMPLATES':
        template_dir = dir_path + '/Templates'

    project_full_dir = os.path.dirname(
        os.path.realpath(project_name)) + '/' + settings['project_dir']

    templates_env = Environment(loader=FileSystemLoader(template_dir),
                                autoescape=select_autoescape(['.tpl.swift']))

    parts = {
        'View': 'Views',
        'Interactor': 'Interactors',
        'Presenter': 'Presenters',
        'Router': 'Routers',
        'Controller': 'ViewControllers'
    }

    for key in parts.keys():
        try:
            template = templates_env.get_template(key + '.tpl.swift')
        except exceptions.TemplateNotFound:
            print(Fore.RED +
                  'Cannot find template {0}'.format(key + '.tpl.swift'))
            print(Style.RESET_ALL)
            sys.exit(0)

        filename = '{2}/{3}/{1}{0}.swift'.format(key, module_name,
                                                 project_full_dir, parts[key])
        rendered_template = template.render(module_name=module_name,
                                            file_type=key,
                                            creation_date=today_str,
                                            creation_year=year_str,
                                            storyboard_name=storyboard_name,
                                            project_author=settings['author'])

        try:
            output_file = open(filename, 'w')
            output_file.write(rendered_template)
            output_file.close()
        except FileNotFoundError:
            print(Fore.RED +
                  'Cannot find file {0}; try to use `swivigen init`'.format(
                      filename))
            print(Style.RESET_ALL)
            sys.exit(0)

        if key == 'Controller':
            project_group = project.get_or_create_group(
                settings['uikit_controllers_group'])
        else:
            project_group = project.get_or_create_group('{0}s'.format(key))
        __add_to_project(project, filename, project_group, targets)

    project.save()
Beispiel #53
0
    def testAddFileNoPath(self):
        project = XcodeProject(self.obj)
        build_file = project.add_file(".", tree=None)

        # no tree or no path cannot be added
        self.assertIsNone(build_file)
Beispiel #54
0
    def testAddProjectDoesntExists(self):
        project = XcodeProject(self.obj)
        reference_proxies = project.add_project(os.path.abspath("samples/unexistingFile.m"))

        # nothing to do if the file is absolute but doesn't exist
        self.assertIsNone(reference_proxies)
Beispiel #55
0
    def testAddRunScriptAfterCompile(self):
        project = XcodeProject(self.obj)
        project.add_run_script(u'ls -la')

        self.assertEqual(project.objects[project.objects['1'].buildPhases[1]].shellScript, u'ls -la')
        self.assertEqual(project.objects[project.objects['2'].buildPhases[1]].shellScript, u'ls -la')
Beispiel #56
0
    def testGetFilesByNameWithoutName(self):
        project = XcodeProject(self.obj)
        files = project.get_files_by_name('file1')

        self.assertEqual(files.__len__(), 2)
Beispiel #57
0
#!/usr/bin/env python3
from pbxproj import XcodeProject
# open the project
project = XcodeProject.load('Vyper.xcodeproj/project.pbxproj')

# add a file to it, force=false to not add it if it's already in the project
project.add_file('setup.py', force=False)

# set a Other Linker Flags
project.add_other_ldflags('')

# TODO
project.add_code_sign('Vyper Compiler[: <Company name> (MAAYFEXXXX)]',
                      'MAAYFEXXXX', '6f1ffc4d-xxxx-xxxx-xxxx-6dc186280e1e',
                      'My_provisioning_profile')

#EOF
project.save()
Beispiel #58
0
    def testGetFileByPathWithNoTree(self):
        project = XcodeProject(self.obj)

        files = project.get_files_by_path('file')
        self.assertEqual(files.__len__(), 2)
Beispiel #59
0
    def testGetFileByPathWithTree(self):
        project = XcodeProject(self.obj)

        files = project.get_files_by_path('file', TreeType.SDKROOT)
        self.assertEqual(files.__len__(), 1)
Beispiel #60
0
    def testAddGroupToParent(self):
        project = XcodeProject(self.obj)
        group = project.add_group("my_group", parent=project.objects['1'])

        self.assertTrue(project.objects['1'].has_child(group))