NOTE (2022-07-09): Xcode finally added this functionality in Xcode 14, please see release notes here:
New Features in Xcode 14 Beta 3
When editing code, the Edit > Duplicate menu item and its corresponding keyboard shortcut now duplicate the selected text — or the line that currently contains the insertion point, if no text is selected. (8614499) (FB5618491)
- 
Close Xcode 
- 
Open below directory in Finder with Cmnd + Shift + G 
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/
- 
Open IDETextKeyBindingSet.plistwith a text editor.
- 
Add this in: 
<key>Duplication</key>
<dict>
    <key>Duplicate Current Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, moveToBeginningOfLine:, yank:</string>
    <key>Duplicate Lines</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
    <key>Delete Line</key>
    <string>selectLine:, deleteBackward:</string>
</dict>- 
Open Xcode and go to Xcode preferences->Key Bindings->Texttab -> Scroll till you seeDuplication
- 
Click on Duplicate Current Line, add a shortcut for it, eg. Cmnd + D (remove any other bindings for this key)
Thanks!!