千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > BundleID用法介绍

BundleID用法介绍

来源:千锋教育
发布人:xqq
时间: 2023-11-22 04:47:32 1700599652

一、BundleID的简介

BundleID是iOS开发中很重要的一个概念,在一个iOS应用中唯一标识一种应用程序的字符串。

Bundle ID 由两部分组成,第一部分是 Team ID,第二部分是一个叫做 Bundle Seed ID 的字符串。

对于开发者来说,可以在开发者后台创建一个 App ID,然后在 Xcode 中对应的 Target 中进行配置。给 Target 分配一个唯一的 BundleID。当应用发布到 App Store 上的时候,这个 BundleID 会被系统用来唯一标识这个应用的程序包以及它的配置文件。

二、BundleID的类型

1、应用程序的 BundleID。

这是最常见的 BundleID 类型,它用于标识一个独立的应用程序。iOS 设备会使用这个标识符来保存应用程序的所有数据,如:设置、通知、数据、iOS系统层面缓存等等。

BundleID 大多数时候是由两个部分组成的,第一个部分是你的开发者账号(Team ID),第二个部分是你为应用程序指定的特定字符串。这个特定字符串也是你需要提供给苹果审核的字符串。


    
    Bundle ID:
    com.yourcompanyname.appname
    

2、App Group 的 BundleID。

如果你需要在一个应用中使用多个组件,则可以使用 App Group 的 BundleID,这个 BundleID 和你的应用的 BundleID 不同。它用于标识这个多余一个应用程序共同使用的某些组件,例如共享文件或共享的偏好设置。

在创建 App Group 的时候,需要为它指定一个 BundleID。当你在应用程序中使用这个 App Group 时,会将这个 BundleID 作为它的标识符。

三、BundleID的命名规则

1、BundleID 必须唯一:

苹果审核的时候会对 BundleID 进行检测,所以你不能够使用已经存在的 BundleID。

2、BundleID 必须在 Apple 开发者账号中注册:

你的 BundleID 必须在 Apple 开发者账号中注册,并且这个账号必须支持应用程序的开发。

3、一个 BundleID 不能够包含特殊字符:

这包括空格、点、斜杠、连字符等等。

4、BundleID 通常是反转的域名:

这是一种非常流行的命名方式。例如:com.yourcompanyname.appname。

四、BundleID的使用和应用场景

1、在应用程序代码中使用 Bundle Identifier:


    
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *bundleIdentifier = [bundle bundleIdentifier];
    

2、在Xcode中使用Bundle Identifier:

在 Xcode 中,你需要使用 Bundle Identifier 来创建新的 App ID。


    
    com.companyname.appname
    

3、在苹果开发者网站使用Bundle Identifier:

在苹果开发者网站中,添加应用程序最关键的一步就是填写应用程序的 BundleID。在填写 BundleID 的时候,请记住这些规则:

1)URL 一般使用 BundleID 来标识。

2)只能使用 ASCII 字符(A-Z,a-z,0-9,-)。

3)不能包含连续的句点。


    
    # Example
    com.companyname.appname
    

4、在代码中使用 Bundle ID 实现推送功能:

在代码中,可以使用 Bundle ID 来实现推送功能,当然在代码中实现需要在证书中处理好推送。在 iOS 系统固件中,如果用户允许推送的话,就会调用相应的方法。在这个方法中,你可以再次验证用户 ID,并判断这个应用程序的 Bundle Identifier。


    
    // iOS 10 notification
    func userNotificationCenter(_ center: UNUserNotificationCenter,
        willPresent notification: UNNotification,
        withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        let appBundleId = Bundle.main.bundleIdentifier!
        let notificationBundleId = notification.request.content.categoryIdentifier
        if notificationBundleId == appBundleId {
            completionHandler([.alert, .sound])
        }
    }
    

五、总结

总之,Bundle ID 是一个非常重要的标识符,它可以用于标识特定的应用,特定的组件以及 iOS 应用程序中的各种数据。在开发 iOS 应用程序的过程中,要特别注意确保 Bundle ID 唯一以及正确,这样在审核和发布应用程序的时候避免不必要的麻烦。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT