In a sandbox I've created a custom object with some fields. In Lightning, I've created some Search Layouts for different community profiles. I've noticed that the metadata looks like this:
<profileSearchLayouts>
<fields>NAME</fields>
<fields>RECORDTYPE</fields>
<fields>00N1k000002quqz</fields>
<fields>CREATED_DATE</fields>
<profileName>MyCustom Community User</profileName>
</profileSearchLayouts>
Where 00N1k000002quqz
is actually a custom field in the object.
When I try to deploy the whole object to production, I'm getting an error
ProfileSearchLayoutsFields 00N1k000002quqz not found
I think this because when the fields are created in production, they have different IDs.
Does anyone know why IDs are used instead of the API names? I used Developer Workbench at API v. 48 to retrieve the sandbox metadata for deployment.