Macos Mac应用程序名称
我们的应用程序部署结构如下所示:Macos Mac应用程序名称,macos,cocoa,objective-c++,Macos,Cocoa,Objective C++,我们的应用程序部署结构如下所示: 用户可以从服务器下载申请表 应用程序名称它本身包含时间戳,当用户请求时,在特定的时间段,它应该提示用户获取更多信息 因此,当用户下载应用程序时,应用程序名称将包含APPName_24234424234 NSString *pAppName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]; 它是空的;然后我尝试了这个: NSString *pAppNam
NSString *pAppName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];
它是空的;然后我尝试了这个:
NSString *pAppName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
我希望它是应用程序的名称,但它返回的是我们在项目创建期间设置的名称
有没有办法以编程方式获取应用程序的“更改名称”?如果您的服务器只是在将应用程序包装发送给请求者之前更改其名称,那么infoDictionary不会更改。您可能想使用
[[NSBundle mainBundle] bundlePath]
或
然后解析该字符串以找出包装器的实际名称
joe如果您的服务器只是在将应用程序包装发送给请求者之前更改其名称,那么infoDictionary不会更改。您可能想使用
[[NSBundle mainBundle] bundlePath]
或
然后解析该字符串以找出包装器的实际名称
joe进一步解释@Rohan的解决方案不起作用的原因:
infoDictionary
专门返回捆绑包的Info.plist文件的内容。该文件的内容是infoDictionary
。如果不更改Info.plist,则不会更改信息字典
。如果只更改捆绑包的文件名,则需要从中获取信息。此外,您可以通过发送路径或URLlastPathComponent
消息来获取文件名,并通过发送该字符串stringByDeletingPathExtension
消息来剥离.app扩展名。您不需要自己解析路径或URL;让科科帮你做吧,说得好。我不想指出文件路径方法。不确定,info.plist文件或任何其他文件存在一些问题,但是[[NSBundle mainBundle]bundlePath]总是返回nil,以进一步解释@Rohan的解决方案不起作用的原因:infoDictionary
专门返回捆绑包的info.plist文件的内容。该文件的内容是infoDictionary
。如果不更改Info.plist,则不会更改信息字典
。如果只更改捆绑包的文件名,则需要从中获取信息。此外,您可以通过发送路径或URLlastPathComponent
消息来获取文件名,并通过发送该字符串stringByDeletingPathExtension
消息来剥离.app扩展名。您不需要自己解析路径或URL;让科科帮你做吧,说得好。我不想指出文件路径方法。不确定,info.plist文件或任何其他文件存在一些问题,但是[[NSBundle mainBundle]bundlePath]始终返回nil,