Compare commits

...

1 Commits

Author SHA1 Message Date
Lea Anthony
dd5158b84c Allow customising of info.plist 2020-08-23 09:45:40 +10:00

View File

@@ -212,6 +212,8 @@ func (b *PackageHelper) packageOSX(po *ProjectOptions) error {
packageID := strings.Join([]string{"wails", name, version}, ".") packageID := strings.Join([]string{"wails", name, version}, ".")
plistData := newPlistData(name, exe, packageID, version, author) plistData := newPlistData(name, exe, packageID, version, author)
appname := po.Name + ".app" appname := po.Name + ".app"
plistFilename := path.Join(build, appname, "Contents", "Info.plist")
customPlist := path.Join(b.fs.Cwd(), "info.plist")
// Check binary exists // Check binary exists
source := path.Join(build, exe) source := path.Join(build, exe)
@@ -230,10 +232,16 @@ func (b *PackageHelper) packageOSX(po *ProjectOptions) error {
// Remove the existing package // Remove the existing package
os.RemoveAll(appname) os.RemoveAll(appname)
// Create directories
exeDir := path.Join(build, appname, "/Contents/MacOS") exeDir := path.Join(build, appname, "/Contents/MacOS")
b.fs.MkDirs(exeDir, 0755) b.fs.MkDirs(exeDir, 0755)
resourceDir := path.Join(build, appname, "/Contents/Resources") resourceDir := path.Join(build, appname, "/Contents/Resources")
b.fs.MkDirs(resourceDir, 0755) b.fs.MkDirs(resourceDir, 0755)
// Do we have a custom plist in the project directory?
if !fs.FileExists(customPlist) {
// No - create a new plist from our defaults
tmpl := template.New("infoPlist") tmpl := template.New("infoPlist")
plistFile := filepath.Join(b.getPackageFileBaseDir(), "info.plist") plistFile := filepath.Join(b.getPackageFileBaseDir(), "info.plist")
infoPlist, err := ioutil.ReadFile(plistFile) infoPlist, err := ioutil.ReadFile(plistFile)
@@ -248,12 +256,26 @@ func (b *PackageHelper) packageOSX(po *ProjectOptions) error {
if err != nil { if err != nil {
return err return err
} }
filename := path.Join(build, appname, "Contents", "Info.plist")
err = ioutil.WriteFile(filename, tpl.Bytes(), 0644) // Save to the package
err = ioutil.WriteFile(plistFilename, tpl.Bytes(), 0644)
if err != nil { if err != nil {
return err return err
} }
// Also write to project directory for customisation
err = ioutil.WriteFile(customPlist, tpl.Bytes(), 0644)
if err != nil {
return err
}
} else {
// Yes - we have a plist. Copy it to the package verbatim
err = fs.CopyFile(customPlist, plistFilename)
if err != nil {
return err
}
}
// Copy executable // Copy executable
target := path.Join(exeDir, exe) target := path.Join(exeDir, exe)
err = b.fs.CopyFile(source, target) err = b.fs.CopyFile(source, target)