我正在尝试编写一个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个不同的库,但似乎都无法取得任何进展。谢谢!
最佳答案
您可能忘了添加框架。确保将所有导入的框架添加到您的项目中,并由目标链接到该框架。
如果打开示例项目,您将看到使用了哪些框架:
关于objective-c - 无法获取SMTP代码进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664009/