I'm trying to upload my MacOS app to Appstore via command line, and after solving some signing and certificates issues, I'm a bit stuck on package validation.
After exporting the archive to a .pkg file, I run the following command:
xcrun altool --validate-app -f ${filename}.pkg -t macOS -u $username -p $password --output-format json
And then I get a message with this feedback:
Could not find the main bundle or the Info.plist is missing a CFBundleIdentifier in ‘MyApp.pkg’.
The problem is my Info.plist looks valid, and it does have a CFBundleIdentifier
key. Besides that, uploading to Appstore through Xcode organizer works fine, so I don't really know what I'm missing here.
So, I have the following doubts:
- Am I in the right direction to upload the app to the store via command line?
- Do I really needs this
--validate-app
step? - Is it correct to try to validate a
pkg
file?
Please let me know if there is more information I could give.
Any help would be appreciated.
After reaching to this answer on StackOverflow I could figure out what was happening. The problem was in xcodebuild -exportArchive
command, where an exportPath
is required. I was passing the whole package name to this argument, like this:
xcodebuild -exportArchive [...] -exportPath mypackage.pkg
That would create a folder named mypackage.pkg
and then export the actual .pkg
inside of it. So in the next command where I validate the app, I was actually validating the folder that contains the package, not the package itself.
Finally, to solve the problem I replaced the command above by the following:
xcodebuild -exportArchive [...] -exportPath .