Xcode 5验证时,您的二进制文件未针对iPhone 5错误进行优化

时间:2014-09-28 16:40:26

标签: ios iphone xcode xcode5

我遇到了Your binary is not optimized for iPhone 5错误:

Error message

我尝试了其他问题中提出的每个解决方案,但没有任何效果。总结一下:

我在项目的根目录中有Default-568h@2x.png大小为640×1136的图像,其中project_name.xcodeproj是。{1}}。

根据一条建议,我将Default.png(640×1136)和Default~iphone.png(640×960)添加到同一目录。没工作。

我正在使用具有适当大小的资产目录。

这是最奇怪的部分:这是应用程序的1.1版本。我使用相同的。xcodeproj使用相同的图像。它第一次验证没有问题,但现在没有。有任何想法吗?

5 个答案:

答案 0 :(得分:2)

使用图像资产全局来控制图像是否正确,并查看是否有警告。

对于未来最好使用上一个Xcode故事板屏幕:

enter image description here

要以通用模式启用您的应用:

在自动布局模式下添加故事栏或使用StoryBorad。

要使用多个资料板,您可以在application didFinishLaunchingWithOptions内的AppDelegate中使用它:

#pragma mark - Universal storyboard.

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
        UIStoryboard *storyBoard;

        CGSize result = [[UIScreen mainScreen] bounds].size;
        CGFloat scale = [UIScreen mainScreen].scale;
        result = CGSizeMake(result.width *scale, result.height *scale);

        if(result.height <= 960){
            storyBoard = [UIStoryboard storyboardWithName:@"iPhone4" bundle:nil];
            UIViewController *initViewController = [storyBoard instantiateInitialViewController];
            [self.window setRootViewController:initViewController];
        }
    }

您可以添加所有分辨率iPhone 4s / 5(s / c)6和6 Plus

<AppName>-Prefix.pch中定义所有这样的决议:

#define   IsIphone5     ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
#define   IsIphone4     ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )480 ) < DBL_EPSILON )

然后调用项目中的函数,例如iPhone 4/5和iPad的一个scrollview:

- (void)spiegaScroll{

    if (IsIphone5){

    CGRect scrollFrame;
    scrollFrame.origin = myScroll.frame.origin;
    scrollFrame.size = CGSizeMake(320, 568);
    spiega.frame = scrollFrame;
    [spiega setContentSize:CGSizeMake(320, 1100)];
    myScroll.scrollEnabled = YES;
    myScroll.pagingEnabled = NO;
    myScroll.clipsToBounds = NO;

    } else if (IsIphone4) {

        CGRect scrollFrame;
        scrollFrame.origin = myScroll.frame.origin;
        scrollFrame.size = CGSizeMake(320, 480);
        spiega.frame = scrollFrame;
        [spiega setContentSize:CGSizeMake(320, 1100)];
        myScroll.scrollEnabled = YES;
        myScroll.pagingEnabled = NO;
        myScroll.clipsToBounds = NO;

    } else {

//the rest is iPad in this case

        CGRect scrollFrame;
        scrollFrame.origin = myScroll.frame.origin;
        scrollFrame.size = CGSizeMake(768, 1024);
        spiega.frame = scrollFrame;
        [spiega setContentSize:CGSizeMake(768, 2094)];
        myScroll.scrollEnabled = YES;
        myScroll.pagingEnabled = NO;
        myScroll.clipsToBounds = NO;
    }

}

希望这对您现在或未来的应用程序有所帮​​助;)

答案 1 :(得分:1)

检查图像是否已添加到目标文件

答案 2 :(得分:0)

在plist文件中,在图标集字典中设置图像的值。

答案 3 :(得分:0)

有同样的问题。最后我找到了来自Iphone 5 Launch Image Problem

的解决方案

请确保568h文件是PNG格式?还要确保为所有屏幕提供iphone 5支持吗?只添加Default-568h@2x.png不支持iphone 5支持。您必须检查iphone 3.5“和4”设备的所有视图的框架。

答案 4 :(得分:0)

好吧,看起来我升级到xCode 6后问题就消失了。应用程序验证没有问题。