在沙盒环境中运行 Electron Helper 失败

Кън*_*аев 5 macos helper codesign appstore-sandbox electron

我在向苹果商店提交电子应用程序时遇到问题

\n\n
ERROR ITMS-90296: "App sandbox not enabled. The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list: [( "com.smarterback.desktop.pkg/Payload/SmarterBack.app/Contents/Frameworks/SmarterBack Helper EH.app/Contents/MacOS/SmarterBack Helper EH", "com.smarterback.desktop.pkg/Payload/SmarterBack.app/Contents/Frameworks/SmarterBack Helper NP.app/Contents/MacOS/SmarterBack Helper NP", "com.smarterback.desktop.pkg/Payload/SmarterBack.app/Contents/Frameworks/SmarterBack Helper.app/Contents/MacOS/SmarterBack Helper", "com.smarterback.desktop.pkg/Payload/SmarterBack.app/Contents/MacOS/SmarterBack" )] Refer to App Sandbox page at https://developer.apple.com/devcenter/mac/app-sandbox/ for more information on sandboxing your app."\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我更改了我的 .plist 文件以启用沙箱,并且提交一切顺利,但是该修复还有另一个问题,现在我的应用程序不想启动,因为它无法找到\xe2\x80\x9cSmarterBack 助手\xe2\x80\x9d

\n\n
[8801:0907/140725.080936:FATAL:atom_main_delegate_mac.mm(50)] Unable to find helper app\n0   Electron Framework                  0x000000010c4fdde3 _ZN9brightray12MainDelegate24OverrideChildProcessPathEv + 836531\n1   Electron Framework                  0x000000010c4d3297 _ZN9brightray12MainDelegate24OverrideChildProcessPathEv + 661607\n2   Electron Framework                  0x000000010c2c2169 _ZN4atom16AtomMainDelegate24OverrideChildProcessPathEv + 377\n3   Electron Framework                  0x000000010c4314fb _ZN9brightray12MainDelegate20BasicStartupCompleteEPi + 107\n4   Electron Framework                  0x000000010c2c17ed _ZN4atom16AtomMainDelegate20BasicStartupCompleteEPi + 237\n5   Electron Framework                  0x000000010c6a7311 _ZN9brightray12MainDelegate24OverrideChildProcessPathEv + 2578657\n6   Electron Framework                  0x000000010c6a6bde _ZN9brightray12MainDelegate24OverrideChildProcessPathEv + 2576814\n7   Electron Framework                  0x000000010c2be747 AtomMain + 71\n8   SmarterBack Helper                  0x000000010c2b6f26 main + 38\n9   libdyld.dylib                       0x00007fff9a371235 start + 1\n10  ???                                 0x0000000000000010 0x0 + 16\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的孩子.plist

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0">\n  <dict>\n    <key>com.apple.security.app-sandbox</key>\n    <true/>\n    <key>com.apple.security.inherit</key>\n    <true/>\n    <key>com.apple.security.temporary-exception.files.absolute-path.read-write</key>\n    <true/>\n  </dict>\n</plist>\n
Run Code Online (Sandbox Code Playgroud)\n\n

父级.plist

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0">\n  <dict>\n    <key>com.apple.security.inherit</key>\n    <true/>\n    <key>com.apple.security.app-sandbox</key>\n    <true/>\n    <key>com.apple.security.application-groups</key>\n    <string>com.smarterback.desktop</string>\n  </dict>\n</plist>\n
Run Code Online (Sandbox Code Playgroud)\n\n

最后是我的标志脚本

\n\n
#!/bin/bash\n\n# Name of your app.\nAPP="SmarterBack"\n# The path of your app to sign.\nAPP_PATH="release-builds/SmarterBack-mas-x64/SmarterBack.app"\n# The path to the location you want to put the signed package.\nRESULT_PATH="/Users/katerina/Desktop/$APP.pkg"\n# The name of certificates you requested.\nAPP_KEY="3rd Party Mac Developer Application: JENGO LLC (63UV74H5Q5)"\nINSTALLER_KEY="3rd Party Mac Developer Installer: JENGO LLC (63UV74H5Q5)"\n# The path of your plist files.\nCHILD_PLIST="child.plist"\nPARENT_PLIST="parent.plist"\n\nFRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks"\n\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Electron Framework"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libnode.dylib"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework"\n\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper.app/Contents/MacOS/$APP Helper"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper.app/"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper EH.app/Contents/MacOS/$APP Helper EH"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper EH.app/"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper NP.app/Contents/MacOS/$APP Helper NP"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper NP.app/"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$APP_PATH/Contents/MacOS/$APP"\nsudo codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$APP_PATH/Contents/Info.plist"\nsudo codesign -s "$APP_KEY" -f --entitlements "$PARENT_PLIST" "$APP_PATH"\n\ncodesign --verify --deep --display --verbose=4 "$APP_PATH"\n\nsudo productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RESULT_PATH"\n
Run Code Online (Sandbox Code Playgroud)\n\n

据我了解,我必须签署所有文件并启用沙箱,但是当我启动我的应用程序时,我会看到白框,其中没有任何内容,因为应用程序无法找到帮助程序。以前有人遇到过这个问题吗?

\n