1
A
回答
5
如果你想在运行时改变CFBundleIdentifier
,你不能,除非你写的应用程序包Info.plist
。这是不好的做法,因为应用程序包可能已被移动到只读卷,或者其写入权限受系统管理员限制,或数字签名以避免篡改。我想启动服务不会立即识别这种变化,应用程序将不得不重新启动。此外,这也是Mac Apple Store拒绝的原因。另一方面,如果要检测CFBundleIdentifier
的篡改,则可以在应用程序启动时始终读取其值,例如,在applicationDidFinishLaunching
:
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
NSString *bundleId = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
if (! [bundleId isEqualToString:@"com.yourcompany.yourapp"])
{
// Ooops, CFBundleIdentifier doesn’t match
}
}
根据您的要求,您可能想混淆上面的代码,包括文字字符串。但是,一般来说,你将无法阻止一个坚定的对手。
相关问题
- 1. 如何硬编码lookupedit
- 2. 硬编码hibernate.cfg.xml
- 3. 硬编码值
- 4. 如何使用硬编码的值
- 5. DataTables - 如何避免硬编码url?
- 6. 如何在NSString中硬编码json
- 7. 如何硬编码一个MobX存储?
- 8. ZedGraph - 如何硬编码轴值?
- 9. 如何硬编码WCF配置?
- 10. 硬编码比较
- 11. 没有硬编码
- 12. htaccess vs硬编码
- 13. 如何解决Python的硬编码字典编码问题
- 14. iPhone硬编码刷卡
- 15. 硬编码指针值
- 16. 更换硬编码路径
- 17. 硬编码的root cgroups
- 18. 路径不被硬编码
- 19. pList或硬编码对象?
- 20. @ Html.EditorFor的硬编码值
- 21. DataReader - 硬编码序数?
- 22. 硬编码的路线
- 23. 在硬编码的应用
- 24. XML与硬编码界面?
- 25. Silverlight - 硬编码私钥
- 26. 硬编码CONSUMER_KEY和CONSUMER_SECRET
- 27. 如何硬编码在批处理文件中的密码
- 28. 如何在PHP中保护硬编码的登录名/密码?
- 29. 如何不对我的密码进行硬编码(Android)?
- 30. 硬编码div左右乱码
为什么你想要将CFBundleIdentifier硬编码到应用程序中? OS X将它设计为plist,因此如果将它从plist中移除并嵌入到应用程序中,可能会在操作系统透视图上导致出现问题。 – 2011-01-07 15:15:51