2013-05-08 209 views
3

看起來像蘋果已收緊應用程序商店意見5月1日。我有一個應用程序,使用Spotify並已被多次接受到App Store。在最近的一次更新,應用程序被拒絕,原因如下...libspotify導致蘋果應用程序商店拒絕

非公開API的使用:
應用程序不允許訪問UDID,不得使用的UIDevice的唯一標識符方法。請更新您的應用程序和服務器中的用戶與iOS的6

介紹賣方或廣告標識上做libspotify

strings libspotify | grep uniqueIdentifier 

以下關聯返回唯一標識符的3個實例。另一篇文章指出,這可能是由於openSSL造成的,可能與UDID無關。但是,蘋果拒絕了這些代碼。有沒有解決辦法?

+0

這個問題似乎是題外話,因爲它是關於一些錯誤或libspotify本身的問題。它會更適合將它發佈到他們的問題跟蹤器等。 – quetzalcoatl 2013-12-13 15:37:48

回答

4

這裏是一個Cr4zY速戰速決,如果你是在一個真正着急只使用(像我現在,船舶,毋寧死!) ...

使用的工具,像0xED http://www.suavetech.com/0xed/libspotify二進制文件中的uniqueIdentifier部分更改爲uniqueXdentifier之類的內容。 (注意!必須具有相同的長度,或者它會破壞硬盤!!!)

然後添加一個類方法即像這樣在您的項目(使用相同的名稱改爲)

static NSString *alternativeUniqueIdentifier = nil; 

#define DEFAULTS_KEY @"heartbreakridge" // "Improvise, adapt, overcome" - Clint Eastwood in DEFAULTS_KEY 

@interface UIDevice (CrazyFix) 
- (NSString *)uniqueXdentifier; 
@end 

@implementation UIDevice (CrazyFix) 

- (NSString *)uniqueXdentifier 
{ 
    if (!alternativeUniqueIdentifier) { 
     @synchronized(self) { 
      alternativeUniqueIdentifier = [[NSUserDefaults standardUserDefaults] stringForKey:DEFAULTS_KEY]; 
      if (!alternativeUniqueIdentifier) { 
       // XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX (capital hex) 
       CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault); 
       CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef); 
       CFRelease(uuidRef); 
       alternativeUniqueIdentifier = [(NSString*)CFBridgingRelease(uuidStringRef) lowercaseString]; 
       alternativeUniqueIdentifier = [alternativeUniqueIdentifier stringByReplacingOccurrencesOfString:@"-" withString:@""]; 
       alternativeUniqueIdentifier = [NSString stringWithFormat:@"%@%@", [alternativeUniqueIdentifier substringToIndex:8], alternativeUniqueIdentifier]; 
       [[NSUserDefaults standardUserDefaults] setValue:alternativeUniqueIdentifier forKey:DEFAULTS_KEY]; 
       [[NSUserDefaults standardUserDefaults] synchronize]; 
      } 
     } 
    } 
    return alternativeUniqueIdentifier; 
} 

@end 
+0

不能再等待了,試了一下,看起來好像工作正常。提交後,應用程序通過了代碼掃描。 – 2013-05-15 23:57:48

2

聲明:我的Spotify

我們已經注意到這個問題,並在作出燙針對iOS這消除了對UDID的訪問工作需要的工作。堅持!

編輯:熱修復是!在http://developer.spotify.com/technologies/libspotify處抓住它。相應的cocoalibspotify即將發佈,但同時它可以很容易地更改爲支持不同版本的libspotify。

+0

這個修復會被摺疊成cocoalibspotify嗎? – 2013-05-09 02:12:24

+0

當您修復此問題時,您有什麼想法嗎? – Igor 2013-05-14 07:12:15

+1

不確定;留意github頁面或ping丹(他是維護者)。在最糟糕的情況下,請查看下面@epatel發佈的黑客行爲。 – 2013-05-14 09:24:01

相關問題