code: func (p *defaultProvisioner) provisionElectronFinishDarwinReplace(appName string, paths Paths) (err error) {
  	for _, p := range []string{
  		filepath.Join(paths.electronDirectory, "Electron.app", "Contents", "Info.plist"),
  		filepath.Join(paths.electronDirectory, "Electron.app", "Contents", "Frameworks", "Electron Helper.app", "Contents", "Info.plist"),
  	} {
  		// Log
  		astilog.Debugf("Replacing in %s", p)
  
  		// Read file
  		var b []byte
  		if b, err = ioutil.ReadFile(p); err != nil {
  			return errors.Wrapf(err, "reading %s failed", p)
  		}
  
  		// Open and truncate file
  		var f *os.File
  		if f, err = os.Create(p); err != nil {
  			return errors.Wrapf(err, "creating %s failed", p)
  		}
  		defer f.Close()
  
  		// Replace
  		astiregexp.ReplaceAll(regexpDarwinInfoPList, &b, []byte("<string>"+appName))
  
  		// Write
  		if _, err = f.Write(b); err != nil {
  			return errors.Wrapf(err, "writing to %s failed", p)
  		}
  	}
  	return
  }
docs: // provisionElectronFinishDarwinReplace makes the proper replacements in the proper darwin files