我知道这可以按照这些步骤Is it possible to get the iOS 5.1 SDK for Xcode 4.2 on Snow Leopard?使用ios 6.0,但现在看来这是不可能的。有没有人知道解决方法或我应该升级?
答案 0 :(得分:8)
仍然可能。实际上,您可以使用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<&lt;您的目录名称&gt;&gt;
注意:特定版本的设备支持目录可能不同(即&#34; 6.1.2(10B146)&#34;或更高版本),请在以下所有说明中使用与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具有保留时间戳,符号链接等的优点,如果有的话。
复制后,删除链接&#34;最新&#34;在设备支持目录中并重新链接到&#34; 6.1(10B141)&#34;像这样:ln -s&#34; 6.1(10B141)&#34;最新
============================================== < / p>
此时您可以重新启动XCode 4.2,您应该能够:
在组织者中添加6.1设备,并在其上运行和调试代码
选择6.1 SDK作为&#34;最新&#34;为您的项目和建立反对它。
============================================== < / p>
但是,如果你想支持4&#34; iPhone 5屏幕(通过添加Default-568h@2x.png启动映像)您仍然无法提交以此方式构建到Appstore的应用程序。 XCode 4.2将SDK 5.0嵌入到应用程序归档中的一些元数据中,因此看起来就像应用程序是针对5.0 sdk构建的。 Appstore积极拒绝包含4&#34;屏幕支持,不是针对6.0或更高版本的SDK构建的。
所以,你必须采取一些手工工作来告诉Appstore已经存在的事情:)
以下是:
归档您的申请。在Finder中打开存档目录(右键单击该行,&#34;在finder&#34中显示;),打开终端,键入&#34; cd&#34;,将目录拖放到终端并按&#34 ;输入&#34 ;.现在您在该目录中,可以使用那里的文件。
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
现在您需要重新签名该应用程序。应用程序二进制文件位于同一文件夹中,应命名为&#34; yourapp&#34;
为此,您首先需要在签名期间使用的嵌入式授权文件的副本。
您可以从XCode 4.5下的应用程序存档中复制该文件:查找文件名:archived-expanded-entitlements.xcent,复制到应用程序目录(以防万一,不确定是否需要)< / p>
从当前应用程序中提取它,如下所示: codesign -d --entitlements /tmp/entitlements.xml" yourapp&#34;
在文本编辑器中打开文件/tmp/entitlements.txt并清理之前发生的任何奇怪的事情&lt; ?xml版本标签,保存。
现在找到您的分发证书的确切名称。您可以从多个地方复制它,但最好是打开Keychain Access应用程序,选择分发证书,双击以打开属性并复制&#34;常用名称&#34;。它应该类似于&#34; iPhone发行版:您的公司&#34;
仍然在归档目录中,运行codesign,如下所示: 首先删除当前签名文件以防万一:
rm -rf _CodeSignature
然后运行:
codesign -f -s&#34; iPhone发行版:贵公司&#34; --entitlements /tmp/entitlements.xml yourapp
就是这样。您的应用程序现在针对6.1 SDK构建并显示。您应该能够从Organizer验证并将其提交到appstore。
============================
免责声明:以这种方式提交的我的应用仍然是#34;等待审核&#34;。如果被接受/拒绝,将在此处发布。
注意:为什么要跳过这些箍?好吧,有几个原因:
因为我应该能够在任何我想要的环境中发展,所以该死。
OSX 10.6上的XCode 4.2是支持PowerPC和OSX 10.4 SDK的XCode的最后一个版本。如果像我一样,你必须支持必须在该平台上运行的旧桌面产品 - 你别无选择,只能坚持使用它直到最后一个PowerPC用户丢弃他的设备。这些家伙老了,顽强。使用两台机器进行开发对我来说不是一个有吸引力的选择。