我有一个将Objective-C和Swift结合在一起的应用程序。它有一个XCTest目标。我有一个用Objective-C编写的静态框架,它链接到一个主目标,并由主目标和测试目标使用。
我已经测试了3种不同的情况,其中有两种是编译但有警告,而我想在运行测试时看不到任何警告:
1)静态框架未链接到测试目标(通过Link Binary With Libraries
),但包含在测试目标的Framework search paths
中。测试目标编译,但我有警告:
ld: warning: Auto-Linking supplied '.../MyStaticFramework/MyStaticFramework.framework/MyStaticFramework', framework linker option at /.../MyStaticFramework/MyStaticFramework.framework/MyStaticFramework is not a dylib
2)静态框架链接到测试目标(通过Link Binary With Libraries
),并包含在测试目标的Framework search paths
中。测试目标编译,但我有警告:
objc[2653]: Class MyStaticFrameworkClassA is implemented in both /.../MyApp.app/MyApp and /.../MyApp.app/PlugIns/Tests.xctest/Tests. One of the two will be used. Which one is undefined.
3)静态框架未链接到测试目标(通过Link Binary With Libraries
),并且未包含在测试目标Framework search paths
中。测试目标无法编译:
In file included from ".../Tests/.../TestFile.m:13:
.../Build/Intermediates/MyApp.build/Debug-iphonesimulator/Tests.build/../MyApp.build/DerivedSources/MyApp-Swift.h:103:9: fatal error: module 'MyStaticFramework' not found
@import MyStaticFramework;
^~~~~~~~