MacOs App Store pkg Productbuild -- 添加 属性 到产品列表(没有 Xcode)

MacOs App Store pkg Productbuild -- add a property to product list (without Xcode)

尊敬的 macOS Productbuild 和 pkgbuild 专家(without/not 使用 Xcode)

这是我经历了产品构建和 pkgbuild 的大量学习之旅后的最后一个障碍

我从 Appstore 收到错误消息

在我的 App/Contents/Info.Plist 中有

`<key>LSMinimumSystemVersion</key>
  <string>10.9</string>`

现在,当我按照以下顺序构建包时

 `pkgbuild --analyze --root "./pkgbuild/app_path/" app.plist
    
    pkgbuild --root "${ROOTFOLDER}" --identifier "${IDENTIFIER}" --version ${VERSION} --    component-plist ./app.plist  --install-location "/Applications" \
     --sign "${IDENTITY}" \
     "${PKGNAME}.pkg"
    
    #productbuild --synthesize --package Final.pkg distribution.xml
    
    productbuild --distribution ./distribution.xml --resources ~/Desktop/resources --identifier com.myorg.uniqueid --version ${VERSION} --sign "${IDENTITY}" --product ~/Desktop/modInfo.plist outputFinal.pkg`

问题我在哪里将产品定义属性列表中的最低系统版本none合并到10.9?我需要在什么文件中插入什么,如何插入?

如能得到指点,不胜感激

提前致谢

您需要包含一个 product_definition.plist 的最低 os 版本。它应该类似于:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>os</key>
  <array>
    <string>10.9.0</string>
  </array>
</dict>
</plist>

您的 productbuild 命令将变为:

productbuild \
    --distribution ./distribution.xml \
    --resources ~/Desktop/resources \
    --identifier com.myorg.uniqueid \
    --version ${VERSION} \
    --sign "${IDENTITY}" \
    --productbuild --product ~/Desktop/product_definition.plist --component build/Release/Your.app /Applications outputFinal.pkg

所以基本上我们已经将您的 modInfo.plist 更改为正确的名称 (product_definition.plist) 并包含了处理最低 os 版本的密钥。

为了结束这个话题,为了帮助以后查询这个主题,这里有一个总结

  1. productbuild 与两个选项 --distribution distribution.xml 和 --product product_definition.plist 不能一起工作——我使用的是 10.15.7 Catalina MacOS;忽略产品定义

  2. 最终将 --component 组件路径与 --product product_definition.plist 一起使用以被 Appstore 接受

  3. 从第2步开始,我现在没有distribution.xml,我失去了license/eula能力

我决定在我的应用程序本身的菜单下解决 Eula。

非常感谢 I'L'I 的耐心指点

AppStore 的麻烦太多,文档很少,运行 循环不值得花时间。谢谢苹果!