iPhone App 在 iOS 4.1 下消亡。没有代码更改

标签 iphone ios4

我安装了今天刚刚发布的 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仅在Target中的Debug中设置

我让调试/发布可以在我的手机上运行,​​因此推测如果发布和分发具有相同的设置,则应该可以在 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 失败。

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

发现

目标和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)

重建 发布版本现在可以工作,因此必须希望在发行版中设置相同的设置也能工作。 发布到应用商店。两次都在2天内获得批准。 试过了。应用程序已运行,但没有 GPS。 尝试删除配置文件,但没有成功。 晚上手机断电所以重新启动。 尝试了该应用程序,它成功了。 所以也许

要亲自检查一下。 将 YourApp.xcodeproj 复制到安全位置。 重命名扩展名不再是 .xcodeproj 这将成为一个文件夹。 打开后会有3个文件 build设置位于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;
};

未设置发布/分发

构建(设置为调试/发布/分发)

IPHONEOS_DEPLOYMENT_TARGET = 4.0;
SDKROOT = iphoneos4.1;

最佳答案

使用位置服务的开发人员注意到 4.1 上的问题

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

关于iPhone App 在 iOS 4.1 下消亡。没有代码更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672267/

相关文章:

iphone - 核心数据未正确显示 sqlite 文件数据

iphone - 使用 00 :00:00 as time 获取今天的 NSDate

iphone - 如何在 iPhone 向下钻取应用程序中处理无限数量的 TableView

iphone - 改变self的指针

iphone - 在 Xcode 中,我是否在 build 或 version 下输入应用程序的版本号

iphone - iPhone 4.3 Tableview 中的多个单元格选择

iphone - iPhone 上的 Aspell 拼写检查器?

ios - 是否有 API 可以关闭 iPhone 上的 IP 流量?

objective-c - 将委托(delegate)作为 id 发送而不是将其设置为属性?

html - 如何计算html字符串的高度?