2011-09-09 4 views
6

나는 정신 나간다. 알아낼 수 없다.iOS 프로젝트 용 XMLRPC-iOS

iOS 용 XMLRPC를 다운로드하여 설치하려고합니다. 나는 https://github.com/eczarny/xmlrpc과 (과) 친구가되고 https://bitbucket.org/kdbdallas/xmlrpc-ios/wiki/Home 최초의 하나는 iOS 대상이 없습니다. 두 번째 사람은 이어야합니다.이 있지만 그 중 하나는 작동하지 않는 것 같습니다.

나는 다음과 같은 방법으로 엑스 코드를 사용하여 lib에는 XMLRPC - 아이폰 OS를 구축 :

  • 다운로드, 엑스 코드에서 열린 압축을 풉니 다
  • 이동 메뉴 제품에> 아카이브 난에 "공유"를 선택 조직에서
  • 최신 빌드
  • 내 프로젝트 폴더에 저장합니다. 그것을 프로젝트에 포함 시키십시오. 난 내 자신의 프로젝트를 빌드 할 때

내가 얻을 :

ld: warning: ignoring file /Users/paulp/Documents/ios/iPhone/ios-account/Account/external/XMLRPC/libXMLRPC_iOS.a, file was built for archive which is not the architecture being linked (i386) Undefined symbols for architecture i386:
"_OBJC_CLASS_$_XMLRPCRequest", referenced from: objc-class-ref in MyAPI.o
"_OBJC_CLASS_$_XMLRPCConnectionManager", referenced from: objc-class-ref in MyAPI.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

어떻게 그게 가능? 하는 ARMv7 armv7f = iphoneos5.0 이

  • 아치의 =의 $ (ARCHS_STANDARD_32_BIT) =하는 ARMv7
  • IPHONEOS_DEPLOYMENT_TARGET = 5.0
  • VALID_ARCHS = ARMv6에 armv7k

    • SDKROOT 다음 XMLRPC - 아이폰 OS 설정이 설정되어
    • OTHER_CODE_SIGN_FLAGS = armv7k armv7f armv6 armv7
    • GCC_VERSION = com.apple.compilers.llvmgcc42

    내 응용 프로그램에서 XMLRPC-iOS 라이브러리를 빌드하고 사용하는 방법을 설명 할 수 있습니까? 감사합니다.

  • 답변

    10

    나를 위해 일했습니다. 여기 정확히 내가 한거야.

    • (RpcTest라는) 새로운 프로젝트
    • 가의 bitbucket에서 갈래의 프로젝트를 다운로드 작성, 그래서 내 디렉토리는 다음과 같습니다, 내 RpcTest 디렉토리에 압축을 푼 :

    directory structure

    • XMLRPC-iOS.xcodeproj를 내 Xcode 프로젝트로 드래그하십시오 (Frameworks 그룹 아래, 그러나 이것은 중요하지 않습니다).
    • 자, 빌드 설정. kdbdallas-xmlrpc-ios-f28a13cc16ae아래에 추가하십시오. 프로젝트의 빌드 설정에서 사용자 헤더 검색 경로 (선택 취소)을 선택하십시오. 지금, 대상 종속성를 확장
    • 빌드 페이즈에 탭으로 이동 프로젝트 (cmd를 + B)를 구축 XMLRPC - IOS에게 프로젝트를 추가, 링크 바이너리와 라이브러리를 확장 libXMLRPC_iOS.a를 추가합니다. enter image description here

    지금 당신은 어떤 XMLRPC 헤더를 포함하고 lib 디렉토리를 사용할 수 있어야합니다.

    희망이 있습니다.

    편집 Download via Dropbox. 는 통보 : 불완전 구현, 단지 데모 XMLRPC 작동하는지! ;)

    +0

    정말 멋지 네요. 나는 그것을 한 번 시도해 볼 것이다. 나에게 보내 줄 수 있니? Paul-at- Paul Peelen-ドット コム. 감사! –

    +0

    물론 가능합니다. 어딘가에 업로드하고 원래 답변에 링크를 게시하면 다른 사람이 같은 문제를 겪는 데 도움이됩니다. – mja

    +0

    @mja 답변과 코드를 게시 해 주셔서 감사합니다. 정말 도움이됩니다. https://github.com/eczarny/xmlrpc 프로젝트에 세 가지 목표가 있는지 물어보고 싶습니다. 별도로 iOS 버전 (타겟)을 추출한 방법을 알려주십시오. – Gypsa

    0

    나는 당신이 https://github.com/eczarny/xmlrpc라고 언급 한 첫 번째 것을 아이폰 프로젝트에서 성공으로 사용했습니다.
    작동해야합니다.

    [편집]
    좀 더 세부 사항 (시간 전) : 나는 XMLRPCResponse 및 XMLRPCEventBasedParser (+ 관련된 모든 클래스들을 프로젝트에서 작업을 진행하는) 수입.

    그런 다음, 여기에 (내가 손으로 요청을하고 있었다) 응답을 구문 분석하는 코드이다 :

    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]; 
    

    건배 라이오넬.

    +0

    라이오넬에게 대답 해줘서 고마워.하지만 슬프게도 충분히 도움이 안된다. 프로젝트에서 어떻게 작동하는지 설명 할 수 있다면 정말 좋을 것입니다. –

    +0

    이전 프로젝트를 확인했는데 추출 할 수있는 부분은 여기에 있습니다.) – yonel

    0

    설정하려는 대상을 알 수 있습니까? 예를 들어 세 가지 타겟을 사용할 수 있습니다. iOS 용으로 사용하는 경우 libXMLRPC를 선택한 다음 빌드에서 libXMLRPC.a 파일을 선택한 다음 프로젝트에 연결하십시오. 그러면 실행됩니다.