nw.js 签署申请 OSX
nw.js sign application OSX
我想签署我的应用程序以根据安全性摆脱应用程序阻止。我按照官方 NW.js
文档 Mac-App-Store-(MAS)-Submission-Guideline 生成的证书,打包我的应用程序,签名。但是签名后,我的应用程序 close 在启动后立即启动。当我尝试通过模板加载器将这个签名的应用上传到应用商店时,我得到:
我已经在 github 上提问了,但还没有得到任何回复。如果有人在 mac os 上使用过 nw.js,请帮忙。
您可以在不使用 xcode 的情况下对应用进行代码签名。下面的 bash 脚本允许您这样做。您需要您的开发人员 ID 应用程序,您可以在您的钥匙串访问应用程序中找到它。
您必须将版本后的目录更改为您拥有的目录,具体取决于您使用的 nw.js 版本
identity="Developer ID Application: youridentiy... (some number)"
app="pathToYourApp.app"
rm -f "$app/Icon^M"
rm -r -f "$app/.idea"
echo "### signing libraries"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/Libraries/exif.so"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/libffmpeg.dylib"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/libnode.dylib"
echo "### signing frameworks"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/nwjs Framework"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/Helpers/crashpad_handler"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Helper.app/Contents/MacOS/nwjs Helper"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Helper.app/"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/helpers/crashpad_handler"
echo "### sing osx folder"
codesign --force --verify --sign "$identity" "$app/Contents/MacOS/nwjs"
echo "### signing app"
codesign --force --verify --sign "$identity" "$app"
echo "### verifying signature"
codesign -vv -d "$app"
终于在这里找到了答案:
https://github.com/nwjs/nw.js/issues/6338
因此,要签署您的应用,您需要:
- 使用 nw-builder
构建您的应用
遵循 MAS 指南
http://docs.nwjs.io/en/latest/For%20Users/Advanced/Support%20for%20Mac%20App%20Store/
在entitlements.plist
中设置Sandbox=Yes
在 运行 mas.py 修复 Unleashed 内容的脚本之前:
# Set PATH_TO_YOUR_APP variable first
VERSION_NUMBER=`ls "${PATH_TO_YOUR_APP}/Contents/Versions/"`
NWJS_FRAMEWORK="$PATH_TO_YOUR_APP/Contents/Versions/$VERSION_NUMBER/nwjs Framework.framework"
LIBNODE_DYLIB="libnode.dylib"
LIBNODE_LINK_TO="Versions/A/$LIBNODE_DYLIB"
echo fixing nwjs Framework unsealed content
pushd "$NWJS_FRAMEWORK"
mv "$LIBNODE_DYLIB" "$LIBNODE_LINK_TO"
ln -s "$LIBNODE_LINK_TO"
popd
您将在此主题中找到所有详细信息:https://github.com/nwjs/nw.js/issues/6338
希望 nw 团队解决这个问题
我想签署我的应用程序以根据安全性摆脱应用程序阻止。我按照官方 NW.js
文档 Mac-App-Store-(MAS)-Submission-Guideline 生成的证书,打包我的应用程序,签名。但是签名后,我的应用程序 close 在启动后立即启动。当我尝试通过模板加载器将这个签名的应用上传到应用商店时,我得到:
我已经在 github 上提问了,但还没有得到任何回复。如果有人在 mac os 上使用过 nw.js,请帮忙。
您可以在不使用 xcode 的情况下对应用进行代码签名。下面的 bash 脚本允许您这样做。您需要您的开发人员 ID 应用程序,您可以在您的钥匙串访问应用程序中找到它。
您必须将版本后的目录更改为您拥有的目录,具体取决于您使用的 nw.js 版本
identity="Developer ID Application: youridentiy... (some number)"
app="pathToYourApp.app"
rm -f "$app/Icon^M"
rm -r -f "$app/.idea"
echo "### signing libraries"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/Libraries/exif.so"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/libffmpeg.dylib"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/libnode.dylib"
echo "### signing frameworks"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/nwjs Framework"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/Helpers/crashpad_handler"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Helper.app/Contents/MacOS/nwjs Helper"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Helper.app/"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/nwjs Framework.framework/helpers/crashpad_handler"
echo "### sing osx folder"
codesign --force --verify --sign "$identity" "$app/Contents/MacOS/nwjs"
echo "### signing app"
codesign --force --verify --sign "$identity" "$app"
echo "### verifying signature"
codesign -vv -d "$app"
终于在这里找到了答案: https://github.com/nwjs/nw.js/issues/6338
因此,要签署您的应用,您需要:
- 使用 nw-builder 构建您的应用
遵循 MAS 指南 http://docs.nwjs.io/en/latest/For%20Users/Advanced/Support%20for%20Mac%20App%20Store/
在entitlements.plist
中设置
Sandbox=Yes
在 运行 mas.py 修复 Unleashed 内容的脚本之前:
# Set PATH_TO_YOUR_APP variable first
VERSION_NUMBER=`ls "${PATH_TO_YOUR_APP}/Contents/Versions/"`
NWJS_FRAMEWORK="$PATH_TO_YOUR_APP/Contents/Versions/$VERSION_NUMBER/nwjs Framework.framework"
LIBNODE_DYLIB="libnode.dylib"
LIBNODE_LINK_TO="Versions/A/$LIBNODE_DYLIB"
echo fixing nwjs Framework unsealed content
pushd "$NWJS_FRAMEWORK"
mv "$LIBNODE_DYLIB" "$LIBNODE_LINK_TO"
ln -s "$LIBNODE_LINK_TO"
popd
您将在此主题中找到所有详细信息:https://github.com/nwjs/nw.js/issues/6338
希望 nw 团队解决这个问题