как сделать fastlane совместимым с iOS13 - PullRequest
0 голосов
/ 18 октября 2019

Я использую 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        |
+---------------+-------------------------+

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

Ответы [ 2 ]

1 голос
/ 18 октября 2019

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

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

Обновите Xcode и установите целевой пакет iOS 13 (или 13.1).

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

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

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

suggested change for compiler

...