【问题标题】:Appcenter wont build iOS after implementing custom base class from UIViewController从 UIViewController 实现自定义基类后,Appcenter 不会构建 iOS
【发布时间】:2021-09-14 17:19:43
【问题描述】:

我为几个需要跟踪的 VC 制作了 BaseTrackingViewController。 代码是使用最新的 xcode-beta 和开发版本构建的。在 iOS 14.5 模拟器和带有 iOS 15.0 公测版的真实 iPhone 11 Pro 上运行。完美运行。

直到在 appcenter 中编译
跟随错误

CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target 'ios' from project 'ios')
    cd /Users/runner/work/1/s
    export DEVELOPER_DIR\=/Applications/Xcode_12.4.app/Contents/Developer
    export SDKROOT\=/Applications/Xcode_12.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.4.sdk
    /Applications/Xcode_12.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -incremental -module-name ios -O -whole-module-optimization -enforce-exclusivity\=checked -Xfrontend -enable-swift3-objc-inference -Xfrontend -warn-swift3-objc-inference-minimal @/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/Objects-normal/arm64/ios.SwiftFileList -DRELEASE -D COCOAPODS -sdk /Applications/Xcode_12.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.4.sdk -target arm64-apple-ios9.0 -g -module-cache-path /Users/runner/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -swift-version 5 -I /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/LGSideMenuController -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/MaterialShowcase -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/Mixpanel-swift -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/PhoneNumberKit -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/ReachabilitySwift -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SVProgressHUD -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwifCron -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwiftClient -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwiftCron -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwipeCellKit -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/TrustKit -F /Users/runner/work/1/s/Pods/AppCenter/AppCenter-SDK-Apple/iOS -c -num-threads 3 -output-file-map /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/Objects-normal/arm64/ios-OutputFileMap.json -parseable-output -serialize-diagnostics -emit-dependencies -emit-module -emit-module-path /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/Objects-normal/arm64/ios.swiftmodule -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/ios-generated-files.hmap -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/ios-own-target-headers.hmap -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/ios-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/ios-project-headers.hmap -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/SourcePackages/checkouts/swift-numerics/Sources/_NumericsShims/include -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/include -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/LGSideMenuController/LGSideMenuController.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/MaterialShowcase/MaterialShowcase.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/Mixpanel-swift/Mixpanel.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/PhoneNumberKit/PhoneNumberKit.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/ReachabilitySwift/Reachability.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SVProgressHUD/SVProgressHUD.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwifCron/SwifCron.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwiftClient/SwiftClient.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwiftCron/SwiftCron.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwipeCellKit/SwipeCellKit.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/TrustKit/TrustKit.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/DerivedSources-normal/arm64 -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/DerivedSources/arm64 -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/DerivedSources -Xcc -DCOCOAPODS\=1 -emit-objc-header -emit-objc-header-path /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/Objects-normal/arm64/ios-Swift.h -working-directory /Users/runner/work/1/s
CompileSwift normal arm64 (in target 'ios' from project 'ios')
    cd /Users/runner/work/1/s
    /Applications/Xcode_12.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -filelist /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/sources-dfeeee -supplementary-output-file-map /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/supplementaryOutputs-d07bd5 -target arm64-apple-ios9.0 -Xllvm -aarch64-use-tbi -enable-objc-interop -sdk /Applications/Xcode_12.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.4.sdk -I /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/LGSideMenuController -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/MaterialShowcase -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/Mixpanel-swift -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/PhoneNumberKit -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/ReachabilitySwift -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SVProgressHUD -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwifCron -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwiftClient -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwiftCron -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwipeCellKit -F /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/TrustKit -F /Users/runner/work/1/s/Pods/AppCenter/AppCenter-SDK-Apple/iOS -g -module-cache-path /Users/runner/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity\=checked -O -D RELEASE -D COCOAPODS -enable-swift3-objc-inference -warn-swift3-objc-inference-minimal -serialize-debugging-options -Xcc -working-directory -Xcc /Users/runner/work/1/s -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/ios-generated-files.hmap -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/ios-own-target-headers.hmap -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/ios-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/ios-project-headers.hmap -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/SourcePackages/checkouts/swift-numerics/Sources/_NumericsShims/include -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/include -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/LGSideMenuController/LGSideMenuController.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/MaterialShowcase/MaterialShowcase.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/Mixpanel-swift/Mixpanel.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/PhoneNumberKit/PhoneNumberKit.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/ReachabilitySwift/Reachability.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SVProgressHUD/SVProgressHUD.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwifCron/SwifCron.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwiftClient/SwiftClient.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwiftCron/SwiftCron.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/SwipeCellKit/SwipeCellKit.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/BuildProductsPath/Release-iphoneos/TrustKit/TrustKit.framework/Headers -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/DerivedSources-normal/arm64 -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/DerivedSources/arm64 -Xcc -I/Users/runner/Library/Developer/Xcode/DerivedData/ios-efllujispuaysmafvdethlpdlhcf/Build/Intermediates.noindex/ArchiveIntermediates/ios/IntermediateBuildFilesPath/ios.build/Release-iphoneos/ios.build/DerivedSources -Xcc -DCOCOAPODS\=1 -target-sdk-version 14.4 -module-name ios -num-threads 3 -output-filelist /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/outputs-831b78
Command CompileSwift failed with a nonzero exit code

** ARCHIVE FAILED **


The following build commands failed:
    CompileSwift normal armv7
    CompileSwiftSources normal armv7 com.apple.xcode.tools.swift.compiler
    CompileSwift normal arm64
(3 failures)

##[error]Error: /usr/bin/xcodebuild failed with return code: 65
##[section]Finishing: Xcode build (signed)
##[section]Starting: Xcode build (signed)

这是基本的 UIViewController 类

class BaseTrackingViewController: UIViewController {
    var screenName: String { return String.empty }
    lazy private var trackingProperties: [String: MixpanelType] = ["SCREEN_NAME": screenName]
    var customTrackingProperties: [String: MixpanelType]?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let properties = customTrackingProperties != nil ? mergeDictionaries(trackingProperties, customTrackingProperties!) : trackingProperties
        trackEvent(event: "LOADED", properties: properties)
    }
    
    func viewDidUnload() {
        trackEvent(event: "DISMISSED", properties: trackingProperties)
    }
    
    override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) {
        super.dismiss(animated: flag, completion: completion)
        viewDidUnload()
    }
    
    func trackEvent(_ event: String, properties: [String: MixpanelType]) {
        let properties = mergeDictionaries(trackingProperties, properties)
        trackEvent(event: event, properties: properties)
    }
    
    private func trackEvent(event: String, properties: [String: MixpanelType]) {
        Mixpanel.mainInstance().track(event: event, properties: properties)
    }
    
    private func mergeDictionaries(_ dict1: [String: MixpanelType], _ dict2: [String: MixpanelType]) -> [String: MixpanelType] {
        return dict1.merging(dict2){(_, second) in second}
    }
}

基类的实现方式是这样的:

class RandomViewController: BaseTrackingViewController, DeltaChangedDelegate {
    
    override var screenName: String  { return "PersonalSummary" }
    var delta = 0
    var deltaDelegate: DeltaChangedDelegate?
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        deltaDelegate = self
    }
    override func viewDidLoad() {
        // to track something extra when initialized
        customTrackingProperties = ["DELTA": delta]
        super.viewDidLoad()
    }
    func doSomething() {
        trackEvent("SomeEvent", properties: ["SomeProperty": "SomeValue"])
    }
    func onReceiveDeltaChanged() {
        trackEvent("LOADED", properties: ["DELTA": delta])
    }
}
protocol DeltaChangedDelegate: AnyObject {
    func onDeltaChanged()
}

创建了一个变通方法来了解视图控制器何时被用户“解雇”。由于在视图控制器本身上关闭导致导航堆栈被清除。在我的情况下这是不希望的。

class RandomNavigationController: UINavigationController {
    override func popViewController(animated: Bool) -> UIViewController? {
        if let vc = super.popViewController(animated: animated) as? BaseTrackingViewController {
            vc.viewDidUnload()
        }
        return nil
    }
}

当删除所有这些代码及其实现时,appcenter 会再次构建。 xcode-beta 和实时 xcode 应用程序中没有编译器错误。 没有对项目或目标设置或包进行任何更改

【问题讨论】:

    标签: ios swift compiler-errors base-class visual-studio-app-center


    【解决方案1】:

    发现问题

    声明

    func viewDidUnload() { 
        ....
    }
    

    与 appcenter 编译器的 viewDidUnload 旧声明(自 iOS 7.0 以来已弃用和删除)冲突。重命名解决了问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多