Walletwasabi: App store distribution

Created on 4 Feb 2020  路  5Comments  路  Source: zkSNACKs/WalletWasabi

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

featurenhancement

Most helpful comment

If you need that library for some reason, you can strip i386 code with lipo <binary> -remove i386 -output <new_binary>

All 5 comments

@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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

2pac1 picture 2pac1  路  3Comments

trading2835 picture trading2835  路  3Comments

kenny47 picture kenny47  路  3Comments

molnard picture molnard  路  3Comments

yahiheb picture yahiheb  路  3Comments