Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无Phonegap构建的iOS Phonegap应用程序_Android_Ios_Cordova_Command Line Interface - Fatal编程技术网

Android 无Phonegap构建的iOS Phonegap应用程序

Android 无Phonegap构建的iOS Phonegap应用程序,android,ios,cordova,command-line-interface,Android,Ios,Cordova,Command Line Interface,因此我提出并回答了这个问题[如何在没有Phonegap构建的情况下实现Phonegap 3.0][1]。现在我的应用程序也可以用于iOS了(我想),是时候开始为该平台部署和调试了 正式问题:如何将iOS平台添加到Phonegap 3.0项目中?此答案仍在进行中 我实现的目标: 在命令行中编译项目,然后使用xCode在设备或sim卡上运行 尝试失败: 全部通过命令行编译和运行(设备/sim) 1。创作 我可以很容易地添加iOS平台,如中所述 基本上,如果项目已经存在,因为您首先使用了An

因此我提出并回答了这个问题[如何在没有Phonegap构建的情况下实现Phonegap 3.0][1]。现在我的应用程序也可以用于iOS了(我想),是时候开始为该平台部署和调试了


正式问题:如何将iOS平台添加到Phonegap 3.0项目中?

此答案仍在进行中

我实现的目标:

  • 在命令行中编译项目,然后使用xCode在设备或sim卡上运行
尝试失败:

  • 全部通过命令行编译和运行(设备/sim)

1。创作

我可以很容易地添加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项目。所以顺序是:

  • 上一轮
  • 编辑您的代码
  • 在控制台中,执行以下操作:cordova运行ios
  • 在xCode中,菜单栏>产品>清洁产品
  • 在xCode中,运行

  • 3。部署到仿真程序

    然而,“部署到设备是不可能的”回避了一个问题“emulator呢?”

    3.0命令行界面上的docs页面提到您应该输入命令

    $ /path/to/my_new_project/cordova/run
    
    这让我很困惑。那是什么样的道路?你应该在哪里运行它?这是一种提供可以在任何地方运行的命令的好方法吗?为什么要强迫我为每个命令输入令人烦恼的长项目路径

    令人困惑的是,如果您实际转到运行可执行文件所在的“platforms/ios/cordova”目录,则run命令不起作用

    诀窍是降低一个目录,即在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]
    
    这就是我目前所处的困境。我的路径与此完全相同(都在一行中):

    我做错了什么?我尝试过使用双引号和不使用双引号,我甚至将ios sim目录重命名为iossim,以防连字符出现问题。没有效果

    所以现在没有模拟器

    5。安装到iOS应用商店

    这就是Phonegap真正让你陷入困境的地方。也许是因为他们想让你使用他们的付费应用发布服务,但也因为发布iOS应用的过程基本上就是你使用xCode、iOS开发者门户和iTunes Connect所做的事情

    下面是:

    你需要为你的应用程序拥有所有正确的证书和配置文件(是的,这是一堆相互需要的难以理解的虚拟文档,苹果就像应用程序商店的苏联)

    您可以在iOS开发者门户中请求这些证书和配置文件,将它们保存到磁盘,然后双击它们,以便xCode知道您拥有它们,并将它们包含在您的应用程序中

    这是有关如何发布应用程序的详细信息

    最违反直觉的一点是,为了发布你的应用程序,你首先必须在xCode中创建它的存档(在xCode>菜单栏>产品>存档中打开你的项目)

    创建存档后,您将在“存档”选项卡下的“组织者”视图中看到它。应该有两个按钮:验证和分发。验证检查并在应用程序中包含您的所有配置文件和证书,它还检查错误,如错误的版本号

    Distribute按照它所说的做:它将应用程序汇总到应用商店

    恭喜你!(现在等五天)

    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"