草庐IT

android - 没有Phonegap构建的iOS Phonegap应用

coder 2024-01-14 原文

因此我问并回答了问题[如何在没有Phonegap Build的情况下进行Phonegap 3.0] [1]。现在,我的应用程序也适用于iOS(我认为),是时候开始为该平台进行部署和调试了。

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

最佳答案

这个答案仍在进行中。

我已经实现的目标:

  • 在命令行中编译项目,然后使用xCode
  • 在设备或sim上运行

    尝试失败:
  • 通过命令行
  • 进行编译和运行(设备/ sim)


    1.创建

    我可以按照docs' iOS Platform Guide中所述轻松添加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.部署到模拟器

    不过,“无法部署到设备”引出了一个问题:“模拟器如何?” ...

    3.0命令行界面上的docs页面提到您应该输入命令
    $ /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知道您拥有它们并将其包含在您的应用程序中。

    这是关于如何发布应用程序的docs page for xCode 4

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

    归档后,您将在“归档”选项卡下的管理器视图中看到它。应该有两个按钮:“验证”和“分发”。验证检查并在应用程序中包括所有个人资料和证书,还检查是否有错误,例如版本号错误。

    Distribute会执行所说的事情:它将应用程序汇总到App Store。

    恭喜你! (现在等待五天)

    关于android - 没有Phonegap构建的iOS Phonegap应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18956966/

    有关android - 没有Phonegap构建的iOS Phonegap应用的更多相关文章

    1. ruby - 将差异补丁应用于字符串/文件 - 2

      对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

    2. ruby - 难道Lua没有和Ruby的method_missing相媲美的东西吗? - 2

      我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/

    3. ruby-on-rails - Rails 应用程序之间的通信 - 2

      我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

    4. ruby - 无法运行 Rails 2.x 应用程序 - 2

      我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

    5. ruby-on-rails - rails 目前在重启后没有安装 - 2

      我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

    6. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

      刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

    7. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

      我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

    8. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

      我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

    9. 没有类的 Ruby 方法? - 2

      大家好!我想知道Ruby中未使用语法ClassName.method_name调用的方法是如何工作的。我头脑中的一些是puts、print、gets、chomp。可以在不使用点运算符的情况下调用这些方法。为什么是这样?他们来自哪里?我怎样才能看到这些方法的完整列表? 最佳答案 Kernel中的所有方法都可用于Object类的所有对象或从Object派生的任何类。您可以使用Kernel.instance_methods列出它们。 关于没有类的Ruby方法?,我们在StackOverflow

    10. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

      我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

    随机推荐