是否有可能在Snow Leopard上获得Xcode 4.2的iOS 6.1 SDK?

我知道这与iOS 6.0以下步骤一起工作是否有可能在雪豹上获得Xcode 4.2的iOS 5.1 SDK? 但它现在不会出现这是可能的。 有谁知道解决方法或者我应该升级?


仍然有可能。 实际上,您可以使用SDK 6.1中的Snow Leopard上的XCode 4.2完成所有开发并将应用程序提交给Appstore。 但是,你不能运行模拟器6.1(所以使用真实的设备)。

这是如何(几个步骤缩写):

  • 你将需要找到一个Lion / Mountain Lion和XCode 4.5的系统,你将用它作为数据源(我在VMWare中有一个)。 重要提示:您需要将运行ios 6.1的iOS设备连接到该系统,并在XCode 4.5组织器中打开它,以便XCode可以下载适当的符号。

  • 从带有XCode 4.5的系统复制以下源代码目录:

    设备支持:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/6.1(10B141)

    SDK:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk

    使用tar存档每个目录可能是最方便的,如下所示:tar cvf /tmp/archive.tar <<目录名称>>

    注:特定版本的设备支持目录可能有所不同(即“6.1.2(10B146)”或更高版本),请在以下所有说明中使用与您的ios设备匹配的设备。

  • 您需要将这些目录复制到具有XCode 4.2的Snow Leopard系统到以下目录中(假设您的XCode安装位于/ Developer中,如果像我一样,它在其他位置,则根据需要替换路径的第一个组件):

    设备支持:/Developer/Platforms/iPhoneOS.platform/DeviceSupport/

    SDK:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

    如果使用tar,请更改到每个目录并像下面这样提取其各自的tar归档文件:tar xvf /tmp/archive.tar。 如果有tar,使用tar有保留时间戳,符号链接等的优点。

    复制后,删除设备支持目录中的链接“最新”,并重新链接到“6.1(10B141)”,如下所示:ln -s“6.1(10B141)”Latest

  • ==============================================

    此时您可以重新启动XCode 4.2,并且您应该能够:

  • 在组织者中添加你的6.1设备,并运行和调试代码

  • 为您的项目选择6.1 SDK作为“最新”,并根据它进行构建。

  • ==============================================

    但是,如果您尝试支持4“iPhone 5屏幕(通过添加Default-568h@2x.png启动映像),您仍然无法完全提交以此方式构建到Appstore的应用程序.XCode 4.2将SDK 5.0嵌入到某些的应用程序存档中的元数据,因此它看起来应用程序是针对5.0 sdk构建的.Appstore主动拒绝包含4“屏幕支持并且不针对6.0或更高版本SDK构建的二进制文件。

    所以,你必须诉诸手动工作告诉Appstore什么是真实的:)

    这里是:

  • 归档你的应用程序 在Finder中打开档案目录(右键点击行,“在finder中显示”),打开终端,输入“cd”,将目录拖放到终端,然后按“Enter”。 现在你在那个目录下,并且可以在那里处理文件。

  • cd Products / Applications / yourapp.app

  • 将会有一个名为Info.plist的文件 - 它是二进制格式。 将它转换为XML,如下所示:plutil -convert xml1 Info.plist

  • 在您最喜爱的编辑器中打开Info.plist。 在以下条目中查找对sdk 5.0(或SDK的二进制值)的引用,并替换为对6.1的引用:DTPlatformVersion:6.1 DTPlatformBuild:10B141 DTSDKBuild:10B141 DTSDKName:iphoneos6.1

  • 如果您觉得冒险,请更换XCode版本并创建值。 我没有。

  • plutil -convert binary1 Info.plist

  • 现在您需要重新签署应用程序。 应用程序二进制文件位于同一文件夹中,应命名为“yourapp”

  • 为此,您首先需要签署期间使用的嵌入权利文件副本。

  • 您可以从XCode 4.5下创建的应用程序存档中复制该文件:查找文件名:archived-expanded-entitlements.xcent,复制到应用程序目录(以防万一,如果需要,不知道)

  • 从当前应用程序中提取它,如下所示:codesign -d --entitlements /tmp/entitlements.xml“yourapp”

  • 在文本编辑器中打开文件/tmp/entitlements.txt,并清除<?xml版本标记,保存之前的任何奇怪内容。

  • 现在找到您的分销证书的确切名称。 您可以从多个位置复制它,但最好是打开Keychain Access应用程序,选择分发证书,双击打开属性并复制“通用名称”。 它应该是像“iPhone分布:你的公司”

  • 仍然在归档目录中,按如下所示运行codesign:首先删除当前签名文件,以防万一:

    rm -rf _CodeSignature

    然后运行:

    codesign -f -s“iPhone发行版:贵公司”--entitlements /tmp/entitlements.xml yourapp

  • 就是这个。 您的应用程序现在针对6.1 SDK进行构建并显示。 您应该能够从Organizer中验证并提交给appstore。

    ============================

    免责声明:我这种提交的应用程序仍然是“等待审核”。 如果因为这个原因被接受/拒绝,会在这里发帖。

    注意:为什么跳过这些篮球? 那么,几个原因:

  • 因为我应该能够在任何我想要的环境中发展,所以应该忍无可忍。

  • OSX 10.6上的XCode 4.2是支持PowerPC和OSX 10.4 SDK的XCode的最后一个版本。 如果像我一样,必须支持必须在该平台上运行的旧桌面产品 - 您别无选择,只能坚持使用它,直到最后一位PowerPC用户放弃他的设备。 这些人老而顽强。 使用两台机器进行开发对我来说不是一个有吸引力的选择。

  • 链接地址: http://www.djcxy.com/p/33305.html

    上一篇: Is it possible to get the iOS 6.1 SDK for Xcode 4.2 on Snow Leopard?

    下一篇: running iOS Simulator on Snow Leopard