iOS Counld не сборочный модуль - PullRequest
0 голосов
/ 01 ноября 2018

Настраиваемая среда разработки Swift в зависимости от платформы ObjC поставщика 'UMCommon'.

Как только swift-файл пользовательской среды публикует класс ObjC (или протокол), xcode выдает ошибку «Counld not build module xxx».

Я создаю карту модуля, подобную этой, чтобы swift-файл фреймворка мог видеть UMCommon.

module UMCommon {
    header "../../Example/Pods/UMCCommon/UMCommon.framework/Versions/A/Headers/UMCommon.h" // debug path
    export *
}

Все выглядит нормально при совершении простых звонков.

файл проекта .m

#import "Test.h"

#import <UMAdapter/UMAdapter-Swift.h>
#import <UMAdapter-umbrella.h>
#import <UMCommon/UMCommon.h>

@implementation Test

-(void)test {
    [[[SwiftFile alloc] init] test];    // project's Objective-C file call framework's Swift file
    [[[OCFile alloc] init] test];       // project's Objective-C file call framework's Objective-C file
    [UMConfigure umidString];           // project;s Objective-C file call vendor's Objective-C file
}

@end

файл проекта .swift

import UIKit
import UMAdapter
import UMCommon

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        SwiftFile().test()          // project's Swift file call framework's Swift file
        OCFile().test()             // project's Swift file call framework's Objective-C file
        UMConfigure.umidString()    // project's Swift file call vendor's Objective-C file
    }
}

Вы можете проверить основную ветку, чтобы увидеть успешную ситуацию. https://github.com/slkai/UMAdapter.git

Затем я наследую UMConfigure в файле Swift фреймворка.

public class SwiftConfigure: UMConfigure {

}

Ошибка сборки.

Вы можете проверить ветку стрелы, чтобы увидеть неудачную ситуацию. https://github.com/slkai/UMAdapter.git

Как компилятор работает со всеми этими вещами?

.modulemap
#import
@import
import
XXX-Swift.h
...