XMLRPC-iOS for iOS项目

我疯了,我无法弄清楚。

我已经下载并尝试为iOS构buildXMLRPC。 我与https://github.com/eczarny/xmlrpc和https://bitbucket.org/kdbdallas/xmlrpc-ios/wiki/Home联系第一个,原来的,没有iOS的目标。 第二个应该有,但即使那个似乎不工作。

我使用XCode构buildXMLRPC-iOS lib,方法如下:

  • 下载,解压缩,在xcode中打开
  • 转到菜单产品>存档
  • 在有组织的我select“共享”的最新版本
  • 我将它保存在我自己的项目文件夹中。 将其包含在项目中。

当我build立自己的项目时,我得到:

ld:警告:忽略文件/Users/paulp/Documents/ios/iPhone/ios-account/Account/external/XMLRPC/libXMLRPC_iOS.a,该文件是为归档而构build的,而不是被链接的体系结构(i386)未定义的体系结构符号I386:
“_OBJC_CLASS _ $ _ XMLRPCRequest”,引用自:MyAPI.o中的objc-class-ref
“_OBJC_CLASS _ $ _ XMLRPCConnectionManager”引用自:MyAPI.o中的objc-class-ref ld:找不到体系结构i386的符号clang:错误:linker命令失败,退出代码1(使用-v查看调用)

这怎么可能? XMLRPC-iOS设置被设置为:

  • SDKROOT = iphoneos5.0
  • ARCHS = $(ARCHS_STANDARD_32_BIT) = armv7
  • IPHONEOS_DEPLOYMENT_TARGET = 5.0
  • VALID_ARCHS = armv6 armv7k armv7f armv7
  • OTHER_CODE_SIGN_FLAGS = armv7k armv7f armv6 armv7
  • GCC_VERSION = com.apple.compilers.llvmgcc42

有人可以向我解释如何在自己的应用程序中构build和使用XMLRPC-iOS库吗? 谢谢!

它为我工作; 这正是我所做的。

  • 创build新项目(称为RpcTest)
  • 从bitbucket下载分叉项目,在我的RpcTest目录中解压缩,所以我的目录如下所示:

目录结构

  • 将XMLRPC-iOS.xcodeproj拖放到我的Xcode项目中(在Frameworks组下,但这不重要)
  • 现在,到构build设置。 在您的项目的Build Settings中添加用户标题searchpath下的kdbdallas-xmlrpc-ios-f28a13cc16ae (取消选中recursion) 现在build立你的项目(CMD + B)
  • 进入Build Phases选项卡,展开Target Dependencies ,添加XMLRPC-IOS项目,展开Link Binary With Libraries,添加libXMLRPC_iOS.a。 在这里输入图像说明

现在你应该可以包含任何xmlrpc头文件并使用lib。

希望有所帮助。

编辑 通过Dropbox下载。 被build议:不完整的实现,只是一个演示xmlrpc的作品! ;)

我已经使用了第一个提到https://github.com/eczarny/xmlrpc成功的iPhone项目。
应该工作。 (前一段时间)

[编辑]
一些更多的细节:我导入XMLRPCResponse和XMLRPCEventBasedParser(+所有相关的类,使他们从项目工作)。

然后,这里是parsing响应的代码(我正在手动执行请求):

NSURL* url = [NSURL URLWithString:@"http://www.xxxxxxxxx.fr/xmlrpc.php"]; NSMutableURLRequest* urlRequest = [NSMutableURLRequest requestWithURL:url]; [urlRequest setHTTPMethod:@"POST"]; [urlRequest addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"]; NSString* param = [NSString stringWithFormat: @"<param><value><double>%f</double></value></param><param><value><double>%f</double></value></param><param><value><double>%.0f</double></value></param><param><value><int>1</int></value></param>", request.coordinate.latitude, request.coordinate.longitude, request.radius/1000.0]; NSString* xmlrpcReq = [NSString stringWithFormat:@"<?xml version=\"1.0\"?><methodCall><methodName>geoSearch</methodName><params>%@</params></methodCall>", param]; [urlRequest setHTTPBody:[xmlrpcReq dataUsingEncoding:NSUTF8StringEncoding]]; NSURLResponse* response; NSError* error; NSData* content = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error]; XMLRPCResponse* rpcResponse = [[XMLRPCResponse alloc] initWithData:content]; if ([rpcResponse faultCode]==0) { NSArray* result = (NSArray*)[rpcResponse object]; 

欢呼莱昂内尔。

我可以知道你的目标是什么吗? 例如三个可用的目标,如果您使用iOS,请selectlibXMLRPC,然后构build,然后从构build中selectlibXMLRPC.a文件,然后将其链接到我们的项目。 那么它会运行。