1

我正在尝试编写一个 iOS 应用程序,无需任何用户交互即可在后台发送电子邮件。几天来我一直在互联网上寻找一个简单的解决方案,但我发现的所有东西都非常旧并且无法编译。目前,我正在尝试使用的库是:https ://github.com/kailoa/iphone-smtp 。但是,我无法编译它。

我所做的是将类文件拖到我的项目中,并将所有新类设置为不使用 ARC。但是,我不断收到以下错误:

Ld /Users/Andrew/Library/Developer/Xcode/DerivedData/EmailTest2-gpzibaprekjgiheqoazurfdwapxp/Build/Products/Debug-iphonesimulator/EmailTest2.app/EmailTest2 normal i386
    cd /Users/Andrew/Desktop/EmailTest2
    setenv IPHONEOS_DEPLOYMENT_TARGET 6.0
    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -L/Users/Andrew/Library/Developer/Xcode/DerivedData/EmailTest2-gpzibaprekjgiheqoazurfdwapxp/Build/Products/Debug-iphonesimulator -F/Users/Andrew/Library/Developer/Xcode/DerivedData/EmailTest2-gpzibaprekjgiheqoazurfdwapxp/Build/Products/Debug-iphonesimulator -filelist /Users/Andrew/Library/Developer/Xcode/DerivedData/EmailTest2-gpzibaprekjgiheqoazurfdwapxp/Build/Intermediates/EmailTest2.build/Debug-iphonesimulator/EmailTest2.build/Objects-normal/i386/EmailTest2.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.0 -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/Andrew/Library/Developer/Xcode/DerivedData/EmailTest2-gpzibaprekjgiheqoazurfdwapxp/Build/Products/Debug-iphonesimulator/EmailTest2.app/EmailTest2


Undefined symbols for architecture i386:
  "_CFHostCreateWithName", referenced from:
      +[NSStream(SKPSMTPExtensions) getStreamsToHostNamed:port:inputStream:outputStream:] in NSStream+SKPSMTPExtensions.o
  "_CFStreamCreatePairWithSocketToCFHost", referenced from:
      +[NSStream(SKPSMTPExtensions) getStreamsToHostNamed:port:inputStream:outputStream:] in NSStream+SKPSMTPExtensions.o
  "_kCFStreamPropertySSLSettings", referenced from:
      -[SKPSMTPMessage parseBuffer] in SKPSMTPMessage.o
  "_kCFStreamSSLAllowsAnyRoot", referenced from:
      -[SKPSMTPMessage parseBuffer] in SKPSMTPMessage.o
  "_kCFStreamSSLAllowsExpiredCertificates", referenced from:
      -[SKPSMTPMessage parseBuffer] in SKPSMTPMessage.o
  "_kCFStreamSSLAllowsExpiredRoots", referenced from:
      -[SKPSMTPMessage parseBuffer] in SKPSMTPMessage.o
  "_kCFStreamSSLLevel", referenced from:
      -[SKPSMTPMessage parseBuffer] in SKPSMTPMessage.o
  "_kCFStreamSSLValidatesCertificateChain", referenced from:
      -[SKPSMTPMessage parseBuffer] in SKPSMTPMessage.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

还有一个 buildstaticlib.sh 文件;但是,当我尝试使用命令./buildstaticlib.sh或其任何变体运行它时,它给了我这个错误:

Usage: ./buildstaticlib.sh PATH where PATH is the destination directory for the build package

如果您知道如何使用其他库在后台发送电子邮件,我将非常愿意切换。但是,我需要帮助才能使该库也运行。我已经尝试了至少 6 个不同的库,但似乎都没有取得任何进展。谢谢!

4

1 回答 1

4

您可能忘记添加框架。确保所有导入的框架都添加到您的项目中并由您的目标链接到。

如果您打开示例项目,您将看到使用了哪些框架:

在此处输入图像描述

于 2012-09-30T18:52:59.580 回答