代码之家  ›  专栏  ›  技术社区  ›  Mateusz Romaniuk

由于com.apple,无法使用电子生成器签署代码。FinderInfo和com.apple.fileprovider.fpfs#P

  •  1
  • Mateusz Romaniuk  · 技术社区  · 2 年前

    我正在为一个Electron应用程序签名,但由于com.apple的存在,codesign命令失败了。我的应用程序包中的文件的FinderInfo和com.apple.fileprovider.fpfs#P扩展属性。我已经验证了我的证书,它们是可以的,但由于这些属性,电子生成器无法对应用程序进行签名。

    有人有类似的问题吗?

    这是完整的电子生成器错误

    > electron-builder -m
    
      • electron-builder  version=24.6.4 os=23.0.0
      • loaded configuration  file=package.json ("build" field)
      • loaded parent configuration  preset=react-cra
      • writing effective config  file=dist/builder-effective-config.yaml
      • packaging       platform=darwin arch=arm64 electron=27.0.4 appOutDir=dist/mac-arm64
      • signing         file=dist/mac-arm64/Ask.app identityName= *** identityHash=*** provisioningProfile=none
      ⨯ Command failed: codesign --sign *** --force --timestamp --options runtime --entitlements entitlements.plist /Users/mateusz/Desktop/Projects/screen-question-app/frontend/dist/mac-arm64/Ask.app/Contents/Frameworks/Ask Helper (GPU).app/Contents/MacOS/Ask Helper (GPU)
    /Users/mateusz/Desktop/Projects/screen-question-app/frontend/dist/mac-arm64/Ask.app/Contents/Frameworks/Ask Helper (GPU).app/Contents/MacOS/Ask Helper (GPU): replacing existing signature
    /Users/mateusz/Desktop/Projects/screen-question-app/frontend/dist/mac-arm64/Ask.app/Contents/Frameworks/Ask Helper (GPU).app/Contents/MacOS/Ask Helper (GPU): resource fork, Finder information, or similar detritus not allowed
      failedTask=build stackTrace=Error: Command failed: codesign --sign *** --force --timestamp --options runtime --entitlements entitlements.plist /Users/mateusz/Desktop/Projects/screen-question-app/frontend/dist/mac-arm64/Ask.app/Contents/Frameworks/Ask Helper (GPU).app/Contents/MacOS/Ask Helper (GPU)
    /Users/mateusz/Desktop/Projects/screen-question-app/frontend/dist/mac-arm64/Ask.app/Contents/Frameworks/Ask Helper (GPU).app/Contents/MacOS/Ask Helper (GPU): replacing existing signature
    /Users/mateusz/Desktop/Projects/screen-question-app/frontend/dist/mac-arm64/Ask.app/Contents/Frameworks/Ask Helper (GPU).app/Contents/MacOS/Ask Helper (GPU): resource fork, Finder information, or similar detritus not allowed
    

    我曾尝试使用xattr-cr递归地删除这些属性,也尝试使用xaattr-d手动删除它们,但它们仍然存在。我无法确定为什么首先要创建这些属性。以下是当我尝试删除它们时会发生的情况:

    xattr -cr ./dist/mac-arm64/Ask.app
    xattr -l ./dist/mac-arm64/Ask.app/Contents/Frameworks/Electron Framework.framework
    

    输出仍然显示com.apple。存在FinderInfo和com.apple.fileprovider.fpfs#P属性。

    1 回复  |  直到 2 年前
        1
  •  5
  •   MaxLand    2 年前

    我们同时遇到了问题^^

    当我将MacO从蒙特利升级到索诺马时,出现了这个问题。

    这与icloud用来跟踪同步文件的“扩展属性”有关,这些属性显然出现在最近版本的MacO中,这篇文章让我了解了这一点: https://discussions.apple.com/thread/254036468

    使用苹果提供的命令实际上不可能删除它们: https://developer.apple.com/library/archive/qa/qa1940/_index.html

    解决方案 我找到的最简单的解决方案是将我的项目目录从与Icloud同步的文件中移除。在我的情况下,到我的用户目录。在这种情况下,签名时不再有问题,命令也不再为我的文件夹返回“扩展属性”列表:

    xattr-lr<path_to_app_bundle>