【问题标题】:IPhone App died under iOS 4.1. No code changesiPhone App 在 iOS 4.1 下死掉了。无代码更改
【发布时间】:2010-09-08 22:09:05
【问题描述】:

我安装了今天刚刚发布的 iOS 4.1。

我从 AppStore 将我的应用下载到手机并运行它,但它无法获取 GPS 位置。

我下载了新的 XCode 和 4.1 SDK 并在 4.1 下重新编译,应用在 4.1 iPhone 上运行良好。

未更改任何代码。

为什么在 4.0 下编译的应用程序在 4.1 下不工作。

BASE SDK 是 4.0

IOS 部署目标:iOS 4.0

新设置

BASE SDK 是 4.1

IOS 部署目标:iOS 4.0

有点烦我需要重新提交,即使我没有更改任何内容......又一周的黑洞应用提交!


在 3 次尝试部署到 App Store 并大量剖析项目文件后,我发现了以下内容:

BUILD 和 TARGET 的部署目标不同 并且 base sdk 只在 Debug in Target 中设置

我让 Debug/Release 可以在我的手机上运行,​​因此假设如果 relelase 和 Distribution 具有相同的设置,那么 App Store 中应该可以运行。

但即使在设置并重新部署到应用商店后,它也无法工作(应用已加载且没有 GPS)。

我尝试删除配置文件,但没有成功。

一夜之间手机断电,当我重新启动应用程序时。

所以不确定这是否是所有 3 个的奇怪组合。

iOs Deployment Target (IPHONEOS_DEPLOYMENT_TARGET = 4.0;): iOS 4.0
BASE SDK(SDKROOT = iphoneos4.1;): iOS 4.1
for BUILD (Debug/Release/Distribution) (Right click on top level in tree YourApp >> Info menu)
and TARGET (Debug/Release/Distribution) (Right click on Target >> YourApp >> Info menu)

将 4.0 上的应用发布到应用商店。 4.1 发布 升级我的应用程序来检查它。 应用程序运行正常,但在许多屏幕中都无法获取 GPS。 在 4.1 下重新编译,没有代码更改,发布到存储,仍然无法工作。

调试版本在 4.1 上运行正常

发布没有

发行版(来自应用商店的版本)版本没有。获取 GPS 失败。

剖析项目文件,看看有什么不同。

发现

Target 和 Build 设置不相同。

IPHONEOS_DEPLOYMENT_TARGET = 4.0;

设置为 BUILD 以进行调试/发布和分发

但是

对于 TARGET,它被设置为 DEBUG

IPHONEOS_DEPLOYMENT_TARGET = 3.0;

在 RELEASE 和 DEBUG 中根本没有设置

我删除了构建目录并设置了

IPHONEOS_DEPLOYMENT_TARGET = 4.0;
for BUILD (Debug/Release/Distribution) (Right click on top level in tree YourApp >> Info menu)
and TARGET (Debug/Release/Distribution) (Right click on Target >> YourApp >> Info menu)

重建 发布版本现在可以工作,所以必须希望在 Distribution 中设置相同的内容。 发布到应用商店。两次都在2天内获得批准。 试过了。应用程序运行但没有 GPS。 尝试删除配置文件,没有运气。 一夜之间手机没电了,所以重启了。 尝试了该应用程序并且它有效。 所以也许

自己检查一下。 将 YourApp.xcodeproj 复制到安全位置。 重命名扩展名不再 .xcodeproj 这将成为一个文件夹。 打开它会有3个文件 构建设置在 project.pbxproj

滚动到底部: 寻找 /* 开始 XCConfigurationList 部分 */

请注意,有两个部分用于构建,一个用于目标

/* Build configuration list for PBXNativeTarget 

...

/* Build configuration list for PBXProject 

如果您完成了分发构建,那么每个版本都将具有调试/发布和分发设置

  1D6058940D05DD3E006BFB54 /* Debug */,
  1D6058950D05DD3E006BFB54 /* Release */,
  C55BCF5811ADCA470050ABDB /* Distribution */,

24 位十六进制数字指向文件中更上方的部分。 如果您将 3 个部分(并排放置在一张表中)放置,您可以看到差异。

只有差异 目标(调试、发布和分发)

1D6058940D05DD3E006BFB54 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
....
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
....
};
name = Debug;
};

未设置发布/分发

BUILD(为调试/发布/分发设置)

IPHONEOS_DEPLOYMENT_TARGET = 4.0;
SDKROOT = iphoneos4.1;

【问题讨论】:

  • 您应该已经下载了 4.1 SDK 的 GM 版本,以便在提前一周上传时进行测试。
  • 你在不止一台 4.1 设备上试过这个吗?
  • 请提供更多调试信息。
  • 我和提问者有同样的问题。
  • 您能否在 App Store 之外重现该问题?

标签: iphone ios4


【解决方案1】:

使用定位服务的开发者注意到 4.1 存在问题

https://devforums.apple.com/message/294717#294717

【讨论】:

    【解决方案2】:

    Apple 终于承认它在 4.1 中存在问题

    https://devforums.apple.com/message/307257#307257 您可能会发现对这个问题有帮助的一些信息:

    此问题仅在卸载应用程序并随后重新安装时影响应用程序。它与通过 App Store 分发与您自己构建的设备无关。 重新启动设备将解决问题。 此问题已在 iOS 4.2 中修复。

    https://devforums.apple.com/thread/70688?tstart=0

    【讨论】:

      【解决方案3】:

      嘿,又是我。我在多个论坛上回复你。

      您是否有机会使用这种已弃用的 getDistanceFrom: 方法?它可能是罪魁祸首,尽管您希望它在 XCode 和 Appstore 之间工作或不工作一致:/

      https://developer.apple.com/library/ios/prerelease/#documentation/CoreLocation/Reference/CLLocation_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/CLLocation/getDistanceFrom:

      更新:删除这个不推荐使用的方法并没有解决我的问题:-(

      【讨论】:

      • 干杯我必须尽快更新,所以会尝试删除所有这些。
      • 当我从应用商店测试新应用时。我在我的开发手机上这样做(虽然我有 3 部 iPhone,但我只有一个 IP4)。所以我删除了我正在调试的应用程序并从应用程序商店下载我的应用程序。您认为删除应用程序会删除其所有设置。我认为位置服务在某处有设置,所以它可能没有正确擦除它们。
      • locationManager.headingAvailable 也已弃用
      • 嘿伙计,我不是说这是问题的原因,这只是我的怀疑。我想知道你是否也在使用它,因为那将是更多的证据。
      • 好的。顺便说一句,我认为您在其他一篇文章中提到将部署目标更改为 OS 4。我认为这根本不会解决问题,它会阻止 OS 3 用户使用您的应用。
      【解决方案4】:

      当您单击“信息”以访问 SDK4.1 的构建配置时,您是否突出显示了项目的标题或目标?似乎有两组构建配置。我和你有同样的GPS问题。我还以为我用的是SDK4.1,其实不是。

      【讨论】:

        【解决方案5】:

        检查您的权利 plist 文件(对于我们来说是 ent.plist)。我们曾经提到过定位服务,现在没有了!不知道这是怎么发生的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-15
          • 2012-09-25
          • 2015-02-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-08
          • 1970-01-01
          相关资源
          最近更新 更多