这个黑客会让苹果大发雷霆吗? (会拒绝我的应用程序吗?)

Posted

技术标签:

【中文标题】这个黑客会让苹果大发雷霆吗? (会拒绝我的应用程序吗?)【英文标题】:Will this hack make apple furious? (Will the reject my app ?) 【发布时间】:2009-11-19 06:30:44 【问题描述】:

我已从

获取此代码

Changing the background color of a UIAlertView?

UIAlertView *theAlert = [[[UIAlertView alloc] initWithTitle:@"Atention"
   message: @"YOUR MESSAGE HERE", nil)
   delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];

   [theAlert show];

   UILabel *theTitle = [theAlert valueForKey:@"_titleLabel"];
   [theTitle setTextColor:[UIColor redColor]];

   UILabel *theBody = [theAlert valueForKey:@"_bodyTextLabel"];
   [theBody setTextColor:[UIColor blueColor]];

   UIImage *theImage = [UIImage imageNamed:@"Background.png"];    
   theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16];
   CGSize theSize = [theAlert frame].size;

   UIGraphicsBeginImageContext(theSize);    
   [theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];    
   theImage = UIGraphicsGetImageFromCurrentImageContext();    
   UIGraphicsEndImageContext();

   [[theAlert layer] setContents:[theImage CGImage]];

最初由 oxigen 发布。

我不太确定是否应该在我的应用程序中使用此代码。苹果会不会对这个黑客有任何问题(他们会拒绝该应用程序吗?)

【问题讨论】:

很遗憾看到 App Store 审查过程造成的恐惧和自我审查:-( 不要这样做,他们会烧毁你的房子! 【参考方案1】:

作为您正在访问的属性前缀的下划线(_titleLabel、_bodyTextLabel)清楚地表明这些是私有属性,不应修改。 Apple 最近开始扫描所有提交的二进制文件以访问私有方法和属性,而这些值本身在您的应用程序中应该足以让您被拒绝。使用私有 API(无论是否被拒绝)都不是一个好主意,因为它们通常是私有的,并且可能会在未来的操作系统更新中破坏您的应用程序。

此外,您通过更改警报颜色违反了iPhone Human Interface Guidelines:

可以指定文字、数字 按钮,以及按钮内容 警报,但您无法自定义 警报的背景外观 自己。

再次,来自iPhone Human Interface Guidelines:

因为用户习惯于 这些的外观和行为 视图,使用它们很重要 始终如一地正确地在你的 应用。

【讨论】:

因为代码使用“valueForKey”,扫描器可能找不到这个(因为他们会寻找符号,而不是纯字符串)。但是,我不想打赌…… 是的。不难想象他们也可以扫弦。不过,我不知道他们是否会担心由此产生的误报。他们寻找的大多数符号在应用程序某处的合法文本中都很难找到。【参考方案2】:

只有 Apple 可以回答这个问题。直到您提交并等待大约 2 周后,他们才会回复。

如果你真的想要它并且有 2 周的时间来完成,请尝试提交它。但它可能会在以后的更新中被拒绝。

您是否在此处使用任何未记录的 API?如果你是,假设它会被拒绝。如果您不是,但您正在做一些不同的事情,那么您问题的唯一正确答案是“我不知道”。

【讨论】:

【参考方案3】:

如果您想知道某些编程技术是否会导致拒绝,请制作一个功能有限的小应用程序并在其中使用您有问题的技术。

需要 2 周时间才能得到答案,但至少您不会在前期投入大量时间。

如果他们批准了您的测试应用,请将其从商店中删除。如果它具有真正的实用性,请将价格设置为 0.99 美元并保留它。

这种方法并非万无一失,但成本低。

【讨论】:

“这个方法不是万无一失的......”。你说的!有一些广为人知的例子表明,Apple 商店的员工改变了主意,拒绝了他们以前接受的东西。

以上是关于这个黑客会让苹果大发雷霆吗? (会拒绝我的应用程序吗?)的主要内容,如果未能解决你的问题,请参考以下文章

Apple 会拒绝使用 Apple 应用程序中使用的图像的应用程序吗?

如何自定义 UIAlertView?苹果会批准吗?

苹果会拒绝使用 xcode 5.1 构建的应用程序吗

[转帖]WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为

通过 iOS 应用程序的 webview 付款(例如 iOS 的 PayPal API 或信用卡)会被苹果应用商店拒绝吗?

苹果会允许不针对 iPhone 5 的应用更新吗?