未密封的内容存在于嵌入式框架的根目录中

时间:2017-07-19 12:51:49

标签: mac-app-store nwjs

当我尝试签署nwjs框架

时,我正面临这个问题
codesign -f -v --deep -s '3rd Party Mac Developer Application: Company Name. (XXXXXXXXX)' --entitlements Child.plist hello.app/Contents/Versions/59.0.3071.115/nwjs\ Framework.framework

任何人都可以建议我该怎么做

3 个答案:

答案 0 :(得分:2)

我试过了:

请勿更改任何其他 info.plist ,但下面提到的应用文件除外,错误消失了。

  • Helper.app
  • app_mode_loader.app
  • nwjs.app [主要应用]

在签署框架之前也要

codesign -f -v --deep -s '3rd Party Mac Developer Application: Company Name. (XXXXXXXXX)' --entitlements Child.plist hello.app/Contents/Versions/59.0.3071.115/nwjs\ Framework.framework/Versions/A/nwjs\ Framework

然后

codesign -f -v --deep -s '3rd Party Mac Developer Application: Company Name. (XXXXXXXXX)' --entitlements Child.plist hello.app/Contents/Versions/59.0.3071.115/nwjs\ Framework.framework

答案 1 :(得分:1)

我尝试签名我的nwjs应用程序时遇到了同样的问题,

“ Contents / Versions / 67.0.3396.87 / nwjs Framework.framework:嵌入式框架的根目录中存在未密封的内容”

我通过执行以下步骤解决了这个问题:

  1. 将Versions / 67.0.3396.87 / nwjsFramework.framework / libnode.dylib 移动到位于Versions / 67.0.3396.87 / nwjsFramework.framework / Versions / A / libnode.dylib < / strong>。
  2. 在命令行上回到Versions / 67.0.3396.87 / nwjsFramework.framework。
  3. 输入 ln -s Versions / A / libnode.dylib
  4. 此后再次尝试签名。

据我了解,嵌入式框架文件夹中的某些文件应位于文件夹内,以便能够对代码进行签名。因此,上述步骤将文件移动到所需的文件夹,然后第3步为我们移动的文件创建一个符号链接文件夹。

这对我有用,希望它可以帮助您解决问题或无论谁阅读。

答案 2 :(得分:0)

我制作了一个应该帮助你的小脚本。文件夹60.0.3112.113因版本而异。

xattr对于删除不允许的内容非常重要 还要小心你的可执行文件名称

app="yourapp.app"
identity="Developer ID Application: Yourname...."

echo "### removing unnecessary files"
rm -f "$app/Icon^M" #remove if exists
rm -r -f "$app/.idea" #remove if exists
xattr -cr "$app" #remove all unallowed files

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/timeBro Helper.app/Contents/MacOS/timeBro Helper"
codesign --force --verify --sign "$identity" "$app/Contents/Versions/60.0.3112.113/timeBro 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/yourapp" #be careful here should be the exact name of your executably

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

echo "### verifying signature"
codesign -vv -d "$app"