 
   return if !checkNpmVersion()
 
-  app_path = yield packageAppAsync poi_version, building_root, release_dir
-  return if !electron_version?
+  app_path_promise = packageAppAsync poi_version, building_root, release_dir
+  if !electron_version?
+    yield app_path_promise
+    return
 
   # Stage3: Package each platform
   stage3_info = yield Promise.all (
     for [platform, arch] in platform_arch_list
       packageStage3Async(platform, arch, poi_version, electron_version,
-        download_dir, app_path, building_root, release_dir))
+        download_dir, building_root, release_dir))
+
+  # Copy app
+  for info in stage3_info
+    if info.app_path?
+      fs.copySync (yield app_path_promise), info.app_path
 
   # Finishing work of stage 3
   stage3_logs = (for [[platform, arch], info] in _.zip(


# If !use_taobao_mirror, download Electron from GitHub.
use_taobao_mirror = config.get 'buildscript.useTaobaoMirror', true
npm_exec_path = path.join __dirname, 'node_modules', 'npm', 'bin', 'npm-cli.js'
bower_exec_path = path.join __dirname, 'node_modules', 'bower', 'bin', 'bower'


  release_path

packageStage3Async = async (platform, arch, poi_version, electron_version,
            download_dir, building_root, release_dir) ->
  platform_arch = "#{platform}-#{arch}"
  poi_fullname = "poi-v#{poi_version}-#{platform_arch}"
  stage3_electron = path.join building_root, poi_fullname
