【问题标题】:Obtain Bundle Identifier programmatically以编程方式获取捆绑标识符
【发布时间】:2012-01-16 16:33:24
【问题描述】:

如何从我的应用程序中以编程方式获取捆绑标识符的字符串?

【问题讨论】:

    标签: ios cocoa-touch


    【解决方案1】:

    目标-C

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

    斯威夫特 1.2

    let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
    

    斯威夫特 3.0

    let bundleIdentifier = Bundle.main.bundleIdentifier
    

    Xamarin.iOS

    var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier
    

    【讨论】:

    • 这个答案不限于iOS。它也适用于 Mac 应用程序。
    • 在 Swift 中,使用 let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
    • (您可以删除此评论)但我喜欢阅读答案然后在评论中看到类似@Jonny s 和 Tim(尽管您可以在另一个完整答案中看到)的感觉,它链接到其他仍然相关和有用的东西。感谢伟大的社区伙伴。
    • Swift3: Bundle.main.bundleIdentifier!
    【解决方案2】:
    [[NSBundle mainBundle] bundleIdentifier];
    

    (documentation)

    【讨论】:

    • 在 Swift 中,使用 let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
    【解决方案3】:

    您可能需要核心基础方法来获得价值。 ARC 示例如下:

    NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
                                                                         (const void *)(@"CFBundleIdentifier"));
    

    【讨论】:

      【解决方案4】:

      Swift 3.0 中以编程方式获取包标识符:

      Swift 3.0

      let bundle = Bundle.main.bundleIdentifier
      

      【讨论】:

        【解决方案5】:

        如果您尝试以编程方式获取它,您可以使用以下代码行:

        目标-C:

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

        斯威夫特 3.0:

        let bundleIdentifier =  Bundle.main.bundleIdentifier
        

        已更新为最新的 swift 它适用于 iOS 和 Mac 应用程序。

        【讨论】:

          【解决方案6】:

          我使用这些宏来缩短它:

          #define BUNDLEID    [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
          
          #define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
          

          所以我可以这样比较:

          if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
              //do this
          }
          

          【讨论】:

            猜你喜欢
            • 2010-12-24
            • 2014-11-11
            • 2023-03-17
            • 1970-01-01
            • 2012-04-23
            • 2018-12-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多