将 iphone 个应用程序转换为通用

Coverting iphone app to universal

我知道这个问题有几个答案,但我不清楚结果。这里有几个问题:

1) 如果我将项目创建为 iPhone 项目,在部署信息中将设备选择为 iPhone,并使用通用情节提要设计应用程序(即任意宽度和任意高度 (600x600) ).设计完成后 iPad 上 运行,UI 看起来不太好。如果是这样,那么选择设备作为 iPhone 有什么意义? Am I right that when selecting the device as iPhone or iPad, Xcode will allow the app to only 运行 on those devices?

2) 现在将 iPhone 应用程序转换为通用应用程序:由于图像分辨率从 iPhone 到通用应用程序不等,我们是否必须将所有旧图像替换为支持通用应用程序的新图像?

3) 如果我有一个 iPhone 应用程序,Apple 团队将在 iPhone 和 iPad 上对其进行测试。如果他们发现 UI 与 iPad 不匹配,他们会拒绝该应用程序吗?

根据您的问题,这些是常见的做法

  1. 用户界面不依赖于部署设备。 用户界面取决于您实施的 UI 逻辑。正如您所说,默认故事板大小为 600x600(这可以很容易地更改),但这并不意味着所有设备都应该是这个分辨率。当分辨率不同时,图像和 UI 元素会错位。有几种方法可以实现 UI 逻辑并使 UI 灵活,但我想你的问题与此无关。所以,简短的回答 - 设备选择更多的是关于部署而不是 UI.

  2. 对于不同的设备可能会有一些不同的图像,但是按钮或文本字段等图像应该是灵活的

  3. 不,Apple 不关心您的应用程序外观和设计

希望我已经回答了你的问题。

  1. 我想 UI 看起来就像在 iPhone 上一样,只是放大以适合 iPad。基本上这是因为 iPhone 只有应用程序可以在 iPad 上 运行,反之亦然。如果您将应用程序更改为通用应用程序,它将尝试 运行 在 iPad 上本地显示,如果您适当地使用了自动布局和大小 类,它可能看起来会更好。

(可选的其他原因)另一个选择是您 运行 遇到 iOS 8 问题,如果您使用 storyborad 或 nib 作为启动文件,它会错误地制作一个iPhone 只有应用程序作为通用应用程序工作。在iOS 8.0、8.0.1 和8.0.2 中使用Launch Screen File 将使您通用。

这是一个已知错误并已在 iOS 8.1 中修复,您唯一的选择是将资产目录与启动图像一起使用。

或者你可以在启动文件名中添加设备修饰符,例如<launchNib>~iphone.nib

  1. 就图像而言,您需要确保拥有不同分辨率(@1x、@2x、@3x)的图像。如果您还没有,我建议您阅读资产目录 (http://schlu.org/2013/10/01/Xcode-Asset-Catalogs.html)。 iPhone 和 iPad 之间的图像本质上没有区别(启动图像除外),但真正重要的是像素密度(旧设备是 1x,大多数视网膜设备是 @2x,而 6 Plus 是@3x).

  2. 如果它真的只是一个 iPhone 应用程序,Apple 不会拒绝该应用程序,因为它在 iPad 上看起来像素化且丑陋。 运行 iPhone 仅 iPad 上的应用程序的能力源于 iPad 的初始版本,当时人们还没有创建 iPad 或通用应用程序。如果有人真的想要一个尚未创建专门支持 iPad 的应用程序,Apple 基本上会提供它。

也就是说,我会继续将其作为通用应用程序发布。如果您没有创建单独应用程序的收入原因,我不建议您拥有两个应用程序的额外麻烦。当然,如果您的应用在 iPad 上没有意义,只需将其设为 iPhone。