pbxFile: Added support for product files, based on the "explicitFileType" property.
diff --git a/lib/pbxFile.js b/lib/pbxFile.js
index 204fa6f..5281d07 100644
--- a/lib/pbxFile.js
+++ b/lib/pbxFile.js
@@ -150,6 +150,7 @@
     var opt = opt || {};
 
     this.lastKnownFileType = opt.lastKnownFileType || detectType(filepath);
+    this.group = defaultGroup(this);
 
     // for custom frameworks
     if (opt.customFramework == true) {
@@ -158,11 +159,21 @@
     }
 
     this.basename = path.basename(filepath);
-    this.path = correctPath(this, filepath);
-    this.group = correctGroup(this);
+    this.path = defaultPath(this, filepath);
+    this.defaultEncoding = opt.defaultEncoding || defaultEncoding(this);
 
-    this.sourceTree = opt.sourceTree || defaultSourceTree(this);
-    this.fileEncoding = opt.fileEncoding || fileEncoding(this);
+
+    // When referencing products / build output files
+    if (opt.explicitFileType) {
+        this.explicitFileType = opt.explicitFileType;
+        this.basename = this.basename + '.' + defaultExtension(this);
+        delete this.path;
+        delete this.lastKnownFileType;
+        delete this.group;
+        delete this.defaultEncoding;
+    }
+
+    this.sourceTree = opt.sourceTree || defaultSourcetree(this);
 
     if (opt.weak && opt.weak === true) 
         this.settings = { ATTRIBUTES: ['Weak'] };