我安装了今天刚刚发布的 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 上的问题
关于iPhone App 在 iOS 4.1 下消亡。没有代码更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672267/