【问题标题】:Phonegap/Xcode issues with iPad 1 appiPad 1 应用程序的 Phonegap/Xcode 问题
【发布时间】:2015-03-10 11:10:24
【问题描述】:

我在让 iPad 应用程序在 iPad 1 上运行时遇到问题。

我已经成功地在我的 iPad 2 上部署和安装了该应用程序,但在 iPad 1 上安装该应用程序不起作用。该应用程序似乎已安装,但完成后图标消失。重新启动 iPad 后,图标会重新出现,但打开应用程序时会弹出初始屏幕,然后应用程序关闭,不会出现任何错误。

该应用程序是一个使用 phonegap 创建的简单 HTML5 和 JS 应用程序,我目前有其他 iPad 1 运行该应用程序。目前运行该应用程序的 iPad 1 是由一个已经消失的外部开发人员打包的,但我正在使用他的源代码。有人告诉我,phonegap 从 3.5 版开始放弃了对 ios 5.1 的支持,所以我也尝试将我的 phonegap 版本回滚到最新的 3.4 版本。我也尝试过一些设置,例如构建架构。

我的应用供内部企业使用,而不是 App Store。


有用信息:

iPad iOS 版本:5.1.1 (9B206)

Phonegap 版本:3.4.0-0.20.0 / 4.1.2-0.22.12

Xcode 版本:6.1

Xcode iOS 部署目标:5.1.1

架构:标准 - $(ARCHS_STANDARD)

有效架构:armv6、armv7、arm64

应用是一个基本的 HTML5 应用

我正在使用目前在我的 iPad 1 上的完整实时版本的源代码


我也尝试过:

架构:$(ARCHS_STANDARD_32BIT)

有效架构:armv6、arm64

错误:没有要编译的架构 (ARCHS=, VALID_ARCHS=armv6 arm64)。

架构:$(ARCHS_STANDARD_32BIT) armv6

有效架构:$(ARCHS_STANDARD_32BIT) armv6

导出应用时导致 Xcode 崩溃 - 在存档阶段有 3 个依赖项分析警告


调试器输出:

2015-01-12 16:50:27.316 MyApp[227:707] 多任务 -> 设备:是,应用程序:是 dyld:惰性符号绑定失败:找不到符号:_objc_setProperty_nonatomic_copy 引用自:/var/mobile/Applications/305DAE80-626C-4CD9-AB47-0139F97B731D/MyApp.app/MyApp 预期在:/usr/lib/libobjc.A.dylib

dyld:未找到符号:_objc_setProperty_nonatomic_copy 引用自:/var/mobile/Applications/305DAE80-626C-4CD9-AB47-0139F97B731D/MyApp.app/MyApp 预期在:/usr/lib/libobjc.A.dylib


我们将不胜感激任何解决此问题的帮助。如果您需要任何其他信息,请告诉我。

【问题讨论】:

  • 用 USB 插入 iPad,然后在 Xcode 中打开 Windows > 设备菜单。选择左侧的 iPad 1,在窗口底部应该有一个带有日志的控制台,可为您提供有关正在发生的事情的更多信息。尝试重新安装应用程序,同时注意日志。
  • @Guillaume Algis Xcode 没有 iPad 1 模拟器 AFAIK
  • 是的,将你的 real iPad 1 插入 USB,设备将出现在列表中。
  • @Guillaume Algis 为那个 Guillaume 道歉,我已经添加了输出中的错误。应用程序在启动屏幕后崩溃,就像正常运行时一样。
  • 扫描these search results。您可能会找到有关该错误的一些有用信息。

标签: ios xcode ipad cordova ipa


【解决方案1】:

尽管没有任何帮助论坛(包括苹果开发者论坛)的回复,但我自己设法解决了这个问题。所以我会尽量给出一个菜鸟友好的答案,因为我觉得这是严重缺乏的东西。

iPad 1 的最高 iOS 版本为 5.1.1,不支持 64 位应用程序。

要在 phonegap 应用上构建 iOS 5.1.1+ (iPad 1) 兼容性,请将项目的部署目标设置为 5.1.1(您需要手动输入)。 (点击下图右侧的下拉菜单在项目和目标之间切换)

然后单击上图左侧的项目导航器图标。在您的侧边栏中,您应该有您的项目文件,包括您的 config.xml、www 文件夹等。在此列表中,您应该看到一个 CordovaLib.xcodeproj 文件夹。

此项目文件默认为 iOS 6.0 的部署目标,将目标更改为 iOS 5.1 将使静态库 CordovaLib 与您的 iPad 1 兼容。

现在,开始构建和归档应用程序。由于 iPad 1 不支持 64 位应用程序,使用 $(ARCHS_STANDARD) 作为 Build Settings 下的 Architectures 选项,将导致您的应用程序无法在 iPad 1 上安装。

要解决此问题,请双击架构上的“标准”标签,然后将“$(ARCHS_STANDARD)”替换为 armv7

现在将“仅构建活动架构”选项设置为。您现在应该可以将“有效架构”设置保留为 $(ARCHS_STANDARD) -(将显示为 armv7 arm64)。此设置将强制应用程序构建为 armv7。允许应用使用 arm64(64 位)构建会导致应用在分发时无法下载/安装。

您的应用现在应该安装在 iPad 1 上。


如果您对应用程序图标在安装后消失,但在重新启动 iPad 1 后重新出现有任何问题,请确保项目文件中的包标识符与您的主文件夹中 config.xml 中的包标识符相同项目。

这是由于这两个文件中的包标识符不匹配造成的。

【讨论】:

    猜你喜欢
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    相关资源
    最近更新 更多