代码之家  ›  专栏  ›  技术社区  ›  Adi

基地对现役对部署目标

  •  25
  • Adi  · 技术社区  · 15 年前

    我知道这个问题的部分内容有好几种不同,但我想确保我做的对。

    以下是我的假设和理解,我想在提交之前知道它们是否正确。

    我的应用程序采用所有操作系统支持的功能,因此我应该:

    1. 将活动的sdk设置为最新的(当前为sdk 3.0)。
    2. 将部署目标设置为我想要支持的较低级别-iPhone2.0和更高级别?
    3. 基本的SDK到底是用来做什么的?如果我选择活动的sdk不同,我应该忽略它吗?在项目设置中,我在哪里看到活动的sdk?

    最后一个问题是,苹果是否允许选择iPhoneOS2.0作为部署目标?

    事先谢谢,

    顺便说一句,我提出这个问题的一个主要原因是,当使用早期的sdks编译时,苹果似乎在释放uiimageview动画数组的内存时遇到了问题,因为这个动画是为多次使用而保存的。这是使用sdk 3.0修复的已知问题(只需将uiImageView动画数组设置为nil)

    4 回复  |  直到 10 年前
        1
  •  28
  •   Community CDub    8 年前

    基础软件开发工具包和活动软件开发工具包的区别在于前者是为项目设置的默认软件开发工具包,后者是您当前构建的软件开发工具包。因此,活动的sdk可能是基本sdk,此时xcode将使用为项目指定的sdk。

    为了为尽可能多的设备构建应用程序,您是正确的:

    • 将基本SDK设置为尽可能最新的SDK(3.0、3.0.1)
    • 将部署目标设置为尽可能早的SDK(2.0)

    苹果允许您指定iPhone2.0作为部署目标,但请记住,在iPhone2.0之后发布的任何API或框架在默认情况下都不可用。有 techniques to use features from later SDKs 然而,它们是不平凡的。

        2
  •  8
  •   clarkcox3    15 年前

    您应该将基本sdk构建设置设置为包含您打算使用的所有功能的最新sdk(通常是最新的可用sdk),并将“iphone部署目标”构建设置设置为要运行的操作系统的最早版本。

    然后,您需要确保在运行时检查早期操作系统上可能不存在的任何功能。

        3
  •  3
  •   jww avp    12 年前

    “基本SDK”是应用程序可以支持的最大SDK。这里有一个硬限制-您不能选择未来未发布的SDK。

    “部署目标”是您愿意支持的最小SDK。你愿意走多远。

    Xcode似乎对“部署目标”产生了虚假的依赖关系。例如,我无法在iOS 5.1.1 iPod上使用Xcode 4.5.2(Xcode 4.5.2与iOS 6.0配对)进行开发,尽管4.3、5.0和5.1 API和模拟器安装在此安装上。我需要在iOS 6.0 iPhone中使用模拟器或插孔。

    苹果正在玩的游戏似乎也给应用程序带来了问题。我购买的元素副本不会通过iTunes同步到iPod,因为元素需要更新版本的iOS才能运行(它在iOS 6.0 iPhone上同步并运行良好)。

    我有两台iPad,一台是4.3。想到这会造成多大的混乱,我不寒而栗。

        4
  •  1
  •   Pork 'n' Bunny    11 年前

    一般来说;

    将基本sdk设置为您愿意支持和测试的最新sdk。

    将部署目标设置为您愿意支持和测试的最低版本的iOS。

    如果您碰巧使用部署目标SDK上不可用的基本SDK功能,则该应用程序将在运行时在较旧的设备上崩溃,因此测试至关重要。

    另一个/补充的过程是使用部署 http://www.deploymateapp.com/ 它进行静态代码分析以识别问题。

    如果你来自Android世界,那么类似的情况就是这样的;

    TargetSDK->基本SDK

    minsdk->部署目标

    皮棉——部署