[ios] Facebook SDK : URL 체계로 등록되지 않은 앱

여기 에서 Facebook SDK찾은 것을 사용하고 있으며 제공된 샘플을 시도하고 있습니다 (폴더에 있음 ).FacebookiOSSample

나는 단순히 교체하는 경우 AppId내 특정 여기 AppId, 나는 더 이상 공유 할 수 있습니다. ( AppDelegate파일과 파일 모두에서 교체했습니다 info.plist). 이제 다음과 같은 오류가 발생합니다.

FBSDKLog : FBAppCall의 유효하지 않은 사용, fb ****는 URL Scheme으로 등록되지 않았습니다. plist에 ‘FacebookUrlSchemeSuffix’를 설정 했습니까?

그렇지 않으면 이것은 AppId라는 이름을 가리키는 샘플의 원본에서 잘 작동합니다 IFaceTouch.

앱 설정에 문제가있을 수 있습니다. 어떻게 등록 AppId합니까?



답변

다음 세 단계를 따르십시오.

  1. 문자열 값을 사용하여 FacebookAppID 라는 키를 만들고 여기에 앱 ID를 추가합니다.
  2. 문자열 값이있는 FacebookDisplayName 이라는 키 를 만들고 앱 대시 보드에서 구성한 표시 이름을 추가합니다.
  3. URL Schemes 라는 단일 배열 하위 항목을 사용하여 URL 유형이라는 배열 키를 만듭니다 . 앱 ID가 fb로 시작되는 단일 항목을 제공하십시오. 애플리케이션이 콜백 URL을 수신하는지 확인하는 데 사용됩니다. 웹 기반 OAuth 흐름 을 .

완성 된 .plist는 다음과 같아야합니다.

여기에 이미지 설명 입력

소스 링크 :


답변

원시 키 및 값 측면에서 CFBundleURLTypes 및 CFBundleURLSchemes가 있어야합니다.

원시 키 및 값 측면에서 CFBundleURLTypes 및 CFBundleURLSchemes가 있어야합니다. 도움이 되었기를 바랍니다.


답변

정보 아래에 또 다른 섹션이 있습니다 -URL 유형

URL Schemes 필드의 값이 위의 속성 목록 에있는 URL 유형-> URL Schemes 의 값과 일치 하는지 확인합니다 . (또한 FacebookAppID와 일치)

URL 유형


답변

iOS 9의 경우

오류가있는 경우 : ‘LSApplicationQueriesSchemes’

를 기반으로 내 대답과 함께 곰 , 당신은 또한 그 라인을 추가해야합니다 :

<key>LSApplicationQueriesSchemes</key>
<array>
   <string>fbauth2</string>
</array>

참조 .

.plist 파일 끝에 다음 줄 이 표시 되어야 합니다.

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb2R3234544534554</string>
            </array>
        </dict>
    </array>
    <key>FacebookAppID</key>
    <string>2R3234544534554</string>
    <key>FacebookDisplayName</key>
    <string>stevejeff</string>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>facebook.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
            <key>fbcdn.net</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
            <key>akamaihd.net</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fbauth2</string>
    </array>
    </dict>
    </plist>

* SDK v4.6.0 이상을 사용하는 경우 다음 항목 만 추가하면됩니다. * (감사합니다 mohsinj )

   <key>LSApplicationQueriesSchemes</key>
      <array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
   </array>


답변

1- Xcode에서 프로젝트의 Info.plist 파일을 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 열기-> 소스 코드를 선택합니다.

2- 최종 </dict>요소 바로 앞에 다음 XML 스 니펫을 파일 본문에 삽입합니다 .

  <key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>fb{your-app-id}</string>
    </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>{your-app-id}</string>
<key>FacebookDisplayName</key>
<string>{your-app-name}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fbapi</string>
  <string>fb-messenger-share-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
</array>

3- {your-app-id} 및 {your-app-name}을 Facebook 앱 대시 보드에있는 앱의 앱 ID 및 이름으로 바꿉니다.


답변

링크로 이동하여 앱을 선택하고info.plist


답변

오늘 저는 FacebookDisplayName 에서 공간을 제거하여이 버그를 해결했습니다 .

FacebookDisplayName에 공간이 없는지 확인하십시오.