我想从一些随机的 Unicode 字符串(可能只包含任何东西)创建一个理智/安全的应用程序包名称(即有点可读,没有“奇怪”字符等)。
(函数是 Cocoa、ObjC、Python 等对我来说并不重要)
(这与文件名问题和包名称问题有关,但包标识符的限制要大得多。我认为它甚至不能包含空格,我也想去掉点并加上我自己的前缀。)
我认为 Xcode 也有一些功能可以从应用程序名称自动执行此操作。也许 Cocoa 中有一些标准功能可以做到这一点。
捆绑标识符旨在采用反向 URL 形式(保证全局唯一性):
com.apple.xcode
, 例如
所以你真的需要一个域名,然后你可以在下面发明任何你喜欢的方案。
考虑到这一点,以及对输入中字符的一些了解,您可以扫描您的输入以仅包含您想要的位组成一个新字符串,或者使用诸如stringByReplacingOccurrencesOfString: withString:
and 之类的方法,如果您愿意,可以使用lowercaseString
.
捆绑标识符中允许的字符在属性列表文档中命名为:
捆绑包 ID 字符串必须是统一类型标识符 (UTI),仅包含字母数字 (AZ,az,0-9)、连字符 (-) 和句点 (.) 字符。该字符串也应采用反向 DNS 格式。