apache / cordova-node-xcode

Apache cordova
Apache License 2.0
190 stars 97 forks source link

Is there any documentation for this project? #120

Open TheMartas29 opened 2 years ago

TheMartas29 commented 2 years ago

I would like to ask if there is some sort of documentation for this project or perhaps can someone answer my questions?

I need to create "group" in the xcode project an add files in it. Then add these files into "compile sources" in "build phases". Is it possible to do this? I tried to create group with pbxCreateGroup() function and to add it in Xcode project I used addPbxGroupFunction(). But non of this seems to work. Also I tried to add the files directly to project with addFile() and addHeaderFile() / addSourceFile() functions but without success. I have to admit that first time I ran the script the files were added into "compile sources" in "build phases" but I wasn't able to do this again. Also I'm not really sure what the myProj.parse() does and how should I use it.

I know it is a lot of things but hopefully someone could help me.

script that I used:

project.parse(function(err) {
    if(err) console.log(err);

    var group = project.pbxCreateGroup("ASIHTTPRequest");

    files.forEach(file => {
        console.log(file);

        if (file.indexOf(".h") >= 0) {
                project.addFile(file, group);
                project.addHeaderFile(file);
                fs.writeFileSync(_PROJECT_FILE_PATH, project.writeSync());
        }
        else {
                project.addFile(file, group);
                project.addSourceFile(file);
                fs.writeFileSync(_PROJECT_FILE_PATH, project.writeSync());
        }
    })

    project.addPbxGroup([_PROJECT_FILE_PATH], "ASIHTTPRequest", _PROJECT_FILE_PATH);
    fs.writeFileSync(_PROJECT_FILE_PATH, project.writeSync());
})
SMzig commented 1 year ago

Hello @TheMartas29 any solution for this issue?

TheMartas29 commented 1 year ago

Yeah, I guess I was able to do it with this code:

var project = xcode.project(_PBXPROJ_PATH);
if (!fs.existsSync(PROJECT_PATH + "groupName")) {
    fs.mkdir(path.join(PROJECT_PATH, "groupName"), err => {
        if (err) console.log(err);
    })
}
fse.copySync(RESOURCES_PATH, PROJECT_PATH + "groupName/");

project.parse(function (err) {  
    var files = fs.readdirSync(PROJECT_PATH + "groupName/");
    var group = project.pbxCreateGroup('groupName', 'projectName/groupName');
    var classesKey = project.findPBXGroupKey({name: 'CustomTemplate'}); //idk what CustomTemplate means
    project.addToPbxGroup(group, classesKey);

    files.forEach(file => {
        if (file.indexOf(".h") >= 0) {
            project.addHeaderFile(file, null, group);
        } else {
            project.addSourceFile(file, null, group);
        }
    });
});