Ответ 1
[edit]: теперь безопасно обновляться до Xcode 9 (и Swift 3.2 или Swift 4) для выпуска на iTunesConnect.
[следует исходное сообщение (когда Xcode 9 был только бета-версией)]
iTunes Connect требует, чтобы приложения AppStore выполнялись со стабильной версией Xcode, поэтому нет, вы еще не можете безопасно обновить версию для выпуска.
В настоящее время в период с июня по июль, август, начало сентября 2017 года вы можете использовать большинство (но не всех) версий Xcode между 6.0.1 и 8.3.3 для отправки в AppStore.
Вероятно, начало сентября 2017 года будет открыто к материалам с Xcode 9. И я уверен, что примерно в январе 2018 года поддержка Xcode 6 будет удалена, сохраняя только диапазон Xcode7-Xcode9.
Это не влияет на TestFlight: вы можете уже отправлять тестовые сборки из Xcode 9 beta в TestFlight.
Так что просто держите несколько установок Xcode, переименовав приложение в конце концов, чтобы вы всегда сохраняли стабильную версию.
И не обновляйте свой код до Swift 4, используя специальную инструментальную цепочку для отправки в Xcode 8: iTunes Connect принимает только для отправки Swift toolchains изначально в комплекте с Xcode, который вы используете. Тем не менее, вы можете в конечном итоге написать код, например:
#if swift(>=3.2)
// for Xcode 9 beta
#else
// for Xcode 8 and release on AppStore
#endif