This is a memo issue for myself also a discussion opener for devs but everyone's thoughts are welcomed.
I managed to get Wasabi signed on macOs. The user will still get a message that the app was downloaded from github but it can be ran by clicking the open button (you do not need to do special setting in System/Security).
Now the next step is to get into App Store as "that is the safest distribution for macOs apps".
I started the procedure, however, first I need to finish the signing, so I will put my results here:
pkg file can be distributed so it has to be generated with:
productbuild --component "Wasabi Wallet.app" /Applications --sign "L233B2JQ68" --product "Wasabi Wallet.app/Contents/Info.plist" Wasabi.pkg
Then you have to validate the pkg with:
xcrun altool --validate-app -f Wasabi.pkg -t osx -u appleuser -p applepassword
I added to plist.info:
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
Errors I got:
Unsupported Architectures. Your executable contained the following disallowed architectures: '[i386 (in zksnacks.wasabiwallet.pkg/Payload/Wasabi Wallet.app/Contents/MacOS/libuv.dylib)]'. New apps submitted to the Mac App Store must support 64-bit starting January 2018, and Mac app updates and existing apps must support 64-bit starting June 2018., NSLocalizedFailureReason=App Store operation failed.
Next steps: https://help.apple.com/app-store-connect/#/devb1c185036
@danwalmsley libuv.dylib is used by Avalonia?
That I know of no, however it could be a dependency of skia or something @kekekeks any input on this?
libuv.dylib was used by Kestrel server prior to .NET Core 2.1. Since hosting web apps it's the "primary" use of .NET Core shipping this library is hardcoded somewhere in the SDK. It shouldn't be needed to run Avalonia-based apps unless you need to also host an ASP.NET Core app with legacy network backend in the same process for some reason.
If you need that library for some reason, you can strip i386 code with lipo <binary> -remove i386 -output <new_binary>
Thank you! It worked the error is gone.
Most helpful comment
If you need that library for some reason, you can strip
i386code withlipo <binary> -remove i386 -output <new_binary>