美文网首页
从 TestFlight 安装的版本出现问题

从 TestFlight 安装的版本出现问题

作者: jasonxia | 来源:发表于2017-12-31 20:11 被阅读13次

    前段时间遇到这样一个问题,就是从 TestFlight 下载的版本,在 iPhone 6s Plus iOS 11.2.1 上正常,而在 iPhone 5 iOS 10.1 上有个字符串显示不全,直接编译运行到 iPhone 5 时,这个字符串是正常的,改变 Scheme 的 Build Configuration 为 Release,这个字符串就又显示不全了,如果直接编译运行到 iPhone 6s Plus 也是正常的,显然,很容易让人推测是由于编译器针对 32 位优化导致的,同时也说明代码有问题。
    经过跟踪调试,锁定了如下代码:
    x = (size_t )&option_delta;
    do
    {
    if (
    x==13)
    {
    x += current_option[0];
    ++current_option;
    }
    else if (
    x==14)
    {
    *x += 255;
    *x += current_option[0]<<8;
    ++current_option;
    *x += current_option[0];
    ++current_option;
    }
    }
    while (x!= &option_length && (x= &option_length));

    最终,把 unsigned int *x 改为 size_t *x 解决了这个问题。
    再早之前也遇到过一个类似的问题,就是在开发时是正常的,而从 App Store 下载的版本就是不正常的。查看代码发现 Byte pBuffer[total1],数组没有初始化,当然,这句代码不是我写的,改为 Byte pBuffer[total1] = {0} 即解决了此问题。
    看来,在测试时,一定要拿 TestFlight 中的版本来测啊!

    相关文章

      网友评论

          本文标题:从 TestFlight 安装的版本出现问题

          本文链接:https://www.haomeiwen.com/subject/exfkgxtx.html