Skip to content

How do you define the target for Specific Build Settings or Adding Frameworks?  #54

Open
@adam-govan

Description

@adam-govan

I've made an App Extension with the addTarget function but even though I have the target defined like so :

// (some global paths deliberately left out but they all point correctly)
    var extFiles = [
        'NotificationService.h',
        'NotificationService.m',
        `${extName}-Info.plist`,
        'appgroupconfig.json',
        'PushExtension.entitlements',
    ];

        const proj = xcode.project(projPath);
        proj.parseSync();

        // Copy in the extension files
        fs.mkdirSync(`${iosPath}${extName}`);
        extFiles.forEach(function (extFile) {
            let targetFile = `${iosPath}${extName}/${extFile}`;
            fs.createReadStream(`${sourceDir}${extFile}`)
                .pipe(fs.createWriteStream(targetFile));
        });
        
        // Add a target for the extension
        let extTarget = proj.addTarget(extName, 'app_extension');

I cannot seem to define any buildProperties for it specifically. For example, the function

pbxProject.prototype.updateBuildProperty = function(prop, value, build)

takes in the property key the value and the build but this will only update the main project and not any of the targets defined.

The target parameter in the addFramework function doesn't appear to work either. When digging into the pbxfile that it creates to addToFrameworkSearchPaths the target is not passed or accessed in the constructor. The following code doesn't add the Framework to the target:

var opt = {target: extTarget.uuid, embed: true, customFramework: true, sign: true}
proj.addFramework(`${custom_framework_path}`, opt);

Can somebody please point me to the right direction here? I don't know what I'm doing wrong.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions