как сделать fastlane совместимым с iOS13

Я использую fastlane для упаковки своего приложения, я написал в своем приложении какой-то класс, поддерживаемый ios 13, например класс UIStatusBarManager, затем его упаковка не удалась, что мне делать?

я обновил fastlane до последней версии, но xcode все еще xcode10.

Вот ошибка, которую я получил, когда использую fastlane для упаковки:

[11:04:05]: ▸ ❌  /Users/wanghq/jenkins_workspaces/workspace/mobile-ios-teacher-ipa/Teacher_iOS/Train/Record/Utils/ZFPlayer/ZFPlayerView.m:909:9: use of undeclared identifier 'UIStatusBarManager'
[11:04:05]: ▸         UIStatusBarManager *statusBarManager = [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager;
[11:04:05]: ▸         ^
[11:04:05]: ▸ ❌  /Users/wanghq/jenkins_workspaces/workspace/mobile-ios-teacher-ipa/Teacher_iOS/Train/Record/Utils/ZFPlayer/ZFPlayerView.m:909:29: use of undeclared identifier 'statusBarManager'
[11:04:05]: ▸         UIStatusBarManager *statusBarManager = [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager;
[11:04:05]: ▸                             ^
[11:04:05]: ▸ ❌  /Users/wanghq/jenkins_workspaces/workspace/mobile-ios-teacher-ipa/Teacher_iOS/Train/Record/Utils/ZFPlayer/ZFPlayerView.m:909:92: property 'windowScene' not found on object of type 'UIWindow *'
[11:04:05]: ▸         UIStatusBarManager *statusBarManager = [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager;
[11:04:05]: ▸                                                                                            ^
[11:04:05]: ▸ ❌  /Users/wanghq/jenkins_workspaces/workspace/mobile-ios-teacher-ipa/Teacher_iOS/Train/Record/Utils/ZFPlayer/ZFPlayerView.m:910:14: use of undeclared identifier 'statusBarManager'
[11:04:05]: ▸         if ([statusBarManager respondsToSelector:@selector(createLocalStatusBar)]) {
[11:04:05]: ▸              ^
[11:04:05]: ▸ ** ARCHIVE FAILED **
[11:04:05]: ▸ The following build commands failed:
[11:04:05]: ▸   CompileC /Users/wanghq/Library/Developer/Xcode/DerivedData/Teacher_iOS-faqbabrkmkezsveufzeljjrkqytg/Build/Intermediates.noindex/ArchiveIntermediates/Teacher_iOS/IntermediateBuildFilesPath/Teacher_iOS.build/Debug-iphoneos/Teacher_iOS.build/Objects-normal/armv7/ZFPlayerView.o /Users/wanghq/jenkins_workspaces/workspace/mobile-ios-teacher-ipa/Teacher_iOS/Train/Record/Utils/ZFPlayer/ZFPlayerView.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
[11:04:05]: ▸ (1 failure)
[11:04:05]: ▸ ❌  /Users/wanghq/jenkins_workspaces/workspace/mobile-ios-teacher-ipa/Teacher_iOS/Train/Record/Utils/ZFPlayer/ZFPlayerView.m:911:40: use of undeclared identifier 'statusBarManager'

и это среда сборки:

+---------------+-------------------------+
|            Build environment            |
+---------------+-------------------------+
| xcode_path    | /Applications/Xcode.app |
| gym_version   | 2.134.0                 |
| export_method | development             |
| sdk           | iPhoneOS12.2.sdk        |
+---------------+-------------------------+

пожалуйста, помогите мне, спасибо!


person Coollee    schedule 18.10.2019    source источник


Ответы (2)


Вам понадобится Xcode 11 или новее, чтобы использовать iOS 13 SDK.

Fastlane не может делать ничего, чего не может базовая система сборки. Я предполагаю, что вы получите ту же самую ошибку сборки непосредственно в Xcode 10. Поскольку вы вызываете части API, такие как UIStatusBarManager, которых нет в SDK iOS 12.2, компилятор не знает, что с этим делать.

Обновите Xcode и выберите SDK для iOS 13 (или 13.1).

person buildonetothrowaway    schedule 18.10.2019

  • Если ваши изменения — это просто подготовка к XCode 11 или iOS 13,
  • Если ваши модификации уже не должны активироваться во время выполнения,
  • Если вы хотите продолжить работу с версией XCode 10.x,

тогда вы можете использовать «условные директивы компилятора» для проблемных участков кода.

Например, у меня есть XCode 10.3, и я могу скомпилировать проект с приведенной ниже модификацией.

предлагаемое изменение для компилятора

person csonuryilmaz    schedule 27.10.2019
comment
Я обновил xcode до версии 11.1, поэтому проблема решена, но также спасибо! - person Coollee; 29.10.2019