2015-01-21 2 views
2

Facebook의 PostProcessBuild 메소드 인 OnPostProcessBuild가 iOS 용으로 빌드 할 때 일부 데이터를 구문 분석하여 최종 Xcode 프로젝트에 Facebook 라이브러리.Facebook PostProcessBuild PBXParser for Unity SDK 4.6.x 및 Xcode 6.1.1

파서가 잘못된 파일 형식을 수신합니다. 이런

public const string PBX_HEADER_TOKEN = "// !$*UTF8*$!\n"; 

:

// !$*UTF8*$! 
{ 
    archiveVersion = 1; 
    classes = { 
    }; 
    objectVersion = 46; 
    objects = { 

/Begin PBXBuildFile section/
     011C65182C1C4E78903D645B/libxml2.dylib/= {isa = PBXBuildFile; fileRef = 318C8AB7C5D04BBFA6BA701D/libxml2.dylib /; }; 

대신, 올바른 XML 형식의 project.pbxproj 내용 문자열을 수신하여 그것의 디코드() 방법에있어서, 시작 데이터 기대 . 이 같은 사람이 다른 사람이

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>archiveVersion</key> 
    <string>1</string> 
    <key>classes</key> 
    <dict/> 
    <key>objectVersion</key> 
    <string>46</string> 
    <key>objects</key> 
    <dict> 

을 겪고 있습니까? 나는이 질문들이 관련되어 있다는 것을 알았지 만 그들 중 누구도 실제 문제에 대답하지 못했습니다.

FacebookSDK for Unity iOS Mach-O linker error - undefined symbols _iosLogin,

http://forum.unity3d.com/threads/mach-o-linker-error-with-facebook-sdk.239085/

그것을 해결하는 방법에 어떤 아이디어?

답변

0

동일한 문제가 있습니다. project.pbxproj 파일을 수정하는 다른 플러그인을 설치 한 후 PBXParser에 들어오는 데이터는 xml1 형식입니다. json 같은 형식을 쉽게 수정할 수 있지만 Xcode에서 이해할 수있는 형식으로 저장하기는 쉽지 않습니다. 표준 프로세스는 xml1 형식으로 저장하는 것입니다. Xcode는 xml1 형식을 인식 할 수 있으므로 문제가되지 않습니다.

  1. 실행 평소와 같이 빌드 : 그래서 내 해결 방법은 다음과 같다.
  2. 빌드가 실패하면 Xcode를 닫습니다 (Xcode는 닫을 때 올바른 json 형식으로 프로젝트 파일을 작성합니다).
  3. 수정 된 project.pbxproj 파일을 다른 위치로 복사하십시오.
  4. XML 형식이 인 경우 수정 된 파일에서 데이터를 읽도록 PBXParser를 변경하십시오!
  5. 빌드를 다시 실행하십시오.

매우 깨끗하지는 않지만 나를 위해 일했습니다. 더 나은 옵션을합니다 ... PBXParser에 대한 JSON으로 XML을 변환하는 것입니다

1
파일이 원래 PBX 형식에있을 때 project.pbxproj 파일 나중에 그 변경을 FB를 강제 할 수

: 변경하여

[PostProcessBuild(100)] ~ [PostProcessBuild(99999999)]FacebookPostprocess.cs입니다.