代码之家  ›  专栏  ›  技术社区  ›  brian.clear

IPhone应用在ios4.1下死掉了。无代码更改

  •  4
  • brian.clear  · 技术社区  · 14 年前

    我安装了今天刚刚发布的ios4.1。

    我从AppStore下载了我的应用程序到手机上,然后运行它,它无法获得GPS位置。

    我下载了新的XCode和4.1sdk,并在4.1下重新编译,应用程序在4.1iphone上运行良好。

    基本SDK是4.0

    IOS部署目标:IOS 4.0

    新设置

    基本SDK是4.1

    IOS部署目标:IOS 4.0


    在3次尝试部署到应用商店并仔细分析项目文件后,我发现:

    构建和目标的部署目标不同

    但即使在设置并重新部署到appstore之后,它仍然无法工作(应用程序已加载且没有GPS)。

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

    所以不确定这是不是三者的奇怪组合。

    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.1发布 在4.1下重新编译,没有代码更改,发布到存储,仍然无法工作。

    调试版本在4.1上运行正常

    释放没有

    仔细分析项目文件,看看有什么不同。

    我发现了

    IPHONEOS\部署\目标=4.0;

    已为调试/发布和分发的生成设置

    但是

    对于目标,它被设置为调试

    在发布和调试中根本没有设置

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

    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)
    

    重建 发行版现在可以工作了,所以不得不希望在发行版中设置相同的版本也能工作。 发布到应用商店。两次都是在两天内通过的。 我试过了。应用程序运行但没有GPS。 一夜之间手机断电,所以重启。 尝试了这个应用程序,它成功了。 所以也许

    复制你的app.xcodeproj去一个安全的地方。 重命名so扩展名。xcodeproj 这将成为一个文件夹。 打开它会有3个文件 生成设置在项目.pbxproj

    寻找

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

    /* Build configuration list for PBXNativeTarget 
    
    ...
    
    /* Build configuration list for PBXProject 
    

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

    24位十六进制数指向文件中更高的部分。 如果你把这三个部分(并排放在一张桌子上)放在一起,你可以看到它们的区别。

    目标(调试、发布和分发)

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

    未设置发布/分发

    生成(设置为调试/发布/分发)

    IPHONEOS_DEPLOYMENT_TARGET = 4.0;
    SDKROOT = iphoneos4.1;
    
    5 回复  |  直到 13 年前
        1
  •  0
  •   WoodenKitty    14 年前

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

    你有没有用过这个不推荐的 获取距离: 方法?它可能是罪魁祸首,尽管您希望它在XCode和Appstore之间工作或不一致:/

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

    更新:删除此不推荐使用的方法并不能解决我的问题:-(

        2
  •  1
  •   brian.clear    14 年前

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

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

        3
  •  1
  •   brian.clear    14 年前

    苹果终于在4.1中承认了自己的问题

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

    此问题仅在卸载应用程序并随后重新安装时影响应用程序。它与通过应用程序商店和您自己的设备版本进行分发无关。 重新启动设备将解决此问题。 这个问题在iOS 4.2中已修复。

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

        4
  •  0
  •   WoodenKitty    14 年前

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

        5
  •  0
  •   WoodenKitty    14 年前

    检查您的权利plist文件(为我们耳鼻喉镜). 我们以前提到过定位服务,但现在没有了!不知道怎么回事。