在iOS上生成随机默认屏幕

5

Xcode中的一个先决条件是设置'默认(Default)'和'高清(Default@2x)'图像,用于iPhone应用程序加载时显示。

是否可能制作一些默认屏幕,以png格式插入项目中,并每次加载应用程序时选择一个随机默认屏幕使用?


2
我建议您提出更具体的问题:是否可以在运行时更改默认图片?如果可以,那么添加随机性就很简单了。把这个问题包含在内只会让回答变得更困难。 - Martin Gjaldbaek
我感谢你对这个问题的关注。然而,下面的答案已经证明是令人满意的。谢谢。 - Paul Morris
这只是友好的建议 - 如果我显得冷漠,我很抱歉。我只是发现,通常问最简单的问题会导致更多和更好的答案,因为别人更容易理解你在问什么(根据标题,我原本期望的是完全不同的东西)。 - Martin Gjaldbaek
3个回答

8

您不能更改Default.png。一旦应用程序发布,它就是“铸成大错”。直到下一个版本发布为止。原因很简单(也是无法更改应用程序图标的原因)。应用程序包是只读的。它是只读的,因为它由您和苹果签名。修改包内容将使签名失效。


谢谢你的回答,Eimantas。我早有所料。刚刚想到了一个不错的点子,但我会通过其他方式来实现它。再次感谢。 - Paul Morris

8
您可以通过在info.plist中设置UILaunchImageFile属性,并将新图像写入“文档”文件夹来更改iOS中的默认屏幕(至少是第一次启动后)。例如:
<key>UILaunchImageFile</key>
<string>../Documents/NewDefault.png</string> 

然后将您的随机闪屏写入/Documents/NewDefault.png


似乎我需要更具体地说明... 我不建议您在运行时修改应用程序包中的任何内容,正如已经说过的那样,这是不可能发生的。

但是因为/Documents文件夹与.app文件夹并列,您可以通过相对路径设置UILaunchImageFile,然后在应用程序运行时将文件放置在指定的路径。


1
这个是否经过尝试和检查?据我所知,这个文件(info.plist)仍然是只读的。 - Jann
是的,我们已经完成了这个。你不是在写入 info.plist,而是在写入文档文件夹。 - Derek Munneke
如何在不写入info.plist文件的情况下覆盖UILaunchImageFile属性? - dklt
你可以在构建时设置UILaunchImageFile属性。 - Derek Munneke

1

没有办法在不重新构建应用程序的情况下更改启动屏幕。它的名称要么是硬编码在info plist中,要么如果在plist中没有设置任何内容,则设置为“Default.png”的默认值。

由于图像文件和plist文件都在应用程序包内,而应用程序包是数字签名的,即使您可以更改它们中的任何一个(因为它们是只读的),您的应用程序签名也会失效并在未越狱的设备上崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接