是否有任何方法可以更改iOS模拟器上显示的日期/时间(除了更改Mac设置)?

Hot*_*cks 15 simulator xcode4 ios5

我需要进行一些测试,包括将"电话"向前和向后移动几天.我想在模拟器上这样做.是否有任何可用的hack允许更改模拟器上显示的日期,而无需更改Mac日期?

JOM*_*JOM 16

看起来很难......如何使用xcodebuild脚本自动构建和运行应用程序并使用systemsetup -setdate <mm:dd.yy>更改不同运行之间的日期?然后你不需要在代码中改变任何东西.

  • 没有任何评论的Downvotes是没用的. (20认同)

tom*_*tom 5

您可以使用方法调配来替换[NSDate date]运行时的实现,以返回您选择的值.

有关方法调配的更多信息,请参阅http://www.icodeblog.com/2012/08/08/using-method-swizzling-to-help-with-test-driven-development/.


小智 0

如果您正在创建应用程序,只需更改应用程序中的测试日期即可,然后在发布时将其删除。

  • 除非您需要在 20 个不同的日期进行测试,否则您必须重新编译 20 个不同的时间。(虽然我想人们可以将日期放入 plist 中。)并且您的代码中或在您无法控制源的模块中可能有“[NSDate date]”或等效的几个位置。 (2认同)