所以我问并回答了这个问题[如何在没有 Phonegap Build 的情况下做 Phonegap 3.0][1]。现在我的应用程序也已为 iOS 做好了准备(我认为),是时候开始为该平台部署和调试了。
正式问题:如何将 iOS 平台添加到 Phonegap 3.0 项目中?
所以我问并回答了这个问题[如何在没有 Phonegap Build 的情况下做 Phonegap 3.0][1]。现在我的应用程序也已为 iOS 做好了准备(我认为),是时候开始为该平台部署和调试了。
正式问题:如何将 iOS 平台添加到 Phonegap 3.0 项目中?
这个答案仍在进行中。
我实现的目标:
尝试失败:
1. 创作
我可以按照文档的 iOS 平台指南中的描述轻松添加 iOS平台。
基本上,如果项目已经存在,因为您首先使用了 Android,这就是您设置 iOS 应用程序结构的方式。
$ add platform ios
然后,如果您的 Android 工作中还没有文件,则应该将文件添加到主 /www 文件夹。然后这将负责以调试形式创建应用程序:
$ cordova prepare //Creates all the necessary source filed
$ cordova compile //Creates an ipa file
//Alternatively, do both in one go with cordova build
2. 部署到设备
但完全不清楚如何使用命令行界面将测试应用程序实际部署到设备或模拟器。
当您连接物理 iOS 设备时,只需从主项目文件夹中尝试此操作...
$ cordova run ios
你会得到一个非常明确的答案:
[Error: An error occurred while running the ios project. Targeting a device is not supported currently.
]
所以我已经辞职了,为了设备测试,我仍然必须使用 xCode。没什么大不了的。但是,在您更新文件后,xCode 无法自行“刷新”项目,因此在两次部署之间,您必须返回命令行重新编译 iOS 应用程序。
奇怪的是,当我更新我的代码时,我确实需要使用“cordova run ios”(即使出现上述错误)才能更新 /platforms/ios/www 文件夹。所以这是有效和无效的:
$ cordova run ios
//Rebuilds the app with main /www files successfully,
//then tries to deploy to device and fails in that.
$ cordova prepare ios
//Does not rebuild with main /www files
//(Also does not deploy but that is not its intended function)
请记住,您还需要在两次运行之间清理您的 xCode 项目。所以顺序是:
3. 部署到模拟器
尽管如此,“部署到设备是不可能的”引出了一个问题“模拟器呢?”......
3.0 命令行界面上的文档页面提到您应该输入命令
$ /path/to/my_new_project/cordova/run
这让我都感到困惑。那是怎样的一条路?你应该从哪里运行它?这是提供可以从任何地方运行的命令的好方法吗?为什么要强迫我为每个命令输入烦人的长项目路径?
令人困惑的是,如果您实际转到运行可执行文件所在的“platforms/ios/cordova”目录,则运行命令不起作用。
诀窍是低一个目录,即在您的 Cordova 应用程序项目的 /platforms/ios 子文件夹中。在那里你输入“cordova/run”。然后在我的情况下,它开始构建。
4.安装“ios-sim”
但这还没有结束。随后,我收到一个关于未安装“ios-sim”的意外错误。
[...]
** BUILD SUCCEEDED **
Error: ios-sim was not found. Please download, build and install version 1.5 or greater from https://github.com/phonegap/ios-sim into your path. Or 'brew install ios-sim' using homebrew: http://mxcl.github.com/homebrew/
幸运的是,该项目网页有足够的关于如何安装的文档。但是,即使将 ios-sim 目录添加到我的 $PATH 之后,当我想模拟时,我也会收到以下错误。
$ cordova emulate ios
[TypeError: Arguments to path.join must be strings]
这是我目前卡住的地方。我的路径看起来完全像这样(全部在一行中):
export PATH=${PATH}:/Applications/adt-bundle/
sdk/platform-tools:/Applications/adt-bundle/sdk
/tools:%JAVA_HOME%\bin%ANT_HOME%\bin:"/Users/
cool/Library/Developer/iossim"
我究竟做错了什么?我尝试过使用和不使用双引号,我什至将 ios-sim 目录重命名为 iossim,以防连字符出现问题。没有效果。
所以暂时没有模拟器。
5.安装到iOS App Store
这就是Phonegap真正让你陷入困境的地方。可能是因为他们希望您使用他们的付费应用发布服务,还因为发布 iOS 应用的过程基本上就是您使用 xCode、iOS Developer Portal 和 iTunes Connect 所做的事情。
所以这里是这样的:
您需要为您的应用程序拥有所有正确的证书和配置文件(是的,这是一堆相互需要的难以理解的虚拟文档,Apple 就像应用程序商店的苏联)。
您在 iOS 开发人员门户中请求这些证书和配置文件,将它们保存到磁盘,然后双击它们,以便 xCode 知道您拥有它们并将它们包含在您的应用程序中。
这是有关如何发布您的应用程序的 xCode 4 的文档页面。
最反直觉的一点是,为了发布您的应用程序,您首先必须在 xCode 中创建它的存档(在 xCode > 菜单栏 > 产品 > 存档中打开您的项目)。
创建存档后,您将在“存档”选项卡下的“管理器”视图中看到它。应该有两个按钮:验证和分发。验证检查并将您的所有配置文件和证书包含在应用程序中,它还检查错误版本号等错误。
Distribute 言行一致:它将应用程序汇总到 App Store。
恭喜!(现在等五天)