【问题标题】:How to rename an nwjs app如何重命名一个 nwjs 应用程序
【发布时间】:2018-03-07 03:59:11
【问题描述】:

我正在签署我的 nwjs 应用程序并使用 productbuild 命令打包它

当我安装应用程序时,它显示在应用程序下并且可以运行,但它在 Finder 中的名称仍然是 nwjs。如何将其更改为我的应用名称?

签名脚本:

identity="3rd Party Mac Developer Application: my comp..."
app="nwjs.app"
rm -f "$app/Icon^M" 
rm -r -f "$app/.idea"

echo "### signing libraries"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/64.0.3282.186/libffmpeg.dylib"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/64.0.3282.186/nwjs Framework.framework/libnode.dylib"

echo "### signing frameworks"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/64.0.3282.186/nwjs Framework.framework/Versions/A/XPCServices/AlertNotificationService.xpc"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/64.0.3282.186/nwjs Framework.framework/Versions/A/Helpers/crashpad_handler"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/64.0.3282.186/nwjs Framework.framework/nwjs Framework"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/64.0.3282.186/nwjs Framework.framework/Helpers/crashpad_handler"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/64.0.3282.186/nwjs Helper.app/Contents/MacOS/nwjs Helper"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/64.0.3282.186/nwjs Helper.app/"

echo "### sing osx folder"
codesign --force --verify --sign "$identity"  "$app/Contents/MacOS/nwjs"

echo "### signing app"
codesign --force --verify --sign "$identity" "$app"

它签名没有错误,我可以打开签名的应用程序,它可以工作。 然后打包:

productbuild --sign "3rd Party Mac Developer Installer: mycomp..." --component "nwjs.app" /Applications --product "nwjs.app/Contents/Info.plist" MyApp.pkg

当我安装生成的 pkg 时,该应用程序显示在应用程序下并且运行良好。但是它在Finder中的名字依然是nwjs,不管我在下面三个info.plist中怎么改:

Bundle display name
Bundle name
Bundle identifier

Contants/Info.plist
Contents/Resources/app.nw//Info.plist
Contents/Versions/57.0.2987.133/nwjs Helper.app/Contents/Info.plist

最后一项的更改会导致应用在启动时崩溃。

版本:

nwjs-sdk-v0.28.3-osx-x64
os: mac high Sierra 10.13.3

【问题讨论】:

    标签: rename nwjs


    【解决方案1】:

    首先要使用签名脚本(由我编写;))您需要更改路径。 Contents/Versions/64.0.3282.186 必须更改为您拥有的版本的路径。我猜是 Contents/Versions/57.0.2987.133/

    如果您想更改名称,您可能还必须更改。 内容/资源/en.lproj/InfoPlist.strings - CFBundleDisplayName 我删了。

    Apple 不会立即意识到这一点。要加快速度,您可以转到终端并执行以下命令。 “触摸 your_app.app” Apple 现在重置此应用程序的已知参数。

    如果您想更改 nwjs helper.app 的名称,您必须执行以下操作。

    • 向您的 package.json 添加一个产品字符串,名称如下(重要提示:请勿添加字符串助手)

      {
      "name": "your_app",
      "version": "0.0.1",
      "main": "index.html",
      "window": {
        "width": 1150,
        "height": 650,
        "show_in_taskbar": true
      },
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "product_string": "your_app", //THIS IS WHAT YOU ADD
      "dependencies": {
      }
      }
      
    • Contents/Versions/n.n.n.n/nwjs Helper.app/Contents/MacOS/nwjs Helper - 将文件重命名为“your_app Helper”

    • Contents/Versions/n.n.n.n/nwjs Helper.app/Contents/Info.plist - 更改 CFBundleDisplayName = your_app Helper
    • Contents/Versions/n.n.n.n/nwjs Helper.app - 将目录重命名为“your_app Helper.app”

    您可能还需要为 ...helper.app 执行触摸命令,但通常您不需要。

    有关更多信息,请查看 http://docs.nwjs.io/en/latest/For%20Users/Package%20and%20Distribute/ 部分 Mac OS X

    【讨论】:

    • 谢谢,也感谢脚本 :-) 对我有用的是删除 Contents/Resources/ 中的所有 lproj 文件
    • 很高兴我能帮上忙。您介意将答案标记为正确还是我需要更新一些东西;)
    • 顺便问一下,即使设置了"window": { "show":false},您知道什么会导致nwjs 闪屏出现(在Windows 上)吗? - 如果您愿意,我可以单独询问
    • 闪屏是什么意思?
    猜你喜欢
    • 2017-12-10
    • 2017-03-21
    • 2017-07-08
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2015-03-06
    相关资源
    最近更新 更多