这个问题快把我逼疯了,我不知道怎么解决它。

    Undefined symbols for architecture armv7:
  "_deflateEnd", referenced from:
      -[ASIDataCompressor closeStream] in ASIDataCompressor.o
  "_OBJC_CLASS_$_ASIDataDecompressor", referenced from:
      objc-class-ref in ASIHTTPRequest.o
  "_deflate", referenced from:
      -[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
  "_deflateInit2_", referenced from:
      -[ASIDataCompressor setupStream] in ASIDataCompressor.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

我认为这与:

ld: symbol(s) not found for architecture armv7

但是我添加了:libz.1.2.3。Dylib并没有帮助,有人有什么想法吗?


当前回答

昨晚我遇到了一个类似的问题,这个问题与我在Xcode中从Finder拖拽一个类有关。

解决方案是选择Build Phases选项卡,然后选择Compile Sources,并确保将类拖到列表中。

其他回答

对我来说,问题是我忘记在.m(实现)中为我的常量设置值

file const kFooKey = @"Foo";

如果您在释放模式下构建您的Flutter项目时遇到了这个问题-这对我有帮助:

Set your build system to New Build System in File > Project Settings… delete folders ios and build_ios from your project folder. create ios module by executing flutter create . from your project folder. open Xcode and: set the IOS Deployment Target to at least 9.0 in PROJECT > Runner check your Signing & Capabilities make sure your Build Configuration is set to Release in Edit Scheme... and build for Generic iOS Device execute pod install from your project folder execute flutter pub get from your project folder

现在打开你的Xcode并构建或存档它:Product > build(或archive)

尝试实现派生类的至少一个非内联函数。如果不这样做,链接器可能会避免为该类创建类型信息。

我还通过拖放添加了文件。我所做的,我删除了所有文件的引用(不包括框架),然后通过添加文件到项目选项正确地添加它们,问题消失了。

我也有类似的问题。在_OBJC_CLASS_$_后面的类名实际上是我的类。原因是我没有勾选“添加到目标”,当我拖动源代码文件到导航列表。

我的解决方案是:

从导航列表中删除类,并选择“仅删除引用” 再次拖动源代码文件,并确保“添加到目标”复选框被勾选。复选框就在“需要时复制”和“创建组”下面。