繁体   English   中英

PhoneGap 1.0应用程序提交到AppStore失败

[英]PhoneGap 1.0 app Submit to AppStore fails

我们有一个使用PhoneGap 1.0版创建的旧应用。 由于所需的两个iOS / JS代码都发生巨大变化 ,因此绝对没有机会迁移到最新的PhoneGap / Cordova。

尝试上传使用iOS SDK 6.1编译的应用程序失败,并显示以下消息:“应用程序不允许访问UDID,并且不得使用UIDevice的uniqueIdentifier方法。请更新您的应用程序和服务器,以将用户与引入的供应商或广告标识符相关联在iOS 6中。”。

PhoneGap 1.0来源不公开,它作为已编译框架分发。

有谁知道如何解决此问题?

疯狂,但工作解决方案 (hack)

好了,一旦PhoneGap 1.0作为已编译的库提供,我们可以尝试更改已编译的二进制文件本身。

Apple拒绝的原因是对iOS 6中不推荐使用的[UIDevice uniqueIdentifier]方法的调用。如果您的应用(JS代码)未使用PhoneGap提供的UDID(实际上,不知道有没有办法来获得它),这是安全的( !?参见下面的“注意”,以将uniqueIdentifier的调用更改为其他任何返回UIDevice类的NSString的方法。

我已经使用+(NSString *)systemVersion-systemVersion属性的获取器。

因此,得到任何HEX编辑和打开文件:/users/Shared/PhoneGap/Frameworks/PhoneGap.framework/PhoneGap与systemVersion \\ 0 \\ 0 \\ 0替换唯一标识符

\\ 0-为零代码字节,需要对齐新名称的长度,该名称要短3个字节!

重建您的应用程序,并且…将中提琴成功上传到AppStore!

注意:当然,您必须检查您的应用程序功能是否未损坏。 我为我的应用程序做了,它就像一个魅力。

不。 苹果是您的问题。 您必须将PhoneGap更新到至少2.5,请参见此处发布: https : //shazronatadobe.wordpress.com/2013/05/01/cordovaphonegap-and-the-new-apple-app-store-requirements/

而且,您必须更新编写的任何插件或本机才能不使用uuid。

我在使用phonegap 1.2.0时遇到了同样的问题,但是上面的“ hack”对我不起作用-它给了我一个错误

ld: file is universal (3 slices) but does not contain a(n) armv7 slice:

因此,我找到了一个更简单的解决方案-找到在安装phonegap并打开它时安装的PhoneGapLib.xcodeproj,然后搜索“ uniqueIdentifier”调用。

然后,我使用了以下代码( https://stackoverflow.com/a/9458313/1851746 ),以替换UUID值-

- (NSString *)getUUID
{
    NSString *UUID = [[NSUserDefaults standardUserDefaults] objectForKey:@"uniqueID"];
    if (!UUID)
    {
        CFUUIDRef theUUID = CFUUIDCreate(NULL);
        CFStringRef string = CFUUIDCreateString(NULL, theUUID);
        CFRelease(theUUID);
        UUID = [(__bridge NSString*)string stringByReplacingOccurrencesOfString:@"-"withString:@""];
        [[NSUserDefaults standardUserDefaults] setValue:UUID forKey:@"uniqueID"];
    }
    return UUID;
}

使用[self getUUID]而不是uniqueIdentifier调用此方法是可行的,尽管由于某种原因,它会导致错误,并将后续值添加到phonegap版本的字典中。 因此,我只是在与上述相同的代码块中对此进行了硬编码。

然后将目标更改为“ PhoneGap”,进行构建,然后转到Products文件夹并在finder中打开位置,复制framework文件夹,并替换在Users / Shared / PhoneGap / Frameworks中找到的文件夹。

项目应编译并被App Store接受

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM