According to this guide.
Now we can use code below to sign a safe transaction.
const txHash = await sdk.getTransactionHash(safeTransaction);
const signature = await sdk.signTransactionHash(txHash);
safeTransaction.addSignature(signature);
Seems it signs a hash string with metamask, and metamask will give warning below
Signing this message can be dangerous. This signature could potentially perform any operation on your account's behalf, including granting complete control of your account and all of its assets to the requesting site. Only sign this message if you know what you're doing or completely trust the requesting site
From gnosis safe app behavior, signing with eip-712 seems more reasonable.
Is there any workaround to sign with eip-712 using safe-core-sdk?