在iPhone应用程序中隐藏已开发的iPad类

在iPhone应用程序中隐藏已开发的iPad类,iphone,ios,ios-universal-app,Iphone,Ios,Ios Universal App,出于开发原因,我开始开发一款通用iOS应用程序,但只想先推出iPhone版本 除了在构建设置中将“目标设备系列”修改为“iPhone”之外,是否还有其他必要的步骤来防止用户在他们的iPad上打开已经开发的iPad类/视图 此外,用户(如越狱设备)是否有可能在其iPad上以iPad模式进入应用程序?(如何)可以防止这种情况发生?您可以设置如下条件: 如果(用户界面习惯用法()==UIUserInterfaceIdiomPhone){ ---做点什么-- } 并注释掉加载iPad类和视图的调用除了修

出于开发原因,我开始开发一款通用iOS应用程序,但只想先推出iPhone版本

除了在构建设置中将“目标设备系列”修改为“iPhone”之外,是否还有其他必要的步骤来防止用户在他们的iPad上打开已经开发的iPad类/视图


此外,用户(如越狱设备)是否有可能在其iPad上以iPad模式进入应用程序?(如何)可以防止这种情况发生?

您可以设置如下条件:

如果(用户界面习惯用法()==UIUserInterfaceIdiomPhone){

---做点什么--

}


并注释掉加载iPad类和视图的调用

除了修改“目标设备系列”属性之外,您不需要其他东西。我认为即使在越狱的设备上也不可能启动iPad模式,但例如,您可以从iPhone构建项目中删除iPad文件(及其依赖项)。我仍然认为这不是必要的步骤。

这个问题的答案根据您设置现有代码的方式而有所不同。例如,如果您对当前硬件执行运行时检查,例如
如果([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad)
并根据检查结果更改UI,则您必须重新编写一些代码,因为即使应用程序只有iPhone接口,这种情况在iPad上仍然适用

然后,另一种选择是在接口之间拆分类。如果做得好,这可能是最好的方法。我的意思是,真正坚持MVC范式,将两个接口分开,然后将每个接口链接到自己的控制器对象,然后将应用程序的尽可能多的可重用逻辑放在一个普遍可访问的对象中

如果你按照我刚才提到的第二种方式来做,你应该不会有任何麻烦。只需将项目指向iPhone/iPad版本的故事板,就可以加载正确的类文件等。这让我直接回答了您的问题

修改“目标设备系列”是您真正需要做的一切,前提是您已经按照我列出的第二种方式设置了项目。此外,不应该担心越狱用户会访问iPad文件。他们可以加入,但他们都被编译了,99%的人不知道该怎么处理这一大堆胡言乱语

即使他们这么做了,我也不认为有人会特意去寻找iPad版本的纯iPhone应用程序。他们知道,如果一个应用程序有完整的iPad版本,它只会在他们的iPad上运行。

看看