The components that are specific to the Mac, such as the GUI builder, are closed source. All the underlying tooling and technologies such as the LLVM compiler stack, Clang, etc are published by Apple as open source and widely used on other platforms.
Not only do you still have to hassle with Apple's clunky provisioning profiles, it only lasts for a week and you're almost guaranteed to get an error message because you reached the device limit with as much as one device.
What do you need to 'set manually' ? You check 'automatically manage signing' and select your team from the list (if you're in multiple teams) and it should Just Work™.
It's ridiculous apple still forces anyone who wants to publish to its platform to have a mac. Had to jump through ridiculous hoops to get automated builds for an iOS app working since our build farm is all Linux (of course).