来自 build.phonegap.com 的 .ipa 文件在 iPhone 中不起作用

Posted

技术标签:

【中文标题】来自 build.phonegap.com 的 .ipa 文件在 iPhone 中不起作用【英文标题】:.ipa file fom build.phonegap.com is not working in iPhone 【发布时间】:2013-08-29 11:57:07 【问题描述】:

我正在使用 phonegap 来构建适用于 android 和 iPhone 的应用程序。这是我为 phonegap 构建的第一个应用程序,但我面临一些严重的问题。 首先我解释一下我在这个应用程序中所做的事情

我创建了一个 www 文件夹,其中包含两个 html 文件(index.html、dashboard.html)和一些 css 和 js(在Phonegap 2.9.0 中有一个 cordova.js)文件。

我已经创建了一个 config.xml 文件。

然后我制作了一个 zip 文件并将其粘贴到 https://build.phonegap.com 的上传部分

这是我的 config.xml 文件

 <?xml version="1.0" encoding="utf-8"?>

<cordova>
<!--
access elements control the Android whitelist.
Domains are assumed blocked unless set otherwise
 -->

<access origin="http://127.0.0.1*"/> <!-- allow local pages -->
<!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
<!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
<access origin="http://google.com" subdomains="true" />


<access origin=".*"/>

<!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
<!-- <content src="index.html" />-->

<log level="DEBUG"/>
<preference name="phonegap-version" value="2.9.0" />
<preference name="useBrowserHistory" value="true" />
<preference name="exit-on-suspend" value="false" />
<plugins>
<plugin name="App" value="org.apache.cordova.App"/>
<plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
<plugin name="Device" value="org.apache.cordova.Device"/>
<plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/>
<plugin name="Compass" value="org.apache.cordova.CompassListener"/>
<plugin name="Media" value="org.apache.cordova.AudioHandler"/>
<plugin name="Camera" value="org.apache.cordova.CameraLauncher"/>
<plugin name="Contacts" value="org.apache.cordova.ContactManager"/>
<plugin name="File" value="org.apache.cordova.FileUtils"/>
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
<plugin name="Notification" value="org.apache.cordova.Notification"/>
<plugin name="Storage" value="org.apache.cordova.Storage"/>
<plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/>
<plugin name="Capture" value="org.apache.cordova.Capture"/>
<plugin name="Battery" value="org.apache.cordova.BatteryListener"/>
<plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/>
<plugin name="Echo" value="org.apache.cordova.Echo" />
<plugin name="Globalization" value="org.apache.cordova.Globalization"/>
<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser"/>
<plugin name="VideoPlayer" value="com.phonegap.plugins.video.VideoPlayer"/>
<plugin name="PdfViewer" value="com.phonegap.plugins.pdf.PdfViewer"/>
<plugin name="FileOpener" value="com.phonegap.plugins.fileOpener.FileOpener"/>  
<plugin name="Downloader" value="com.phonegap.plugins.downloader.Downloader"/>
<plugin name="StatusBarNotification"       value="com.phonegap.plugins.statusBarNotification.StatusBarNotification"/>
</plugins>
</cordova>

而我的 index.html 文件是这样的:

    <!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--><head>
<meta charset="utf-8" />
<!-- Set the viewport width to device width for mobile -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sid Agency App</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="js/file.js"></script>
<script type="text/javascript" charset="utf-8" src="js/downloader.js"></script>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/organictabs.jquery.js"></script>

<script type="text/javascript">
    $(function() 
        $("#main_container").organicTabs();
    ); 
</script>

<script type="text/javascript">
$(document).ready(function() 
    var value = window.localStorage.getItem("key");
    if (value == "5") 
        top.location.href = "dashboard.html";
     else 
        $("#content").css("top", $("#header").height() + "px");
        $("#content").height($(window).height() - $("#footer").height() + "px");
        $("#content_inner").height($("#content").height() - $("#footer").height() + "px");

        var user_data = 
            login_id: 1234,
            pin_code: 1234
        ;
       ...........//so on

而我在 build.phonegap.com 中的 App id 是 401033。

我在我的 src 文件中为 eclipse 中的插件编写了一些代码。

但是我的问题是

现在,当我从 eclipse 到我的设备测试应用程序时,它按预期工作。

当我通过 xcode 在 iPhone 模拟器中测试应用程序时,除了一些警报,例如 gap:["Device","getDeviceInfo","Device984611098"], 差距:["NetworkStatus","getConnectionInfo","NetworkStatus984611099"],差距:["App","show","App984611100"]。

现在,如果我从两个 html 文件中删除此行,App 在模拟器中工作正常。

 <script type="text/javascript" src="js/cordova.js"></script>

但是当我从 build.phonegap.com 下载 apk 文件时,我可以看到除了 Fileopener、Downloader 之类的插件之外一切都运行良好(你可以看到我在 config.xml 中提到过插件标签内的文件)。这些插件都不起作用。

当我在 iPhone 中从 build.phonegap.com 下载 .ipa 文件时也是如此,因为每个内容都通过 ajax 传来,我看不到它们中的任何一个,但它来自 android。

我已经尝试了很多来解决这个问题,但没有任何帮助。谁能帮我?我在做什么错?提前致谢。

【问题讨论】:

【参考方案1】:

如果您为您的应用安装了 phonegap for android, 使用 their guide 为 ios 安装 phonegap,然后从您创建的 HelloWorld 应用中复制 js/cordova.js 文件并使用它。

【讨论】:

以上是关于来自 build.phonegap.com 的 .ipa 文件在 iPhone 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 build.phonegap.com 中添加插件

PhoneGap Build 上的 Hello World

在 https://build.phonegap.com/apps/*****/builds 构建 ipk 时,启动画面和图标未出现在 iOS 中

Urban Airship phonegap 3.5 with Phonegap Build

Phonegap Build 3.0 中的谷歌分析

Phonegap Build Inappbrowser 缩放