gpt4 book ai didi

macos - 我对Mac OS X应用进行代码签名时,API调用无法运行

转载 作者:行者123 更新时间:2023-12-02 05:17:04 24 4
gpt4 key购买 nike

我正在尝试为Mac Store部署签署我的Mac OS X,但是当我签署 bundle 软件时,它不会进行网络通话。

该应用程序是使用Qt在cpp中开发的

PKG生成步骤

这是我对应用进行代码签名的脚本

将框架集成到二进制

macdeployqt MyAppName.app

检查一切正常
dsymutil MyAppName.app/Contents/MacOS/MyAppName -o MyAppName.app.dSYM

标志框架
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore 
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/Frameworks/QtGui.framework/Versions/5/QtGui
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/Frameworks/QtDBus.framework/Versions/5/QtDBus
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/Frameworks/QtNetwork.framework/Versions/5/QtNetwork
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/Frameworks/QtWidgets.framework/Versions/5/QtWidgets
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/PlugIns/bearer/libqcorewlanbearer.dylib
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/PlugIns/bearer/libqgenericbearer.dylib
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/PlugIns/imageformats/libq*
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/PlugIns/platforms/libqcocoa.dylib
codesign --entitlements ../myappame_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app/Contents/PlugIns/printsupport/libcocoaprintersupport.dylib

(直到这一步,应用程序运行良好)

登录 bundle 应用程序
codesign --deep --entitlements ../myappname_desktop/MyAppName.entitlements -s "3rd Party Mac Developer Application: MyAppName" MyAppName.app

生成PKG
productbuild --component MyAppName.app /Applications --sign "3rd Party Mac Developer Installer: MyAppName" MyAppName.pkg

MyAppName.entitlements
<?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>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>

MyAppName.plist
<?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>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>MyAppName</string>
<key>CFBundleIdentifier</key>
<string>com.myappname.desktop</string>
<key>CFBundleVersion</key>
<string>4</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>LSUIElement</key>
<string>1</string>
<key>ForAppStore</key>
<true/>
<key>LSApplicationCategoryType</key>
<string>public.app-category.productivity</string>

</dict>
</plist>

bundle 结构
MyAppName.app
└── Contents
├── Frameworks
│   ├── QtCore.framework
│   │   ├── QtCore -> Versions/Current/QtCore
│   │   ├── Resources -> Versions/Current/Resources
│   │   └── Versions
│   │   ├── 5
│   │   │   ├── QtCore
│   │   │   └── Resources
│   │   │   └── Info.plist
│   │   └── Current -> 5
│   ├── QtDBus.framework
│   │   ├── QtDBus -> Versions/Current/QtDBus
│   │   ├── Resources -> Versions/Current/Resources
│   │   └── Versions
│   │   ├── 5
│   │   │   ├── QtDBus
│   │   │   └── Resources
│   │   │   └── Info.plist
│   │   └── Current -> 5
│   ├── QtGui.framework
│   │   ├── QtGui -> Versions/Current/QtGui
│   │   ├── Resources -> Versions/Current/Resources
│   │   └── Versions
│   │   ├── 5
│   │   │   ├── QtGui
│   │   │   └── Resources
│   │   │   └── Info.plist
│   │   └── Current -> 5
│   ├── QtNetwork.framework
│   │   ├── QtNetwork -> Versions/Current/QtNetwork
│   │   ├── Resources -> Versions/Current/Resources
│   │   └── Versions
│   │   ├── 5
│   │   │   ├── QtNetwork
│   │   │   └── Resources
│   │   │   └── Info.plist
│   │   └── Current -> 5
│   ├── QtPrintSupport.framework
│   │   ├── QtPrintSupport -> Versions/Current/QtPrintSupport
│   │   ├── Resources -> Versions/Current/Resources
│   │   └── Versions
│   │   ├── 5
│   │   │   ├── QtPrintSupport
│   │   │   └── Resources
│   │   │   └── Info.plist
│   │   └── Current -> 5
│   └── QtWidgets.framework
│   ├── QtWidgets -> Versions/Current/QtWidgets
│   ├── Resources -> Versions/Current/Resources
│   └── Versions
│   ├── 5
│   │   ├── QtWidgets
│   │   └── Resources
│   │   └── Info.plist
│   └── Current -> 5
├── Info.plist
├── MacOS
│   └── Hightrack
├── PkgInfo
├── PlugIns
│   ├── bearer
│   │   ├── libqcorewlanbearer.dylib
│   │   └── libqgenericbearer.dylib
│   ├── imageformats
│   │   ├── libqdds.dylib
│   │   ├── libqgif.dylib
│   │   ├── libqicns.dylib
│   │   ├── libqico.dylib
│   │   ├── libqjp2.dylib
│   │   ├── libqjpeg.dylib
│   │   ├── libqmng.dylib
│   │   ├── libqtga.dylib
│   │   ├── libqtiff.dylib
│   │   ├── libqwbmp.dylib
│   │   └── libqwebp.dylib
│   ├── platforms
│   │   └── libqcocoa.dylib
│   └── printsupport
│   └── libcocoaprintersupport.dylib
└── Resources
├── empty.lproj
├── icon.icns
└── qt.conf

最佳答案

传出网络访问权限需要将com.apple.security.network.client权利添加到您的权利文件中。有关完整列表,请参见App Sandbox Entitlement Keys

关于macos - 我对Mac OS X应用进行代码签名时,API调用无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32379982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com