Merge branch 'master' of https://github.com/chao787/node-xcode into chao787-master
diff --git a/lib/pbxProject.js b/lib/pbxProject.js
index 6de5dd4..1e1e85a 100644
--- a/lib/pbxProject.js
+++ b/lib/pbxProject.js
@@ -132,9 +132,22 @@
return file;
}
-pbxProject.prototype.addSourceFile = function(path, opt) {
+/**
+ *
+ * @param path {String}
+ * @param opt {Object} see pbxFile for avail options
+ * @param group {String} group key
+ * @returns {Object} file; see pbxFile
+ */
+pbxProject.prototype.addSourceFile = function (path, opt, group) {
+ var file;
+ if (group) {
+ file = this.addFile(path, group, opt);
+ }
+ else {
+ file = this.addPluginFile(path, opt);
+ }
- var file = this.addPluginFile(path, opt);
if (!file) return false;
file.target = opt ? opt.target : undefined;
@@ -146,9 +159,21 @@
return file;
}
-
-pbxProject.prototype.removeSourceFile = function(path, opt) {
- var file = this.removePluginFile(path, opt)
+/**
+ *
+ * @param path {String}
+ * @param opt {Object} see pbxFile for avail options
+ * @param group {String} group key
+ * @returns {Object} file; see pbxFile
+ */
+pbxProject.prototype.removeSourceFile = function (path, opt, group) {
+ var file;
+ if (group) {
+ file = this.removeFile(path, group, opt);
+ }
+ else {
+ file = this.removePluginFile(path, opt);
+ }
file.target = opt ? opt.target : undefined;
this.removeFromPbxBuildFileSection(file); // PBXBuildFile
this.removeFromPbxSourcesBuildPhase(file); // PBXSourcesBuildPhase
@@ -156,12 +181,36 @@
return file;
}
-pbxProject.prototype.addHeaderFile = function(path, opt) {
- return this.addPluginFile(path, opt)
+/**
+ *
+ * @param path {String}
+ * @param opt {Object} see pbxFile for avail options
+ * @param group {String} group key
+ * @returns {Object} file; see pbxFile
+ */
+pbxProject.prototype.addHeaderFile = function (path, opt, group) {
+ if (group) {
+ return this.addFile(path, group, opt);
+ }
+ else {
+ return this.addPluginFile(path, opt);
+ }
}
-pbxProject.prototype.removeHeaderFile = function(path, opt) {
- return this.removePluginFile(path, opt)
+/**
+ *
+ * @param path {String}
+ * @param opt {Object} see pbxFile for avail options
+ * @param group {String} group key
+ * @returns {Object} file; see pbxFile
+ */
+pbxProject.prototype.removeHeaderFile = function (path, opt, group) {
+ if (group) {
+ return this.removeFile(path, group, opt);
+ }
+ else {
+ return this.removePluginFile(path, opt);
+ }
}
pbxProject.prototype.addResourceFile = function(path, opt) {
@@ -746,7 +795,20 @@
}
pbxProject.prototype.pbxGroupByName = function(name) {
- return this.pbxItemByComment(name, 'PBXGroup');
+ var groups = this.hash.project.objects['PBXGroup'],
+ key, groupKey;
+
+ for (key in groups) {
+ // only look for comments
+ if (!COMMENT_KEY.test(key)) continue;
+
+ if (groups[key] == name) {
+ groupKey = key.split(COMMENT_KEY)[0];
+ return groups[groupKey];
+ }
+ }
+
+ return null;
}
pbxProject.prototype.pbxTargetByName = function(name) {
@@ -849,9 +911,22 @@
}
}
-pbxProject.prototype.updateBuildProperty = function(prop, value) {
- var config = this.pbxXCBuildConfigurationSection();
- propReplace(config, prop, value);
+/**
+ *
+ * @param prop {String}
+ * @param value {String|Array|Object|Number|Boolean}
+ * @param build {String} Release or Debug
+ */
+pbxProject.prototype.updateBuildProperty = function(prop, value, build) {
+ var configs = this.pbxXCBuildConfigurationSection();
+ for (var configName in configs) {
+ if (!COMMENT_KEY.test(configName)) {
+ var config = configs[configName];
+ if ( (build && config.name === build) || (!build) ) {
+ config.buildSettings[prop] = value;
+ }
+ }
+ }
}
pbxProject.prototype.updateProductName = function(name) {
@@ -1389,4 +1464,161 @@
}
}
+/*** NEW ***/
+
+pbxProject.prototype.addToPbxGroup = function (file, groupKey) {
+ var group = this.getPBXGroupByKey(groupKey);
+ if (group && group.children !== undefined) {
+ if (typeof file === 'string') {
+ //Group Key
+ var childGroup = {
+ value:file,
+ comment: this.getPBXGroupByKey(file).name
+ };
+
+ group.children.push(childGroup);
+ }
+ else {
+ //File Object
+ group.children.push(pbxGroupChild(file));
+ }
+ }
+}
+
+pbxProject.prototype.removeFromPbxGroup = function (file, groupKey) {
+ var group = this.getPBXGroupByKey(groupKey);
+ if (group) {
+ var groupChildren = group.children, i;
+ for(i in groupChildren) {
+ if(pbxGroupChild(file).value == groupChildren[i].value &&
+ pbxGroupChild(file).comment == groupChildren[i].comment) {
+ groupChildren.splice(i, 1);
+ break;
+ }
+ }
+ }
+}
+
+pbxProject.prototype.getPBXGroupByKey = function(key) {
+ return this.hash.project.objects['PBXGroup'][key];
+};
+
+pbxProject.prototype.findPBXGroupKey = function(criteria) {
+ var groups = this.hash.project.objects['PBXGroup'];
+ var target;
+
+ for (var key in groups) {
+ // only look for comments
+ if (COMMENT_KEY.test(key)) continue;
+
+ var group = groups[key];
+ if (criteria && criteria.path && criteria.name) {
+ if (criteria.path === group.path && criteria.name === group.name) {
+ target = key;
+ break
+ }
+ }
+ else if (criteria && criteria.path) {
+ if (criteria.path === group.path) {
+ target = key;
+ break
+ }
+ }
+ else if (criteria && criteria.name) {
+ if (criteria.name === group.name) {
+ target = key;
+ break
+ }
+ }
+ }
+
+ return target;
+}
+
+pbxProject.prototype.pbxCreateGroup = function(name, pathName) {
+
+ //Create object
+ var model = {
+ isa:"PBXGroup",
+ children: [],
+ name: name,
+ path: pathName,
+ sourceTree: '"<group>"'
+ };
+ var key = this.generateUuid();
+
+ //Create comment
+ var commendId = key + '_comment';
+
+ //add obj and commentObj to groups;
+ var groups = this.hash.project.objects['PBXGroup'];
+ groups[commendId] = name;
+ groups[key] = model;
+
+ return key;
+}
+
+
+pbxProject.prototype.getPBXObject = function(name) {
+ return this.hash.project.objects[name];
+}
+
+
+
+pbxProject.prototype.addFile = function (path, group, opt) {
+ var file = new pbxFile(path, opt);
+
+ // null is better for early errors
+ if (this.hasFile(file.path)) return null;
+
+ file.fileRef = this.generateUuid();
+
+ this.addToPbxFileReferenceSection(file); // PBXFileReference
+ this.addToPbxGroup(file, group); // PBXGroup
+
+ return file;
+}
+
+pbxProject.prototype.removeFile = function (path, group, opt) {
+ var file = new pbxFile(path, opt);
+
+ this.removeFromPbxFileReferenceSection(file); // PBXFileReference
+ this.removeFromPbxGroup(file, group); // PBXGroup
+
+ return file;
+}
+
+
+
+pbxProject.prototype.getBuildProperty = function(prop, build) {
+ var target;
+ var configs = this.pbxXCBuildConfigurationSection();
+ for (var configName in configs) {
+ if (!COMMENT_KEY.test(configName)) {
+ var config = configs[configName];
+ if ( (build && config.name === build) || (build === undefined) ) {
+ if (config.buildSettings[prop] !== undefined) {
+ target = config.buildSettings[prop];
+ }
+ }
+ }
+ }
+ return target;
+}
+
+pbxProject.prototype.getBuildConfigByName = function(name) {
+ var target = {};
+ var configs = this.pbxXCBuildConfigurationSection();
+ for (var configName in configs) {
+ if (!COMMENT_KEY.test(configName)) {
+ var config = configs[configName];
+ if (config.name === name) {
+ target[configName] = config;
+ }
+ }
+ }
+ return target;
+}
+
+
module.exports = pbxProject;
diff --git a/package.json b/package.json
index 2b27495..e43b331 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"author": "Andrew Lunny <alunny@gmail.com>",
"name": "xcode",
"description": "parser for xcodeproj/project.pbxproj files",
- "version": "0.8.0",
+ "version": "0.8.1",
"main":"index.js",
"repository": {
"url": "https://github.com/alunny/node-xcode.git"
diff --git a/test/group.js b/test/group.js
new file mode 100644
index 0000000..8523b83
--- /dev/null
+++ b/test/group.js
@@ -0,0 +1,320 @@
+var pbx = require('../lib/pbxProject'),
+ project,
+ projectHash;
+
+var findChildInGroup = function(obj, target) {
+ var found = false;
+
+ for (var i = 0, j = obj.children.length; i < j; i++) {
+ if (obj.children[i].value === target) {
+ found = true;
+ break;
+ }
+ }
+
+ return found;
+}
+
+var findFileByUUID = function(obj, target) {
+ var found = false;
+
+ for (var k = 0, l = obj.files.length; k < l; k++) {
+ if (obj.files[k].value === target) {
+ found = true;
+ break;
+ }
+ }
+
+ return found;
+}
+
+var findByFileRef = function(obj, target) {
+ var found = false;
+
+ for (var property in obj) {
+ if (!/comment/.test(property)) {
+ if (obj[property].fileRef === target) {
+ found = true;
+ break;
+ }
+ }
+ }
+ return found;
+}
+
+var findByName = function(obj, target) {
+ var found = false;
+ for (var property in obj) {
+ if (!/comment/.test(property)) {
+ var value = obj[property];
+ if (value.name === target) {
+ found = true;
+ }
+ }
+ }
+ return found;
+}
+
+exports.setUp = function(callback) {
+ project = new pbx('test/parser/projects/group.pbxproj');
+ projectHash = project.parseSync();
+ callback();
+}
+
+exports.getGroupByKey = {
+ 'should return PBXGroup for Classes': function(test) {
+ var groupKey = project.findPBXGroupKey({name: 'Classes'});
+ var group = project.getPBXGroupByKey(groupKey);
+ test.ok(group.name === 'Classes');
+ test.done();
+ },
+ 'should return PBXGroup for Plugins': function(test) {
+ var groupKey = project.findPBXGroupKey({name: 'Plugins'});
+ var group = project.getPBXGroupByKey(groupKey);
+ test.ok(group.name === 'Plugins');
+ test.done();
+ }
+}
+
+exports.createGroup = {
+ 'should create a new Test Group': function(test) {
+ var found = false;
+ var groups = project.getPBXObject('PBXGroup');
+
+ var found = findByName(groups, 'Test');
+ test.ok(found === false);
+
+
+ var group = project.findPBXGroupKey({name:'Test'});
+ test.ok(group === undefined);
+
+ project.pbxCreateGroup('Test', 'Test');
+
+ groups = project.getPBXObject('PBXGroup');
+ found = findByName(groups, 'Test');
+ test.ok(found === true);
+
+ group = project.findPBXGroupKey({name:'Test'});
+ test.ok(typeof group === 'string');
+ test.done();
+ }
+}
+
+exports.findGroupKey = {
+ 'should return a valid group key':function(test) {
+ var keyByName = project.findPBXGroupKey({ name: 'Classes'});
+ var keyByPath = project.findPBXGroupKey({ path: 'icons'});
+ var keyByPathName = project.findPBXGroupKey({ path: '"HelloCordova/Plugins"', name: 'Plugins'});
+ var nonExistingKey = project.findPBXGroupKey({ name: 'Foo'});
+
+ test.ok(keyByName === '080E96DDFE201D6D7F000001');
+ test.ok(keyByPath === '308D052D1370CCF300D202BF');
+ test.ok(keyByPathName === '307C750510C5A3420062BCA9');
+ test.ok(nonExistingKey === undefined);
+
+ test.done();
+ }
+}
+
+exports.addGroupToGroup = {
+ 'should create a new test group then add group to Classes group': function(test) {
+ var testKey = project.pbxCreateGroup('Test', 'Test');
+ var classesKey = project.findPBXGroupKey({name: 'Classes'});
+ project.addToPbxGroup(testKey, classesKey);
+
+ var classesGroup = project.getPBXGroupByKey(classesKey);
+ var foundTestGroup = false;
+ for (var i = 0, j = classesGroup.children.length; i < j; i++) {
+ var child = classesGroup.children[i];
+ if (child.value === testKey && child.comment === 'Test') {
+ foundTestGroup = true;
+ }
+ }
+
+ test.ok(foundTestGroup);
+
+ test.done();
+ }
+}
+
+exports.addSourceFileToGroup = {
+ 'should create group + add source file' : function(test) {
+ var testKey = project.pbxCreateGroup('Test', 'Test');
+ var file = project.addSourceFile('Notifications.m', {}, testKey);
+
+ var foundInGroup = findChildInGroup(project.getPBXGroupByKey(testKey),file.fileRef );
+ test.ok(foundInGroup);
+
+ var foundInBuildFileSection = findByFileRef(project.pbxBuildFileSection(), file.fileRef);
+ test.ok(foundInBuildFileSection);
+
+ var foundInBuildPhase = findFileByUUID(project.pbxSourcesBuildPhaseObj(), file.uuid);
+ test.ok(foundInBuildPhase);
+
+ test.done();
+ }
+}
+
+exports.removeSourceFileFromGroup = {
+ 'should create group + add source file then remove source file' : function(test) {
+ var testKey = project.pbxCreateGroup('Test', 'Test');
+ var file = project.addSourceFile('Notifications.m', {}, testKey);
+
+ var foundInGroup = findChildInGroup(project.getPBXGroupByKey(testKey),file.fileRef );
+ test.ok(foundInGroup);
+
+ var foundInBuildFileSection = findByFileRef(project.pbxBuildFileSection(), file.fileRef);
+ test.ok(foundInBuildFileSection);
+
+ var foundInBuildPhase = findFileByUUID(project.pbxSourcesBuildPhaseObj(), file.uuid);
+ test.ok(foundInBuildPhase);
+
+ project.removeSourceFile('Notifications.m', {}, testKey);
+
+ var foundInGroup = findChildInGroup(project.getPBXGroupByKey(testKey),file.fileRef );
+ test.ok(!foundInGroup);
+
+ var foundInBuildFileSection = findByFileRef(project.pbxBuildFileSection(), file.fileRef);
+ test.ok(!foundInBuildFileSection);
+
+ var foundInBuildPhase = findFileByUUID(project.pbxSourcesBuildPhaseObj(), file.uuid);
+ test.ok(!foundInBuildPhase);
+
+ test.done();
+ }
+}
+
+exports.addHeaderFileToGroup = {
+ 'should create group + add source file' : function(test) {
+ var testKey = project.pbxCreateGroup('Test', 'Test');
+ var file = project.addHeaderFile('Notifications.h', {}, testKey);
+
+ var foundInGroup = findChildInGroup(project.getPBXGroupByKey(testKey),file.fileRef );
+ test.ok(foundInGroup);
+
+ test.done();
+ }
+}
+
+exports.removeHeaderFileFromGroup = {
+ 'should create group + add source file then remove source file' : function(test) {
+ var testKey = project.pbxCreateGroup('Test', 'Test');
+ var file = project.addHeaderFile('Notifications.h', {}, testKey);
+
+ var foundInGroup = findChildInGroup(project.getPBXGroupByKey(testKey),file.fileRef );
+ test.ok(foundInGroup);
+
+ project.removeHeaderFile('Notifications.h', {}, testKey);
+
+ var foundInGroup = findChildInGroup(project.getPBXGroupByKey(testKey),file.fileRef );
+ test.ok(!foundInGroup);
+
+ test.done();
+ }
+}
+
+exports.retrieveBuildPropertyForBuild = {
+ 'should retrieve valid build property ':function(test) {
+ var releaseTargetedDeviceFamily = project.getBuildProperty('TARGETED_DEVICE_FAMILY', 'Release');
+ var debugTargetedDeviceFamily = project.getBuildProperty('TARGETED_DEVICE_FAMILY', 'Debug');
+ var nonExistingProperty = project.getBuildProperty('FOO', 'Debug');
+ var nonExistingBuild = project.getBuildProperty('TARGETED_DEVICE_FAMILY', 'Foo');
+
+ test.equal(releaseTargetedDeviceFamily, '"1,2"');
+ test.equal(debugTargetedDeviceFamily,'"1"');
+ test.equal(nonExistingProperty, undefined);
+ test.equal(nonExistingBuild, undefined);
+
+ test.done();
+ }
+}
+
+exports.retrieveBuildConfigByName = {
+ 'should retrieve valid build config':function(test) {
+ var releaseBuildConfig = project.getBuildConfigByName('Release');
+ for (var property in releaseBuildConfig) {
+ var value = releaseBuildConfig[property];
+ test.ok(value.name === 'Release');
+ }
+
+ var debugBuildConfig = project.getBuildConfigByName('Debug');
+ for (var property in debugBuildConfig) {
+ var value = debugBuildConfig[property];
+ test.ok(value.name === 'Debug');
+ }
+
+ var nonExistingBuildConfig = project.getBuildConfigByName('Foo');
+ test.deepEqual(nonExistingBuildConfig, {});
+
+ test.done();
+ }
+}
+
+/* This proves the issue in 0.6.7
+exports.validatePropReplaceException = {
+ 'should throw TypeError for updateBuildProperty VALID_ARCHS when none existed' : function(test) {
+ test.throws(
+ function() {
+ project.updateBuildProperty('VALID_ARCHS', '"armv7 armv7s');
+ },
+ TypeError,
+ "Object object has no method 'hasOwnProperty'"
+ );
+ test.done();
+ }
+}
+*/
+
+exports.validatePropReplaceFix = {
+ 'should create build configuration for VALID_ARCHS when none existed' : function(test) {
+ project.updateBuildProperty('VALID_ARCHS', '"armv7 armv7s"', 'Debug');
+ test.done();
+ }
+}
+
+exports.validateHasFile = {
+ 'should return true for has file MainViewController.m': function(test) {
+ var result = project.hasFile('MainViewController.m');
+ test.ok(result.path == "MainViewController.m");
+ test.done();
+ }
+}
+
+exports.testWritingPBXProject = {
+
+ 'should successfully write to PBXProject TargetAttributes': function(test) {
+ var pbxProjectObj = project.getPBXObject('PBXProject');
+ var pbxProject;
+ for (var property in pbxProjectObj) {
+ if (!/comment/.test(property)) {
+ pbxProject = pbxProjectObj[property];
+ }
+ }
+
+ var target;
+ var projectTargets = pbxProject.targets;
+ for (var i = 0, j = pbxProject.targets.length; i < j; i++ ) {
+ target = pbxProject.targets[i].value;
+ }
+
+ pbxProject.attributes.TargetAttributes = {};
+ pbxProject.attributes.TargetAttributes[target] = {
+ DevelopmentTeam: 'N6X4RJZZ5D',
+ SystemCapabilities: {
+ "com.apple.BackgroundModes": {
+ enabled : 0
+ },
+ "com.apple.DataProtection" : {
+ enabled : 0
+ },
+ "com.apple.Keychain" : {
+ enabled: 1
+ }
+ }
+ };
+
+ var output = project.writeSync();
+
+ test.done();
+ }
+}
\ No newline at end of file
diff --git a/test/parser/projects/group.pbxproj b/test/parser/projects/group.pbxproj
new file mode 100644
index 0000000..700242c
--- /dev/null
+++ b/test/parser/projects/group.pbxproj
@@ -0,0 +1,575 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; };
+ 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
+ 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
+ 301BF552109A68D80062928A /* libCordova.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF535109A57CC0062928A /* libCordova.a */; };
+ 302D95F114D2391D003F00A1 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 302D95EF14D2391D003F00A1 /* MainViewController.m */; };
+ 302D95F214D2391D003F00A1 /* MainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 302D95F014D2391D003F00A1 /* MainViewController.xib */; };
+ 305D5FD1115AB8F900A74A75 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 305D5FD0115AB8F900A74A75 /* MobileCoreServices.framework */; };
+ 3088BBBD154F3926009F9C59 /* Default-Landscape@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 3088BBB7154F3926009F9C59 /* Default-Landscape@2x~ipad.png */; };
+ 3088BBBE154F3926009F9C59 /* Default-Landscape~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 3088BBB8154F3926009F9C59 /* Default-Landscape~ipad.png */; };
+ 3088BBBF154F3926009F9C59 /* Default-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 3088BBB9154F3926009F9C59 /* Default-Portrait@2x~ipad.png */; };
+ 3088BBC0154F3926009F9C59 /* Default-Portrait~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 3088BBBA154F3926009F9C59 /* Default-Portrait~ipad.png */; };
+ 3088BBC1154F3926009F9C59 /* Default@2x~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 3088BBBB154F3926009F9C59 /* Default@2x~iphone.png */; };
+ 3088BBC2154F3926009F9C59 /* Default~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 3088BBBC154F3926009F9C59 /* Default~iphone.png */; };
+ 308D05371370CCF300D202BF /* icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 308D052E1370CCF300D202BF /* icon-72.png */; };
+ 308D05381370CCF300D202BF /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 308D052F1370CCF300D202BF /* icon.png */; };
+ 308D05391370CCF300D202BF /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 308D05301370CCF300D202BF /* icon@2x.png */; };
+ 30B4F30019D5E07200D9F7D8 /* Default-667h.png in Resources */ = {isa = PBXBuildFile; fileRef = 30B4F2FD19D5E07200D9F7D8 /* Default-667h.png */; };
+ 30B4F30119D5E07200D9F7D8 /* Default-736h.png in Resources */ = {isa = PBXBuildFile; fileRef = 30B4F2FE19D5E07200D9F7D8 /* Default-736h.png */; };
+ 30B4F30219D5E07200D9F7D8 /* Default-Landscape-736h.png in Resources */ = {isa = PBXBuildFile; fileRef = 30B4F2FF19D5E07200D9F7D8 /* Default-Landscape-736h.png */; };
+ 30C1856619D5FC0A00212699 /* icon-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 30C1856519D5FC0A00212699 /* icon-60@3x.png */; };
+ 30FC414916E50CA1004E6F35 /* icon-72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 30FC414816E50CA1004E6F35 /* icon-72@2x.png */; };
+ 5B1594DD16A7569C00FEF299 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B1594DC16A7569C00FEF299 /* AssetsLibrary.framework */; };
+ 7E7966DE1810823500FA85AD /* icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D41810823500FA85AD /* icon-40.png */; };
+ 7E7966DF1810823500FA85AD /* icon-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D51810823500FA85AD /* icon-40@2x.png */; };
+ 7E7966E01810823500FA85AD /* icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D61810823500FA85AD /* icon-50.png */; };
+ 7E7966E11810823500FA85AD /* icon-50@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D71810823500FA85AD /* icon-50@2x.png */; };
+ 7E7966E21810823500FA85AD /* icon-60.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D81810823500FA85AD /* icon-60.png */; };
+ 7E7966E31810823500FA85AD /* icon-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966D91810823500FA85AD /* icon-60@2x.png */; };
+ 7E7966E41810823500FA85AD /* icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966DA1810823500FA85AD /* icon-76.png */; };
+ 7E7966E51810823500FA85AD /* icon-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966DB1810823500FA85AD /* icon-76@2x.png */; };
+ 7E7966E61810823500FA85AD /* icon-small.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966DC1810823500FA85AD /* icon-small.png */; };
+ 7E7966E71810823500FA85AD /* icon-small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E7966DD1810823500FA85AD /* icon-small@2x.png */; };
+ D4A0D8761607E02300AEF8BB /* Default-568h@2x~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D4A0D8751607E02300AEF8BB /* Default-568h@2x~iphone.png */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 301BF534109A57CC0062928A /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 301BF52D109A57CC0062928A /* CordovaLib.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = D2AAC07E0554694100DB518D;
+ remoteInfo = CordovaLib;
+ };
+ 301BF550109A68C00062928A /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 301BF52D109A57CC0062928A /* CordovaLib.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC07D0554694100DB518D;
+ remoteInfo = CordovaLib;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 1D3623240D0F684500981E51 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+ 1D3623250D0F684500981E51 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+ 1D6058910D05DD3D006BFB54 /* HelloCordova.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "HelloCordova.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1F766FDD13BBADB100FB74C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Localizable.strings; sourceTree = "<group>"; };
+ 1F766FE013BBADB100FB74C0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Localizable.strings; sourceTree = "<group>"; };
+ 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 301BF52D109A57CC0062928A /* CordovaLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CordovaLib.xcodeproj; path = "CordovaLib/CordovaLib.xcodeproj"; sourceTree = "<group>"; };
+ 301BF56E109A69640062928A /* www */ = {isa = PBXFileReference; lastKnownFileType = folder; path = www; sourceTree = SOURCE_ROOT; };
+ 302D95EE14D2391D003F00A1 /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = "<group>"; };
+ 302D95EF14D2391D003F00A1 /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = "<group>"; };
+ 302D95F014D2391D003F00A1 /* MainViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainViewController.xib; sourceTree = "<group>"; };
+ 305D5FD0115AB8F900A74A75 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
+ 3088BBB7154F3926009F9C59 /* Default-Landscape@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape@2x~ipad.png"; sourceTree = "<group>"; };
+ 3088BBB8154F3926009F9C59 /* Default-Landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape~ipad.png"; sourceTree = "<group>"; };
+ 3088BBB9154F3926009F9C59 /* Default-Portrait@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait@2x~ipad.png"; sourceTree = "<group>"; };
+ 3088BBBA154F3926009F9C59 /* Default-Portrait~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait~ipad.png"; sourceTree = "<group>"; };
+ 3088BBBB154F3926009F9C59 /* Default@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x~iphone.png"; sourceTree = "<group>"; };
+ 3088BBBC154F3926009F9C59 /* Default~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default~iphone.png"; sourceTree = "<group>"; };
+ 308D052E1370CCF300D202BF /* icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72.png"; sourceTree = "<group>"; };
+ 308D052F1370CCF300D202BF /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
+ 308D05301370CCF300D202BF /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = "<group>"; };
+ 30B4F2FD19D5E07200D9F7D8 /* Default-667h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-667h.png"; sourceTree = "<group>"; };
+ 30B4F2FE19D5E07200D9F7D8 /* Default-736h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-736h.png"; sourceTree = "<group>"; };
+ 30B4F2FF19D5E07200D9F7D8 /* Default-Landscape-736h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape-736h.png"; sourceTree = "<group>"; };
+ 30C1856519D5FC0A00212699 /* icon-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-60@3x.png"; sourceTree = "<group>"; };
+ 30FC414816E50CA1004E6F35 /* icon-72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72@2x.png"; sourceTree = "<group>"; };
+ 32CA4F630368D1EE00C91783 /* HelloCordova-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "HelloCordova-Prefix.pch"; sourceTree = "<group>"; };
+ 5B1594DC16A7569C00FEF299 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
+ 7E7966D41810823500FA85AD /* icon-40.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-40.png"; sourceTree = "<group>"; };
+ 7E7966D51810823500FA85AD /* icon-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-40@2x.png"; sourceTree = "<group>"; };
+ 7E7966D61810823500FA85AD /* icon-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-50.png"; sourceTree = "<group>"; };
+ 7E7966D71810823500FA85AD /* icon-50@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-50@2x.png"; sourceTree = "<group>"; };
+ 7E7966D81810823500FA85AD /* icon-60.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-60.png"; sourceTree = "<group>"; };
+ 7E7966D91810823500FA85AD /* icon-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-60@2x.png"; sourceTree = "<group>"; };
+ 7E7966DA1810823500FA85AD /* icon-76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-76.png"; sourceTree = "<group>"; };
+ 7E7966DB1810823500FA85AD /* icon-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-76@2x.png"; sourceTree = "<group>"; };
+ 7E7966DC1810823500FA85AD /* icon-small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-small.png"; sourceTree = "<group>"; };
+ 7E7966DD1810823500FA85AD /* icon-small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-small@2x.png"; sourceTree = "<group>"; };
+ 8D1107310486CEB800E47090 /* HelloCordova-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "HelloCordova-Info.plist"; path = "../HelloCordova-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
+ D4A0D8751607E02300AEF8BB /* Default-568h@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x~iphone.png"; sourceTree = "<group>"; };
+ EB87FDF21871DA7A0020F90C /* merges */ = {isa = PBXFileReference; lastKnownFileType = folder; name = merges; path = ../../merges; sourceTree = "<group>"; };
+ EB87FDF31871DA8E0020F90C /* www */ = {isa = PBXFileReference; lastKnownFileType = folder; name = www; path = ../../www; sourceTree = "<group>"; };
+ EB87FDF41871DAF40020F90C /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = ../../config.xml; sourceTree = "<group>"; };
+ F840E1F0165FE0F500CFE078 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = "HelloCordova/config.xml"; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 5B1594DD16A7569C00FEF299 /* AssetsLibrary.framework in Frameworks */,
+ 301BF552109A68D80062928A /* libCordova.a in Frameworks */,
+ 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */,
+ 305D5FD1115AB8F900A74A75 /* MobileCoreServices.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 080E96DDFE201D6D7F000001 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 302D95EE14D2391D003F00A1 /* MainViewController.h */,
+ 302D95EF14D2391D003F00A1 /* MainViewController.m */,
+ 302D95F014D2391D003F00A1 /* MainViewController.xib */,
+ 1D3623240D0F684500981E51 /* AppDelegate.h */,
+ 1D3623250D0F684500981E51 /* AppDelegate.m */,
+ );
+ name = Classes;
+ path = "HelloCordova/Classes";
+ sourceTree = SOURCE_ROOT;
+ };
+ 19C28FACFE9D520D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 1D6058910D05DD3D006BFB54 /* HelloCordova.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
+ isa = PBXGroup;
+ children = (
+ EB87FDF41871DAF40020F90C /* config.xml */,
+ EB87FDF31871DA8E0020F90C /* www */,
+ EB87FDF21871DA7A0020F90C /* merges */,
+ EB87FDF11871DA420020F90C /* Staging */,
+ 301BF52D109A57CC0062928A /* CordovaLib.xcodeproj */,
+ 080E96DDFE201D6D7F000001 /* Classes */,
+ 307C750510C5A3420062BCA9 /* Plugins */,
+ 29B97315FDCFA39411CA2CEA /* Other Sources */,
+ 29B97317FDCFA39411CA2CEA /* Resources */,
+ 29B97323FDCFA39411CA2CEA /* Frameworks */,
+ 19C28FACFE9D520D11CA2CBB /* Products */,
+ );
+ name = CustomTemplate;
+ sourceTree = "<group>";
+ };
+ 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 32CA4F630368D1EE00C91783 /* HelloCordova-Prefix.pch */,
+ 29B97316FDCFA39411CA2CEA /* main.m */,
+ );
+ name = "Other Sources";
+ path = "HelloCordova";
+ sourceTree = "<group>";
+ };
+ 29B97317FDCFA39411CA2CEA /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 308D052D1370CCF300D202BF /* icons */,
+ 308D05311370CCF300D202BF /* splash */,
+ 8D1107310486CEB800E47090 /* HelloCordova-Info.plist */,
+ );
+ name = Resources;
+ path = "HelloCordova/Resources";
+ sourceTree = "<group>";
+ };
+ 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 5B1594DC16A7569C00FEF299 /* AssetsLibrary.framework */,
+ 288765FC0DF74451002DB57D /* CoreGraphics.framework */,
+ 305D5FD0115AB8F900A74A75 /* MobileCoreServices.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 301BF52E109A57CC0062928A /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 301BF535109A57CC0062928A /* libCordova.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 307C750510C5A3420062BCA9 /* Plugins */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Plugins;
+ path = "HelloCordova/Plugins";
+ sourceTree = SOURCE_ROOT;
+ };
+ 308D052D1370CCF300D202BF /* icons */ = {
+ isa = PBXGroup;
+ children = (
+ 30C1856519D5FC0A00212699 /* icon-60@3x.png */,
+ 7E7966D41810823500FA85AD /* icon-40.png */,
+ 7E7966D51810823500FA85AD /* icon-40@2x.png */,
+ 7E7966D61810823500FA85AD /* icon-50.png */,
+ 7E7966D71810823500FA85AD /* icon-50@2x.png */,
+ 7E7966D81810823500FA85AD /* icon-60.png */,
+ 7E7966D91810823500FA85AD /* icon-60@2x.png */,
+ 7E7966DA1810823500FA85AD /* icon-76.png */,
+ 7E7966DB1810823500FA85AD /* icon-76@2x.png */,
+ 7E7966DC1810823500FA85AD /* icon-small.png */,
+ 7E7966DD1810823500FA85AD /* icon-small@2x.png */,
+ 30FC414816E50CA1004E6F35 /* icon-72@2x.png */,
+ 308D052E1370CCF300D202BF /* icon-72.png */,
+ 308D052F1370CCF300D202BF /* icon.png */,
+ 308D05301370CCF300D202BF /* icon@2x.png */,
+ );
+ path = icons;
+ sourceTree = "<group>";
+ };
+ 308D05311370CCF300D202BF /* splash */ = {
+ isa = PBXGroup;
+ children = (
+ 30B4F2FD19D5E07200D9F7D8 /* Default-667h.png */,
+ 30B4F2FE19D5E07200D9F7D8 /* Default-736h.png */,
+ 30B4F2FF19D5E07200D9F7D8 /* Default-Landscape-736h.png */,
+ D4A0D8751607E02300AEF8BB /* Default-568h@2x~iphone.png */,
+ 3088BBB7154F3926009F9C59 /* Default-Landscape@2x~ipad.png */,
+ 3088BBB8154F3926009F9C59 /* Default-Landscape~ipad.png */,
+ 3088BBB9154F3926009F9C59 /* Default-Portrait@2x~ipad.png */,
+ 3088BBBA154F3926009F9C59 /* Default-Portrait~ipad.png */,
+ 3088BBBB154F3926009F9C59 /* Default@2x~iphone.png */,
+ 3088BBBC154F3926009F9C59 /* Default~iphone.png */,
+ );
+ path = splash;
+ sourceTree = "<group>";
+ };
+ EB87FDF11871DA420020F90C /* Staging */ = {
+ isa = PBXGroup;
+ children = (
+ F840E1F0165FE0F500CFE078 /* config.xml */,
+ 301BF56E109A69640062928A /* www */,
+ );
+ name = Staging;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 1D6058900D05DD3D006BFB54 /* HelloCordova */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "HelloCordova" */;
+ buildPhases = (
+ 304B58A110DAC018002A0835 /* Copy www directory */,
+ 1D60588D0D05DD3D006BFB54 /* Resources */,
+ 1D60588E0D05DD3D006BFB54 /* Sources */,
+ 1D60588F0D05DD3D006BFB54 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 301BF551109A68C00062928A /* PBXTargetDependency */,
+ );
+ name = "HelloCordova";
+ productName = "HelloCordova";
+ productReference = 1D6058910D05DD3D006BFB54 /* HelloCordova.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0510;
+ };
+ buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "__CLI__" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ en,
+ es,
+ de,
+ se,
+ );
+ mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 301BF52E109A57CC0062928A /* Products */;
+ ProjectRef = 301BF52D109A57CC0062928A /* CordovaLib.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 1D6058900D05DD3D006BFB54 /* HelloCordova */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 301BF535109A57CC0062928A /* libCordova.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libCordova.a;
+ remoteRef = 301BF534109A57CC0062928A /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 1D60588D0D05DD3D006BFB54 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7E7966E41810823500FA85AD /* icon-76.png in Resources */,
+ 7E7966DF1810823500FA85AD /* icon-40@2x.png in Resources */,
+ 308D05371370CCF300D202BF /* icon-72.png in Resources */,
+ 30B4F30119D5E07200D9F7D8 /* Default-736h.png in Resources */,
+ 308D05381370CCF300D202BF /* icon.png in Resources */,
+ 308D05391370CCF300D202BF /* icon@2x.png in Resources */,
+ 302D95F214D2391D003F00A1 /* MainViewController.xib in Resources */,
+ 7E7966E01810823500FA85AD /* icon-50.png in Resources */,
+ 7E7966E31810823500FA85AD /* icon-60@2x.png in Resources */,
+ 7E7966E61810823500FA85AD /* icon-small.png in Resources */,
+ 3088BBBD154F3926009F9C59 /* Default-Landscape@2x~ipad.png in Resources */,
+ 3088BBBE154F3926009F9C59 /* Default-Landscape~ipad.png in Resources */,
+ 3088BBBF154F3926009F9C59 /* Default-Portrait@2x~ipad.png in Resources */,
+ 7E7966E71810823500FA85AD /* icon-small@2x.png in Resources */,
+ 3088BBC0154F3926009F9C59 /* Default-Portrait~ipad.png in Resources */,
+ 30B4F30019D5E07200D9F7D8 /* Default-667h.png in Resources */,
+ 7E7966DE1810823500FA85AD /* icon-40.png in Resources */,
+ 3088BBC1154F3926009F9C59 /* Default@2x~iphone.png in Resources */,
+ 7E7966E21810823500FA85AD /* icon-60.png in Resources */,
+ 3088BBC2154F3926009F9C59 /* Default~iphone.png in Resources */,
+ D4A0D8761607E02300AEF8BB /* Default-568h@2x~iphone.png in Resources */,
+ 30B4F30219D5E07200D9F7D8 /* Default-Landscape-736h.png in Resources */,
+ 30C1856619D5FC0A00212699 /* icon-60@3x.png in Resources */,
+ 7E7966E11810823500FA85AD /* icon-50@2x.png in Resources */,
+ 7E7966E51810823500FA85AD /* icon-76@2x.png in Resources */,
+ 30FC414916E50CA1004E6F35 /* icon-72@2x.png in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 304B58A110DAC018002A0835 /* Copy www directory */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Copy www directory";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "cordova/lib/copy-www-build-step.sh";
+ showEnvVarsInLog = 0;
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 1D60588E0D05DD3D006BFB54 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
+ 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */,
+ 302D95F114D2391D003F00A1 /* MainViewController.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 301BF551109A68C00062928A /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = CordovaLib;
+ targetProxy = 301BF550109A68C00062928A /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 1D6058940D05DD3E006BFB54 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "HelloCordova/HelloCordova-Prefix.pch";
+ GCC_THUMB_SUPPORT = NO;
+ GCC_VERSION = "";
+ INFOPLIST_FILE = "HelloCordova/HelloCordova-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ OTHER_LDFLAGS = (
+ "-weak_framework",
+ CoreFoundation,
+ "-weak_framework",
+ UIKit,
+ "-weak_framework",
+ AVFoundation,
+ "-weak_framework",
+ CoreMedia,
+ "-weak-lSystem",
+ "-ObjC",
+ );
+ PRODUCT_NAME = "HelloCordova";
+ TARGETED_DEVICE_FAMILY = "1";
+ };
+ name = Debug;
+ };
+ 1D6058950D05DD3E006BFB54 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ COPY_PHASE_STRIP = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "HelloCordova/HelloCordova-Prefix.pch";
+ GCC_THUMB_SUPPORT = NO;
+ GCC_VERSION = "";
+ INFOPLIST_FILE = "HelloCordova/HelloCordova-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ OTHER_LDFLAGS = (
+ "-weak_framework",
+ CoreFoundation,
+ "-weak_framework",
+ UIKit,
+ "-weak_framework",
+ AVFoundation,
+ "-weak_framework",
+ CoreMedia,
+ "-weak-lSystem",
+ "-ObjC",
+ );
+ PRODUCT_NAME = "HelloCordova";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+ C01FCF4F08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_THUMB_SUPPORT = NO;
+ GCC_VERSION = "";
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"",
+ "\"$(OBJROOT)/UninstalledProducts/include\"",
+ "\"$(BUILT_PRODUCTS_DIR)\"",
+ );
+ IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = (
+ "-weak_framework",
+ CoreFoundation,
+ "-weak_framework",
+ UIKit,
+ "-weak_framework",
+ AVFoundation,
+ "-weak_framework",
+ CoreMedia,
+ "-weak-lSystem",
+ "-ObjC",
+ );
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = NO;
+ USER_HEADER_SEARCH_PATHS = "";
+ };
+ name = Debug;
+ };
+ C01FCF5008A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_THUMB_SUPPORT = NO;
+ GCC_VERSION = "";
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "\"$(TARGET_BUILD_DIR)/usr/local/lib/include\"",
+ "\"$(OBJROOT)/UninstalledProducts/include\"",
+ "\"$(BUILT_PRODUCTS_DIR)\"",
+ );
+ IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ OTHER_LDFLAGS = (
+ "-weak_framework",
+ CoreFoundation,
+ "-weak_framework",
+ UIKit,
+ "-weak_framework",
+ AVFoundation,
+ "-weak_framework",
+ CoreMedia,
+ "-weak-lSystem",
+ "-ObjC",
+ );
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = NO;
+ USER_HEADER_SEARCH_PATHS = "";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "HelloCordova" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1D6058940D05DD3E006BFB54 /* Debug */,
+ 1D6058950D05DD3E006BFB54 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C01FCF4E08A954540054247B /* Build configuration list for PBXProject "__CLI__" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4F08A954540054247B /* Debug */,
+ C01FCF5008A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
+}