When I update corda contract app I got the error
java.lang.IllegalArgumentException: An attachment has been explicitly set for contract com.fna.contracts.contract.InvoiceContract in the transaction builder which conflicts with the HashConstraint of a state.
And about data in vault I found contract type is "HashAttachmentConstraint".but in dev env is "Signature Constraints". Can I change HashAttachmentConstraint to Signature Constraints in production env
Looking at the image, it is clear that you have some states which use HashConstraint. I would recommend you to follow the below steps and perform a migration of HashConstraint States to Signature Constraint.
You can refer to a sample that does this here.
Take a look at this blog to read more on this topic.
Finally, you can also take a look at a video which shows how to do the same.
You can find more information on contract migration in docs as well.