【问题标题】:Find Facebook SDK Version on iOS在 iOS 上查找 Facebook SDK 版本
【发布时间】:2013-03-22 03:17:26
【问题描述】:

我知道我使用的是最新版本 (v3.2.1)。但我想在标题中或以编程方式找到它。

在 iOS 中,我在 FacebookSDK.framework 标头中找不到版本号。

【问题讨论】:

  • 知道如何打印已安装的 Facebook 应用程序版本吗?

标签: ios facebook


【解决方案1】:

看看FBSDKVersion.h。那里有一个定义:

#define FB_IOS_SDK_VERSION_STRING @"3.2.1"

【讨论】:

  • 我什至没有那个文件。
  • 对,这可能只有在添加源时才有效。对于我们的项目,它是作为编译框架添加的。
  • 我没有来源。如何以编程方式获取它?有电话吗?
【解决方案2】:

大约在 2014 年之后,只需这样做:

NSLog( @"### running FB sdk version: %@", [FBSDKSettings sdkVersion] );

适用于非常旧的版本。 3.6左右之前:

我找到了一种打印 SDK 版本 (FB_IOS_SDK_VERSION_STRING) 的无证方法,试试这个

NSLog(@"### FB SDK VERSION : %@",
    [[FBRequestConnection class] performSelector:@selector(userAgent)]);

使用 sdk 3.5.1 为我工作

希望对您有所帮助...


更新:从 FB SDK 3.6 开始,“SDK 版本号在 FacebookSDK.h 中定义,可从 [FBSDKSettings sdkVersion] 获得”

https://developers.facebook.com/ios/change-log-3.x/

【讨论】:

  • 太棒了!对我来说效果很好。
  • 谢谢,不过还有一句,facebook下载页面目前说的是Facebook 3.5,下载的时候告诉你3.14有什么区别?
  • 所以您必须在调试会话中运行代码才能找出 SDK?没有办法知道您在计算机上安装了哪个版本的 SDK,比如说,只需查看 ~/Documents/FacebookSDK(默认安装位置)。我想回顾一下 TimeMachine 并查看我在上一个版本中在该位置安装了什么...@poloDelaVegas 是否可以通过查看我计算机上安装的库文件来确定 SDK 版本?
  • 看起来你还需要包含#import
【解决方案3】:

对于那些运行 SDK 版本 >= 4 的用户,[FBSDKSettings sdkVersion]

#import <FBSDKCoreKit/FBSDKCoreKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSLog(@"### Running FB SDK Version: %@", [FBSDKSettings sdkVersion]);
}

【讨论】:

    【解决方案4】:

    在swift 2, FBSDK 4.4 中可以输出版本字符串:

    print("FBSDK Version: \(FBSDK_VERSION_STRING)");
    //outputs:
    //FBSDK Version: 4.4.0
    

    FBSDKSettings.version() 为我返回 0。

    【讨论】:

      【解决方案5】:

      要检查 facebook SDK 的当前版本,请使用以下行:

          print("SDK version \(FBSDKSettings .sdkVersion())")
      

      就我而言,SDK 版本 4.8.0

      针对 swift 2.0 和 xCode 7.0+ 进行测试

      【讨论】:

        【解决方案6】:

        从我做的 SDK 目录:

        % find . -name \*.h -exec fgrep -i version {} /dev/null \;
        

        除其他内容外,还返回了以下行:

        ./FBSDKCoreKit.framework/Headers/FBSDKCoreKit.h:#define FBSDK_VERSION_STRING @"4.11.0"
        

        这将帮助您识别版本,而无需实际链接/运行/记录。

        Facebook 可能是世界上唯一一家在其 tar/zip 文件以及解压后的根目录中省略版本号的科技公司。我觉得这很莫名其妙。

        【讨论】:

          【解决方案7】:

          您可以在FBSDKCoreKit.h 中找到您的 Facebook SDK 版本,定义为

          #define FBSDK_VERSION_STRING @"X.XX.X"。看看下面的图片。

          【讨论】:

            【解决方案8】:

            对于 Facebook SDK 3.18,我必须这样做

            #import <FacebookSDK/FacebookSDK.h>
            
            - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
                NSLog( @"My app is running FB sdk version: %@", [FBSettings sdkVersion]);
            }
            

            【讨论】:

              【解决方案9】:

              Try(Android) - 我只发布了这个,因为我正在寻找这个答案并且没有看到 android。

              String s = FacebookSdk.getSdkVersion();
                              Log.d("FacebookSKD_V",s);
              

              【讨论】:

                【解决方案10】:

                如果您使用的是 pod,您可以查看 Info.plist 文件:

                "Pods/FBSDKCoreKit/Support Files/Info.plist"

                版本是关键CFBundleShortVersionString

                我的版本是 4.18.0

                例子:

                <?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>CFBundleDevelopmentRegion</key>
                  <string>en</string>
                  <key>CFBundleExecutable</key>
                  <string>${EXECUTABLE_NAME}</string>
                  <key>CFBundleIdentifier</key>
                  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
                  <key>CFBundleInfoDictionaryVersion</key>
                  <string>6.0</string>
                  <key>CFBundleName</key>
                  <string>${PRODUCT_NAME}</string>
                  <key>CFBundlePackageType</key>
                  <string>FMWK</string>
                  <key>CFBundleShortVersionString</key>
                  <string>4.18.0</string>
                  <key>CFBundleSignature</key>
                  <string>????</string>
                  <key>CFBundleVersion</key>
                  <string>${CURRENT_PROJECT_VERSION}</string>
                  <key>NSPrincipalClass</key>
                  <string></string>
                </dict>
                </plist>
                

                【讨论】:

                  【解决方案11】:

                  在 Xcode 12 的 11.0 之后,无法在 SPM 上获取它。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-05-23
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多