I’m converting an App to OSX target.
Im using ApplicationLoader app, and while sending the app I’m having some issues.
I’ve been trying to simply zip the .app file, but I got :
ERROR ITMS-4064: “File extension of file ‘MYAPP.app.zip’ is invalid for this software; use ‘pkg’ instead.” at SoftwareAssets/PreReleaseSoftwareAsset
So I tried to package the app with signing using :
productbuild --component MYAPP.app/ /Applications --sign “…key…” --product MYAPP.app/Contents/Info.plist MYAPP.pkg
But I’m getting the following error:
ERROR ITMS-90296: "App sandbox not enabled. The following executables must include the “com.apple.security.app-sandbox…”
The thing is that the entitlements.plist file does exist with that sandboxing node… (default openfl template).
Is anyone here able to tell me what is happening? My guess would be an apple update, but I cannot find any information so far.
If I try to remove the entitlements.plist file from the app container and run the following command:
codesign --entitlements entitlements.plist -v -f -s “…app signing key” MYAPP.app
MYAPP.app: code object is not signed at all
In subcomponent: my/path/MYAPP.app/Contents/MacOS/lime.ndll
I just saw the --deep argument for codesign which seems to do what I need here
I’d be really interested in supporting this in the Lime tools if a
<certificate /> is defined, could you help me understand what we need to call?
I managed to submit my app right after my last edit.
So I guess both commands are enough to validate the app.
There are 2 differents certificates for osx apps, one to use with codesign, which is a “Mac Developer Application” key.
The call of codedesign should use the “Mac Developer Installer” key.
So to sum up, put for example the entitlements.plist file in the same level as the MYAPP.app
codesign --entitlements entitlements.plist -v -f -s “3rd Party Mac Developer Application xxxx” MYAPP.app
productbuild --component MYAPP.app/ /Applications --sign “3rd Party Mac Developer Installerxxxx” --product MYAPP.app/Contents/Info.plist MYAPP.pkg
/Applications is important here, since it defines the defaut installation folder (need to be specified from what I read)
Then the MYAPP.pkg can be sent to App Store through the “Application Loader” Apple App.
Hope that helps!