Я обновил приложение iOS до Swift 3.0 в бета-версии Xcode 8.0 (8S128d). Я подумал, что все готово и загружено в iTunes Connect. Когда я нажал «Отправить для просмотра», он дал мне список из 26 ошибок, по одному для каждой встроенной инфраструктуры, например:
Недопустимое значение sdk. Значение, предоставленное для части sdk объекта LC_VERSION_MIN_IPHONEOS в MyApp.app/Frameworks/libswiftFoundation.dylib, составляет 10,0, что больше максимально допустимого значения 9.3.2.
- Ошибки компоновщика с библиотекой AWS
- swift 3 Ошибка типа 'Any'
- Файл iOS .app больше, чем общая папка проекта Xcode
- Как внедрить фреймворк без копирования в проект
- Xcode: отсутствует ошибка требуемого модуля
И одна окончательная ошибка:
Новые приложения и обновления приложений должны быть созданы с общедоступными (GM) версиями Xcode 6 или более поздних версий, OS X и iOS SDK. Не отправляйте приложения, созданные с помощью бета-версии, включая бета-версии OS X.
Хорошо, это было бы полезно знать, прежде чем я обновил свое приложение! Как я могу отправить это приложение?
Я заметил об изменении проекта Base SDK от iOS 10.0 до iOS 9.3, скопировав базовый SDK из Xcode 7.3.1 в Xcode 8:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk
А затем Base SDK
настройку Base SDK
настройках сборки Xcode 8. Однако он не распознал новый SDK (см. Этот вопрос) , даже когда я ввел его вручную и скомпилировал его с iOS 10.0. Есть ли способ скомпилировать старый SDK? Или мне нужно отменить мой код на Swift 2?
Вот быстрое решение :
Не используйте бета-версии Xcode для отправки приложений для выпуска – это бета-версия по какой-либо причине и не должна использоваться с производственным кодом.
Приложения, созданные с использованием бета-версий Xcode или созданных для бета-версий операционных систем, не будут приниматься в App Store и Mac App Store. Приложения, которые вы отправляете, должны быть разработаны с использованием последней версии Xcode из Mac App Store и должны быть созданы для общедоступных версий iOS, OS X и watchOS – за исключением случаев, когда доступны семена GM. Когда GM Seed of Xcode становится доступным, используйте его, чтобы разработать приложение для отправки. Когда GM семена iOS, OS X или watchOS станут доступными, создайте приложение для этих версий.
↳ https://developer.apple.com/support/pre-release-software/
Re [2]: Хорошо, это было бы полезно знать, прежде чем я обновил свое приложение! Как я могу отправить это приложение?
Используйте текущий или выпуск GM Xcode для создания и отправки вашего приложения.
К сожалению, не похоже, что есть способ изменить версию SDK в Xcode Beta; это может быть либо ошибка, либо просто тот факт, что Apple хочет, чтобы вы использовали бета-версию SDK вместе с бета-программным обеспечением. Как сказал @ l'L'l, нужно открыть приложение в стабильном Xcode, чтобы App Store согласился с представлением.
Однако я обнаружил, что переориентация проекта на Swift 2 не была чрезмерно сложной. Мне потребовался час, чтобы «понизить» весь проект, вручную исправив все ошибки в Xcode 7.3. В случае, если это поможет любому, основные шаблоны, которые я заметил во время процесса:
label.isOn
to label.on
NS
перед несколькими именами объектов, такими как NSData и NSTimer, которые стали Data и Timer в Swift 3 соответственно