It is a known bug, hopefully fixed soon, but in general, obtaining a permanent ID is sufficient, provided you do so before you save the data in the first child, and you only include the inserted objects:
[moc obtainPermanentIDsForObjects:moc.insertedObjects.allObjects error:&error]
In some complex cases, it is better to get a permanent ID as soon as you create the instance, especially if you have complex relationships.
How and when are you calling obtainPermanentIDsForObjects
?
I do not follow the part about the app crashing. Maybe a better explanation would help.