libspotify导致苹果应用商店拒绝(libspotify causing Apple App

2019-09-02 05:25发布

看起来苹果已经收紧应用程序商店盯着5月1日我有一个使用Spotify和已被接受进入App Store多次的应用程序提交。 在最近的一次更新,应用程序被拒绝,原因如下...

非公有制API的使用:
应用程序不允许访问UDID,不得使用的UIDevice的唯一标识符方法。 请更新您的应用程序和服务器在iOS 6中推出的卖方或广告标识的用户相关联。

这样做对libspotify以下

strings libspotify | grep uniqueIdentifier

返回UNIQUEIDENTIFIER的3个实例。 另一张贴指出,这可能是由于OpenSSL和可能无关UDID。 然而,苹果拒绝的代码。 是否有变通?

Answer 1:

这里是一个Cr4zY速战速决,如果你是一个真正的匆忙只使用(像我现在,船舶,毋宁死!)...

使用像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


Answer 2:

一个热修复已被释放,消除唯一标识符的用法:

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



Answer 3:

声明:我工作的Spotify

我们已经注意到这个问题,并在作出烫针对iOS这消除了对UDID的访问需要工作。 请耐心等待!

编辑 :热修复程序是了! 在抓住它http://developer.spotify.com/technologies/libspotify 。 cocoalibspotify的相应版本即将上市,但在此期间,它可以很容易地改变以支持libspotify的不同的版本号。



文章来源: libspotify causing Apple App store rejection