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