xcode를 사용하지 않으므로 python 2.7을 사용하여 osx 10.9에서 응용 프로그램을 만들었습니다. 나는 부호로 그것을 서명했다 그러나 spctl 명령으로 검사 될 때, 는 거절했다를 보여주고있다.osx에서 mac mac app에 서명하는 법
명령은 다음과 같습니다
codesign -s "3rd Party Mac Developer Application: Cloud Inc" -v -f /Applications/Cloud/logout.app/Contents/Frameworks/Python.framework/Versions/2.7
codesign -s "3rd Party Mac Developer Application: Cloud Inc" -v -f --entitlements /Users/Cloud/Desktop/app.entitlements /Applications/Cloud/logout.app/Contents/MacOS/python
codesign -s "3rd Party Mac Developer Application: Cloud Inc" -v -f --entitlements /Users/Cloud/Desktop/app.entitlements /Applications/Cloud/logout.app/Contents/MacOS/logout
codesign -s "3rd Party Mac Developer Application: Cloud Inc" -v -f --entitlements /Users/Cloud/Desktop/app.entitlements /Applications/Cloud/logout.app
spctl --assess --type execute /Applications/Cloud/logout.app
/Applications/Cloud/logout.app: rejected
내 의 Info.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>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>logout</string>
<key>CFBundleExecutable</key>
<string>logout</string>
<key>CFBundleIconFile</key>
<string>cc.icns</string>
<key>CFBundleIdentifier</key>
<string>com.cloud.macapp.logout</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>logout</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>4.4</string>
<key>CFBundleSignature</key>
<string>CC4B</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.reference</string>
<key>CFBundleVersion</key>
<string>4.4</string>
<key>LSHasLocalizedDisplayName</key>
<false/>
<key>NSAppleScriptEnabled</key>
<false/>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2014 Cloud, Inc.</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>PyMainFileNames</key>
<array>
<string>__boot__</string>
</array>
<key>PyOptions</key>
<dict>
<key>alias</key>
<false/>
<key>argv_emulation</key>
<false/>
<key>emulate_shell_environment</key>
<false/>
<key>no_chdir</key>
<false/>
<key>prefer_ppc</key>
<false/>
<key>site_packages</key>
<false/>
<key>use_faulthandler</key>
<false/>
<key>use_pythonpath</key>
<false/>
<key>verbose</key>
<false/>
</dict>
<key>PyResourcePackages</key>
<array>
</array>
<key>PyRuntimeLocations</key>
<array>
<string>@executable_path/../Frameworks/Python.framework/Versions/2.7/Python</string>
</array>
<key>PythonInfoDict</key>
<dict>
<key>PythonExecutable</key>
<string>/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python</string>
<key>PythonLongVersion</key>
<string>2.7.8 (default, Jul 7 2014, 20:30:57)
[GCC 4.2.1 (Apple Inc. build 5664)]</string>
<key>PythonShortVersion</key>
<string>2.7</string>
<key>py2app</key>
<dict>
<key>alias</key>
<false/>
<key>template</key>
<string>app</string>
<key>version</key>
<string>0.8</string>
</dict>
</dict>
</dict>
</plist>
그리고 app.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>
info.plist 및 app.entitlements 및 command를 확인하고 spctl을 사용하여 확인한 거부 된 문제를 해결할 수있는 몇 가지 방법을 제안하십시오.
답장을 보내 주셔서 감사합니다. "타사 Mac 개발자 응용 프로그램"Mac Appstore에 업로드하려는 서명 용으로 사용하고 있습니다. 거부 된 것이 있으므로 앱 스토어에 제출하기 위해 계속 진행해야합니다 (Apple이 거부 할 것으로 의심 됨) – imp
"제 3 자 .."인증서를 Apple에 보내려면 Apple에 서명해야합니다. 앱 스토어. – TheDarkKnight
예 "제 3 자 .."라고 노래하고 있습니다. 증명. 그러나 spctl은 거부되었다고 말하고 있습니다. 그렇다면이 거부 된 앱을 앱 스토어에 제출하거나 다른 작업을해야합니까? – imp