iPhone App死于iOS 4.1.没有代码更改

我安装了今天发布的iOS 4.1.

我从AppStore将我的应用程序下载到手机并运行它,它无法获得GPS位置.

我下载了新的XCode和4.1 SDK并在4.1下重新编译,app在4.1 IPhone上工作正常.

没有代码被更改.

为什么4.0下编译的应用程序不能在4.1下运行.

BASE SDK是4.0

IOS DEPLOYMENT TARGET:iOS 4.0

新设置

BASE SDK是4.1

IOS DEPLOYMENT TARGET:iOS 4.0

有点恼火,我需要重新提交,即使我没有改变任何东西……另一周的黑洞应用程序提交!

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

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

我让调试/发布在我的手机上工作,因此推测如果relelase和Distribution有相同的设置应该在App Store中工作.

但即使在设置并重新部署到appstore后,它也无法正常工作(app加载且没有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.

解析项目文件,看看有什么不同.

发现了

目标和构建设置不相同.

IPHONEOS_DEPLOYMENT_TARGET = 4.0;

已设置为BUILD for Debug / Release and Distribution

对于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个部分(并排放在桌子中)放置,您可以看到差异.

只有差异
TARGET(调试,发布和分发)

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

未设置为发布/分发

BUILD(设置为Debug / Release / Distribution)

IPHONEOS_DEPLOYMENT_TARGET = 4.0;
SDKROOT = iphoneos4.1;

最佳答案 嘿,这又是我.我在多个论坛上回复你.

你有没有机会使用这个已弃用的getDistanceFrom:方法?它可能是罪魁祸首,虽然你希望它在XCode和Appstore之间工作或不一致:/

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

更新:删除这个已弃用的方法并没有解决我的问题:-(

点赞