60

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

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

4

11 回答 11

107

大约在 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/

于 2013-07-10T13:09:46.310 回答
20

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

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

在此处输入图像描述

于 2016-06-05T10:50:01.507 回答
11

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

#define FB_IOS_SDK_VERSION_STRING @"3.2.1"

于 2013-04-01T02:37:46.720 回答
9

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

#import <FBSDKCoreKit/FBSDKCoreKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSLog(@"### Running FB SDK Version: %@", [FBSDKSettings sdkVersion]);
}
于 2015-03-31T16:42:23.787 回答
3

从我做的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 文件以及解压后的根目录中省略版本号的科技公司。我觉得这很莫名其妙。

于 2016-05-04T17:42:43.670 回答
2

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

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

FBSDKSettings.version() 为我返回 0。

于 2015-09-25T12:03:44.347 回答
2

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

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

就我而言,SDK 版本 4.8.0

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

于 2015-11-20T16:06:01.473 回答
0

对于 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]);
}
于 2016-10-09T02:54:42.103 回答
0

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

String s = FacebookSdk.getSdkVersion();
                Log.d("FacebookSKD_V",s);
于 2018-12-12T03:50:36.280 回答
0

如果您使用的是 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>
于 2018-12-12T15:27:45.597 回答
0

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

于 2021-08-11T07:49:18.710 回答