2014-02-20 108 views
1

截至二月初,Apple已經開始拒絕來自AppStore的移動應用程序,如果他們訪問廣告標識符(IDFA)但不在運行時投放廣告。Facebook SDK for Unity參考ASIdentifierManager

蘋果正在從他們的開發者指南執行條款3.3.12:

「你和你的應用程序(和任何第三方與你染上服務廣告)可以使用廣告識別碼,和任何通過使用廣告標識符獲得的信息,僅用於提供廣告服務。如果用戶重置廣告識別碼,然後您同意不合並,關聯,鏈接或其他關聯人,直接或間接地,現有廣告識別碼,並與重置廣告識別碼。」

任何來源的信息,問題ASIndentifierManager引用自FacebookSDK.a(Facebook SDK for Unity並且由於我們的應用沒有展示任何廣告,我們可能會被拒絕。我們只是使用Facebook登錄,沒有別的。

任何人都有想法如何刪除FB統一庫中的ASIndentifierManager引用?

到目前爲止,我還沒有找到有關此問題的Facebook SDK for Unity的解決方案。我看到這已經在Facebook開發者頁面中提出,但僅適用於iOS SDK而不適用於Unity SDK。如果我錯過了任何鏈接,請隨時將其指向我。謝謝。

回答

0

我有這樣的問題。我可以建議你的唯一方法是下載FacebookSDK的source code並按照post中的描述進行編輯。 編譯完成後,您將獲得分辨率爲「.a」的文件。 然後,您將需要將文件FacebookSDK.a(Assets/Facebook/Editor/iOS)替換爲您在編譯結果中收到的文件。

p.s.對不起英語

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Sasa

0

廣告標識符在統一項目中默認由xcode引用,即所有從統一體制作的xcode項目都會引用廣告標識符。

如果您的應用沒有展示廣告,您需要修改xcode的DeviceSettings.mm腳本中的一些代碼。

1)找到DeviceSettings。毫米文件在您的Xcode項目(你會發現它在類/團結/)

2)做如下修改有:

跟隨功能)刪除: 代碼(CSHARP):

static id QueryASIdentifierManager() 
{ 
<..> 
} 
static void QueryAdID() 
{ 
<..> 
} 
static void QueryAdTracking() 
{ 
<..> 
} 

b)除去以下的變量的聲明: 碼(CSHARP):

static NSString* _ADID    = nil; 
static bool   _AdTrackingEnabled = false; 

c)修改以下FUNC的實現行動(下面提供的替換): 代碼(CSHARP):

extern "C" const char* UnityAdvertisingIdentifier() 
{ 
return NULL; 
} 

extern "C" bool   UnityAdvertisingTrackingEnabled() 
{ 
return false; 
} 

static void QueryDeviceID() 
{ 
    if(_DeviceID == nil) 
    { 
    #if UNITY_PRE_IOS7_TARGET 
     if(!_ios70orNewer) 
      _InitDeviceIDPreIOS7(); 
    #endif 

     // first check vendor id 
     if(_DeviceID == nil) 
     { 
      QueryVendorID(); 
      _DeviceID = _VendorID; 
     } 
    } 
} 

您可以參考以下鏈接:

http://forum.unity3d.com/threads/ios-advertising-identifier-rejection-faq.226187/

此外,修改代碼,當你在回答問題後, itunes同時提交應用程序,使用idfa放置「否」。

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Sasa