Open papley opened 4 years ago
Hey @papley, thanks for the report. Do you think you can share a sample package so that we can recreate the issue on our end and debug it?
Now that there's a verbose logging option as of 13 days ago (commit 0d576496070bb2d87974ee08758d569dad9faaab), I'm happy.
I use this in my Fastfile and it provides the information I need:
notarize(package: '
It could be taken a step further and extract and present the error from the returned XML, so we don't have to turn on logging to see what went wrong:
<?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">
<key>userInfo</key>
<key>NSLocalizedDescription</key>
<string>/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework</string>
<key>tool-version</key>
<string>4.00.1181</string>
</dict>
</plist>
It seems that apple requires new contracts every few weeks, so such errors are well worth surfacing.
If you want to test it, just turn ensure you don't have a valid contract for the account in questions.
Just run into the same issue. A detailed error message could have saved lots of debugging time. Like @papley suggests, printing the stderr output instead of the generic Shell command exited with exit status 24 instead of 0.
would be enough. This isn't project dependent, so, there's nothing you can reproduce unless have an Apple Developer contract that expired or needs signing.
Running the plugin locally or under Travis, instead of a comprehensible error message, I got the stack trace at the bottom here. The underlying error was being provided by the xml response from Apple, shown just below, but the xml wasn't passed along, nor was the localized error description.
In order to get to the error, I had to modify my local copy of the plugin and get it to print out the arguments which were being passed to xcrun altool:
then run the command locally and view the output. It would really be better to pass along the error, instead of generating a stack dump.
stack dump: