Skip to content

Commit

Permalink
Reverting a previous commit to fix iOS reload issue.
Browse files Browse the repository at this point in the history
See: nordnet#331

----

Revert "Refactoring PR nordnet#296"

This reverts commit c6d1e6f.
  • Loading branch information
KristoferGoransson committed Jul 2, 2018
1 parent de25b18 commit bc52ac7
Showing 1 changed file with 44 additions and 38 deletions.
82 changes: 44 additions & 38 deletions scripts/lib/iosWKWebViewEngineSupport.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,49 +67,55 @@ function isDirectoryExists(dir) {
* @return {Object} projectFile - project file information
*/
function loadProjectFile() {
try {
return loadProjectFile_cordova_7_and_above();
} catch(e) {
}

try {
return loadProjectFile_cordova_5_and_6();
} catch(e) {
}
var platform_ios;
var projectFile;

try {
return loadProjectFile_cordova_pre_5();
// try pre-5.0 cordova structure
platform_ios = context.requireCordovaModule('cordova-lib/src/plugman/platforms')['ios'];
projectFile = platform_ios.parseProjectFile(iosPlatformPath);
} catch (e) {
}

throw new Error('Failed to load iOS project file. Maybe your Cordova version is not supported?');
}

function loadProjectFile_cordova_pre_5() {
var platformIos = context.requireCordovaModule('cordova-lib/src/plugman/platforms')['ios'];

return platformIos.parseProjectFile(iosPlatformPath);
}

function loadProjectFile_cordova_5_and_6() {
var platformIos = context.requireCordovaModule('cordova-lib/src/plugman/platforms/ios');

return platformIos.parseProjectFile(iosPlatformPath);
}

function loadProjectFile_cordova_7_and_above() {
var pbxPath = path.join(iosPlatformPath, projectName + '.xcodeproj', 'project.pbxproj');
var xcodeproj = context.requireCordovaModule('xcode').project(pbxPath);
xcodeproj.parseSync();
// let's try cordova 5.0 structure
try {
platform_ios = context.requireCordovaModule('cordova-lib/src/plugman/platforms/ios');
projectFile = platform_ios.parseProjectFile(iosPlatformPath);
} catch (e) {
// cordova 7.0 due to https://issues.apache.org/jira/browse/CB-11242 / https://github.com/apache/cordova-lib/pull/526
var project_files = context.requireCordovaModule('glob')
.sync(path.join(iosPlatformPath, '*.xcodeproj', 'project.pbxproj'));

if (project_files.length === 0) {
throw new Error('does not appear to be an xcode project (no xcode project file)');
}

var saveProj = function() {
fs.writeFileSync(pbxPath, xcodeproj.writeSync());
};
var pbxPath = project_files[0];

var xcodeproj = context.requireCordovaModule('xcode').project(pbxPath);
xcodeproj.parseSync();

projectFile = {
'xcode': xcodeproj,
write: function () {
var fs = context.requireCordovaModule('fs');

var frameworks_file = path.join(iosPlatformPath, 'frameworks.json');
var frameworks = {};
try {
frameworks = context.requireCordovaModule(frameworks_file);
} catch (e) { }

fs.writeFileSync(pbxPath, xcodeproj.writeSync());
if (Object.keys(frameworks).length === 0) {
// If there is no framework references remain in the project, just remove this file
context.requireCordovaModule('shelljs').rm('-rf', frameworks_file);
return;
}
fs.writeFileSync(frameworks_file, JSON.stringify(this.frameworks, null, 4));
}
};
}

return {
xcode: xcodeproj,
write: saveProj
};
return projectFile;
}

/**
Expand Down

0 comments on commit bc52ac7

Please sign in to comment.