2014-02-05 74 views
22

我的應用程序因爲Facebook sdk和Flurry SDK中的advertisingIdentifier而被拒絕!我在最新的Facebook SDK (3.12)和Flurry SDK中發現了advertisingIdentifier。也許你可以檢查你的圖書館對下述方法的occurence:由於Facebook SDK和Flurry SDK中的advertisingIdentifier而被拒絕的應用程序

我打開FacebookSDK.framework作爲終端庫,並鍵入以下命令

otool -v -s __TEXT __objc_methname FacebookSDK | grep advertisingIdentifier 

和亂舞SDK一樣。

但我不知道該怎麼辦。

對於新聞:Flurry最近更新了他們的SDK,其中不包含「advertisingIdentifier」,但Facebook還沒有。

+0

是不是advertIdentifier您_supposed_使用的訪問器(假設iOS6 +)? –

+3

最近,如果您實際上沒有展示廣告(而只是將其用於追蹤),那麼advertisingIdentifier的使用已被禁止。 –

+0

但在我的應用程序中,我不想使用任何廣告! – chawki

回答

12

https://github.com/facebook/facebook-ios-sdk獲取源代碼,而不是編譯框架。只需刪除框架並粘貼源代碼即可。

轉到FBUtility.m和修改這個方法:

+ (NSString *)advertiserID { 
    NSString *advertiserID = nil; 
    Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"]; 
    if ([ASIdentifierManagerClass class]) { 
     ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager]; 
     advertiserID = [[manager advertisingIdentifier] UUIDString]; 
    } 
    return advertiserID; 
} 

+ (NSString *)advertiserID { 
    return @""; 
} 
+0

這是否意味着每個應用程序嵌入Facebook sdk 3.12會因爲這段代碼而被拒絕? – florian

+0

這真的取決於蘋果的審查團隊。他們不時會錯過任何事情,但簡短的回答可能是肯定的。如果你展示廣告 - 你會沒事的,但。 – Andrew

+0

因此,Facebook和它的SDK假設每個人都想要展示廣告?對我來說似乎很奇怪。 – florian

17

更新:

由於回答以下我所提交的應用程序商店,但與下面建議的編輯Facebook只能跟蹤事件,而不進行安裝歸因追蹤。 因此,下面的解決方案的問題是,它有效地禁止Facebook將安裝鏈接到Facebook上的廣告活動。

用於此修復程序應該使用最新的3.13 Facebook的SDK,並簡單地從你的項目中移除

-weak_framework AdSupport 

如下建議。

的應用程序現在正確編譯沒有編輯FBUtil.m,它不鏈接AdSupport框架從Pods.xconfig和刪除莢Facebook的-IOS-SDK.xconfig

我離開下面的回覆,讓你可以看到我以前嘗試從SDK的3.12版本中刪除AdSupport,但如果您想要安裝廣告歸因跟蹤,請不要使用它。 (事實上,只有當您計劃進行CPC廣告時,您才能使用它,否則Facebook將無法優化安裝廣告系列)。

OLD答覆:

這似乎是在我的情況還不夠。 可以肯定,我想徹底刪除AdSupport框架。 在Facebook SDK 3.12中,即使AdSupport Framework未包含在您的項目或pod文件中(實際上我正在使用cocoapods來安裝Facebook SDK),它似乎總是被導入/鏈接。

AdSupport框架確實沒有鏈接到我的項目中,但在我的應用程序可執行文件上執行「otool -L」顯示框架仍處於鏈接狀態。

爲了避免當前的FB SDK要做到這一點,你需要編輯如下:

在FBUtility.m

評論這個:

//#import <AdSupport/AdSupport.h> 

編輯以下幾種方法:

+ (NSString *)advertiserID { 
    /* 
    NSString *advertiserID = nil; 
    Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"]; 
    if ([ASIdentifierManagerClass class]) { 
     ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager]; 
     advertiserID = [[manager advertisingIdentifier] UUIDString]; 
    } 
    return advertiserID; 
    */ 
    return @""; 
} 

+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus { 

    /* 
    if ([FBSettings restrictedTreatment] == FBRestrictedTreatmentYES) { 
     return AdvertisingTrackingDisallowed; 
    } 
    FBAdvertisingTrackingStatus status = AdvertisingTrackingUnspecified; 
    Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"]; 
    if ([ASIdentifierManagerClass class]) { 
     ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager]; 
     if (manager) { 
      status = [manager isAdvertisingTrackingEnabled] ? AdvertisingTrackingAllowed : AdvertisingTrackingDisallowed; 
     } 
    } 
    */ 
    return AdvertisingTrackingDisallowed; 
} 

最後,如果您在項目中使用cocoapods搜索, k-空間所有

-weak_framework AdSupport

,並刪除所有的(你會發現那些Pods.xconfig和豆莢Facebook的-IOS-SDK.xcconfig)

這有爲我工作,現在我的應用程序可執行文件免費使用AdSupport。

+4

「-weak_framework AdSupport」將在您下次運行Pod更新時回來。我添加了以下腳本以構建階段以自動修復它:sed -i bak「s/-weak_framework AdSupport //」Pods/*。xcconfig雖然在pod更新後它不適用於第一個版本,所以不要歸檔在pod更新後立即生效。 –

+0

我嘗試使用這裏提供的FB SDK https://github.com/facebook/facebook-ios-sdk。不幸的是,代碼似乎並不是基於ARC的,而是拋出保留,釋放錯誤。我可以使用的任何其他代碼庫,或者我該如何解決這個問題?謝謝! – Mobilewits

+1

我爲fix pod更新創建了最新版本的命令: 'find Pods /。 -name「* .xcconfig」-type f -print0 | xargs -0 sed -i''-e「s/-framework \ \」AdSupport \「//」-e「s/-framework \」iAd \「// g」' – Bimawa

0

您必須在您的項目文件夾中刪除Facebook-SDK作爲捆綁版本,然後創建一個cocoapods並連接它們的最後一個版本;

pod 'FBSDKCoreKit' 
pod 'FBSDKShareKit' 
pod 'FBSDKLoginKit' 
2

剛纔看了這樣的:

https://developers.facebook.com/bugs/242477629268301/

無需更改代碼。

+0

整個線程很長。請直接從FB獲取此評論以獲得解決方案:https://developers.facebook.com/bugs/242477629268301/?comment_id = 1485600418338719 –

相關問題