1

我知道这意味着第 3 方组件不在模拟器上运行:

ld: warning: ignoring file /MyApp/SomeComponent.include/SomeComponent.framework/SomeComponent, missing required architecture i386 in file /MyApp/SomeComponent.include/SomeComponent.framework/SomeComponent (2 slices)
Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_SomeComponent", referenced from:
      objc-class-ref in MyViewController.o
ld: symbol(s) not found for architecture i386

但是,我不想被排除在模拟器上再次运行该应用程序之外。仅当在应用程序的某个部分按下按钮时才需要 3rd 方组件。我仍然希望能够在模拟器中运行应用程序的其余部分。

如果我在模拟器中运行,如何让编译器忽略它?

4

1 回答 1

1

您可以使用该框架有条件地编译代码:

 #if !TARGET_IPHONE_SIMULATOR
 // Code using "SomeComponent" that should be compiled for iOS device only ...
 #endif

或者,您可以针对框架“弱链接”(如 “在 iOS 中使用弱链接类”中所述,并在运行时检查类的可用性:

if ([SomeComponent class]) {
    // Create an instance of the class and use it.
} else {
    // Alternate code path to follow when the
    // class is not available.
}
于 2013-07-29T19:41:02.933 回答