答案 0 :(得分:5)
如果您只是构建可执行文件,运行脚本或使用Swift REPL,bundleIdentifier
将为零。
例如,创建一个名为test.swift
的文件,其中包含。
import Foundation
print("\(Bundle.main.bundleIdentifier)")
然后使用
从终端运行它swift test.swift
它会打印nil
答案 1 :(得分:4)
包标识符由CFBundleIdentifier键定义 捆绑的信息属性列表。
因为应用的.plist
文件中有一个名为CFBundleIdentifier
的密钥可能为空:
如果您看到不同的键名,请右键单击并选择"显示行键/值"。
在这种情况下,它应该是nil
。
答案 2 :(得分:3)
我相信它是因为NSBundle
必须从Info.plist中提取此信息。请记住,bundleIdentifier
方法存在于所有NSBundle
个实例上,而不仅仅是主包,而其他包可能不如主包那么好。