Hi,
Recently, we purchased Apple Developer Program to codesign our *.app.
But while signing our *.app it throwing a below error.
λ ~/Documents/creoox/FreeCAD-AppImage/conda/osx_dev/APP/ master* sudo codesign --deep --force -s "Mac Developer: Amritpal Singh (KC65BTVN4Z)" ./HyperBIM-v0.36.app
Warning: unable to build chain to self-signed root for signer "Mac Developer: Amritpal Singh (KC65BTVN4Z)"
./HyperBIM-v0.36.app: errSecInternalComponent
λ ~/Documents/creoox/FreeCAD-AppImage/conda/osx_dev/APP/ master* sudo codesign --verify --verbose ./HyperBIM-v0.36.app
./HyperBIM-v0.36.app: code object is not signed at all
In given below link, there is full detail of error and which steps I followed.
bit.ly/2HLx2TY <-- Link
Looking forward to hearing from you!
thanks,
Amritpal Singh
Post
Replies
Boosts
Views
Activity
I have MacOS app (*.app) which is builded without using Xcode. I am publishing this app at Apple Store and I found first we need to validate an app and then this .pkg will upload to App Store.
I using xcrun tool validate and publish my .pkg package.
https://help.apple.com/app-store-connect/#/devb1c185036
xcrun altool --validate-app	-t osx -f ./HyperBIM-v0.36.pkg	-u <my_email_address> -p <app_specific_password>
2020-11-06 00:43:54.950 altool[2841:122130] * Error: Unable to validate archive './HyperBIM-v0.36.pkg'.
2020-11-06 00:43:54.950 altool[2841:122130] * Error: code -20008 (Unable to validate your application. The Info.plist indicates a Mac app, but submitting an ipa.)
Here the Info.plist file:
<?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>CFBundleExecutable</key>
<string>HyperBIM-v0.36</string>
<key>CFBundleGetInfoString</key>
<string></string>
<key>CFBundleIconFile</key>
<string>hyperbim.icns</string>
<key>CFBundleIdentifier</key>
<string>CreooxAG</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string></string>
<key>CFBundleName</key>
<string>HyperBIM-v0.36-22517</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.36</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>0.36-22517</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeExtensions</key>
<array>
<string>FCStd</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>freecad-doc.icns</string>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeExtensions</key>
<array>
<string>HYPcx</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>hyperbim-doc.icns</string>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
</array>
</dict>
</plist>
But while running .pkg using Installer, it works fine. The app successfully installed and works fine.
Could anybody please help me why xcrun tool throwing errors and how to fix it? What is the problem with Info.plist?
Thanks
I have a *.pkg file which is built by using productbuild command. (productbuild --component <path>/HyperBIM-v0.36.app /Applications/ ./HyperBIM-v0.36.pkg)
This HyperBIM-v0.6.app is signed by using codesign command. (codesign --deep -s "Apple Development: Amritpal Singh (KC65BTVN4Z)" ./HyperBIM-v0.36.app)
Now, to sign generated HyperBIM-v0.36.pkg file I run below command:
$ productsign --sign "Apple Development: Amritpal Singh (KC65BTVN4Z)" --keychain /Users/ambu/Library/Keychains/login.keychain-db ./HyperBIM-v0.36.pkg ./HyperBIM-v0.36-Signed.pkg
productsign: error: Could not find appropriate signing identity for “Apple Development: Amritpal Singh (KC65BTVN4Z)” in keychain at “/Users/ambu/Library/Keychains/login.keychain-db”. An installer signing identity (not an application signing identity) is required for signing flat-style products.
Here is identities present login.keychain-db:
$ security find-identity /Users/ambu/Library/Keychains/login.keychain-db
Policy: X.509 Basic
	Matching identities
	1) AFF80D6344B85AC51D5A44443B9AA5FF7B09A824 "Apple Development: Amritpal Singh (KC65BTVN4Z)"
		 1 identities found
	Valid identities only
	1) AFF80D6344B85AC51D5A44443B9AA5FF7B09A824 "Apple Development: Amritpal Singh (KC65BTVN4Z)"
		 1 valid identities found
But I can sign my HyperBIM-v0.36.pkg using codesign command (codesign --deep -s "Apple Development: Amritpal Singh (KC65BTVN4Z)" ./HyperBIM-v0.36.pkg)
Is there any difference between sign *.pkg using codesign and productsign tool? I have to publish my *pkg to App Store.
Why productsign tool unable to find signing identity as identity is present in login.keychain-db?
Thanks