Iphone 这种黑客行为会让苹果愤怒吗?(用户是否会拒绝我的应用?)

Iphone 这种黑客行为会让苹果愤怒吗?(用户是否会拒绝我的应用?),iphone,xcode,cocoa-touch,Iphone,Xcode,Cocoa Touch,我已从中获取此代码 最初由oxigen发布 我不太确定是否应该在我的应用程序中使用此代码。苹果是否会对此黑客有任何问题(他们是否会拒绝该应用?只有苹果才能回答这个问题。直到你提交并等待大约2周,他们才会回复 如果你真的想要它并且有两周的时间,试着提交它。但它可能会在以后的更新中被拒绝 您是否在这里使用任何未记录的API?如果是,假设它将被拒绝。如果你不是,但你正在做一些不同的事情,那么你的问题唯一正确的答案是“我不知道”。作为你正在访问的属性前缀的下划线(\u titleLabel,\u bo

我已从中获取此代码

最初由oxigen发布


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

只有苹果才能回答这个问题。直到你提交并等待大约2周,他们才会回复

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


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

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

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

您可以指定文本和数字 中的按钮和按钮内容 警报,但您无法自定义 警报的背景外观 本身

同样,从以下方面:

因为用户已经习惯了 它们的外观和行为 视图,使用它们很重要 在你的工作中始终如一、正确无误 应用程序


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

得到答案需要两周的时间,但至少你不会提前投入大量的时间

如果他们批准您的测试应用程序,请将其从应用商店中删除。如果它有真正的实用程序,将价格设置为0.99美元,然后离开它


这种方法不是万无一失的,但成本很低。

看到应用商店审查过程带来的恐惧和自我审查,很难过:-(不要这样做,他们会烧掉你的房子!因为代码使用“valueForKey”,扫描器可能找不到这个(因为他们会寻找符号,而不是普通字符串).但是,我不想打赌……没错。不难想象他们也可以扫描字符串。不过,我不知道他们是否会担心由此产生的误报。他们寻找的大多数符号在应用程序中的某个合法文本中都会很奇怪。“这种方法不是万无一失的…”.你说对了!有很多广为人知的例子,苹果商店的人改变了主意,拒绝了他们以前接受的东西。
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]];