zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

iOS开发-CFBundleDisplayName找不到项目名的问题

ios项目开发 不到 问题
2023-09-11 14:21:22 时间

我们获取项目名是通过什么获取的?我猜猜看,应该都是这样:

    NSDictionary *infoPlist = [[NSBundle mainBundle] infoDictionary];

    // app名称
    NSString *appName = [infoPlist objectForKey:@"CFBundleDisplayName"];
    // app版本
    NSString *appVersion = [infoPlist objectForKey:@"CFBundleShortVersionString"];
    // app icon
        NSString *icon = [[infoPlist valueForKeyPath:@"CFBundleIcons.CFBundlePrimaryIcon.CFBundleIconFiles"] lastObject];
    UIImage *realIconImage = [UIImage imageNamed:icon];
    //app build
    NSString *appBuild = [infoDictionary objectForKey:@"CFBundleVersion"]; 

通过以上方法不仅可以获取app的name,还有version,build,icon等信息。以上方法使用比较广泛,可是不知道从什么时候开始,突然发现获取到的appName为空,看了下plist文件才发现以前默认创建的一项没有了:

Bundle display name  ${PRODUCT_NAME}

博主翻了一下以前的项目,发现14年的项目还是默认会创建这一项的,但是在15年8月创建的项目就没有了。如果你希望依然可以使用这个简便的的方法的时候必须要手动把这一项加入到你的plist文件中。