libspotify导致Apple App store拒绝

时间:2013-05-08 05:55:51

标签: spotify cocoalibspotify-2.0 libspotify

看起来Apple已经收紧了5月1日的应用程序商店提交。我有一个使用Spotify的应用程序,并已多次被App Store接受。在最近的更新中,该应用因以下原因被拒绝...

  

非公开API用法:
  不允许应用访问UDID,也不得使用UIDevice的uniqueIdentifier方法。请更新您的应用和服务器,以将用户与iOS 6中引入的供应商或广告标识符相关联。

在libspotify上执行以下操作

strings libspotify | grep uniqueIdentifier

返回了3个uniqueIdentifier实例。另一篇文章指出,这可能是由于openSSL,可能与UDID无关。但是,Apple拒绝了这些代码。有解决办法吗?

3 个答案:

答案 0 :(得分:4)

这是一个 Cr4zY 快速修复程序,只有在您真正赶时间时才使用(就像我现在一样,船只或死亡!) ... < / p>

使用0xED http://www.suavetech.com/0xed/之类的工具将uniqueIdentifier二进制文件中的libspotify部分更改为uniqueXdentifier(注意!必须有相同的长度或它会破坏!!!)

然后为您的项目添加UIDevice的类别方法,例如,使用与更改为相同的名称

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

答案 1 :(得分:2)

免责声明:我为Spotify工作

我们已经意识到了这个问题并正在努力为iOS制作热门修复程序,从而无需使用UDID。坚持下去!

修改:热修复已经结束!抓住http://developer.spotify.com/technologies/libspotify。 cocoalibspotify的相应版本即将推出,但同时可以轻松更改以支持不同版本的libspotify。

答案 2 :(得分:2)

已发布热修复,删除了uniqueIdentifier:

的使用

http://devnews.spotify.com/2013/05/16/libspotify-12-ios-hot-fix/