After looking into this further, is it possible that vocabulary registered with INVocabulary will appear as <null> instead of the vocabulary when on development devices?
For example, on our main development device, we have a playlist registered via INVocabulary named "Country Bangers". When using the phrase "Hey Siri, play the playlist Country Bangers in ", we receive the following mediaSearch:
<INMediaSearch: 0x101c587e0> {
reference = 0;
mediaType = 5;
sortOrder = 0;
albumName = <null>;
mediaName = <null>;
genreNames = (
);
artistName = <null>;
moodNames = (
);
releaseDate = <null>;
mediaIdentifier = <null>;
}
However, if we use the same phrase on a different test device without that playlist name in its registered vocabulary, we receive a mediaSearch that is, in fact, populated with the playlist name:
<INMediaSearch: 0x126054780> {
reference = 0;
mediaType = 5;
sortOrder = 0;
albumName = <null>;
mediaName = country bangers;
genreNames = (
);
artistName = <null>;
moodNames = (
);
releaseDate = <null>;
mediaIdentifier = <null>;
}