Lan*_*don 1 iphone xcode osx-snow-leopard ios
我知道这适用于ios 6.0遵循这些步骤是否有可能在Snow Leopard上获得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具有保留时间戳,符号链接等的优点,如果有的话.
复制后,删除Device Support目录中的"Latest"链接并重新链接到"6.1(10B141)",如下所示:ln -s"6.1(10B141)"最新
==============================================
此时您可以重新启动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发行版:你的公司"
仍然在归档目录中,运行代码签名如下:首先删除当前签名文件以防万一:
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用户丢弃他的设备.这些家伙老了,顽强.使用两台机器进行开发对我来说不是一个有吸引力的选择.
| 归档时间: |
|
| 查看次数: |
4307 次 |
| 最近记录: |