我經常發現我需要在iPhone上創建一個可以指向我的演示服務器的「演示就緒」版本。我也想要一個構建,這是我用開發服務器開發的最新和最好的調試版本。有沒有人找到一種非常簡單的方式來安裝兩個應用程序,它們可能是完全相同的代碼,但指向不同的服務器?另外也許我會有一個應用程序是最新版本後面的幾個版本?最好我會使用相同的XCode項目來構建並安裝到iPhone上。使用XCode將多個相同的iOS應用程序安裝到iPhone上的最佳方式是什麼?
回答
您可以爲它們添加特殊的構建配置,每個配置使用不同的info.plist文件。所以,也許對於你的演示,你有一個名爲MyApp-Info-DEMO.plist的info.plist和MyApp-Info.plist。
然後,您可以將您的服務器變量添加爲info.plist變量,並在應用程序啓動時查找它。甚至可以在你的新配置中創建一個DEFINE語句,就像SERVER = demo.myserver.com用於演示,SERVER = production.myserver.com用於live。
最重要的部分是在新的info.plist中更改CFBundleIdentifier。所以在你的演示中,你可以將它命名爲com.mycompany.myapp.DEMO,而真正的可能只是com.mycompany.myapp。
這將允許兩個版本同時出現在手機上(不同的CFBundleIdentifiers)。請記住,如果您使用的是應用內購買或服務器推送通知,那麼如果沒有針對您的真實應用標識符和演示應用標識符的單獨特定配置文件,您將無法做到這一點。
使用當前版本的Xcode,您可以通過更改應用程序的Info.plist文件以使用不同的包標識符(也可能更改生成設置中應用程序的產品名稱)來實現此目的。
Xcode的即將推出的版本,從我在預發佈文檔中閱讀的內容中,有一個功能可以簡化您想要執行的操作。然而,由於預發佈軟件包含在NDA中,所以我無法給你任何細節。
您可以使用2個不同的info.plists和2個不同的預處理器定義(在2個目標中的每個目標的Build Settings中)創建2個不同的目標。然後,如果在預處理器上定義了選擇服務器常量的編譯器爲每個目標使用。
然後在兩個不同的目標設置中使產品名稱和包ID不同(這樣設備或模擬器都不會混淆這兩個應用程序包)。
- 1. 將Firebird安裝嵌入到我的應用程序的安裝程序中的最佳方式是什麼?
- 2. iPhone:將iPhone應用程序集成到其他應用程序的最佳方式是什麼?
- 3. 將主題應用到iPhone應用程序的最佳方式
- 4. 什麼是同時創建iPhone和iPad應用程序的最佳方式?
- 5. 什麼是安裝Perl Web應用程序的最佳系統?
- 6. 在多個查詢中應用相同規則的最佳方式是什麼?
- 7. 從PHP獲取數據到iOS應用程序的最佳方式是什麼?
- 8. 在iPhone上使用C++編碼的最佳方式是什麼?
- 9. 什麼是將已運行的應用程序帶到android的最佳方式?
- 10. 解析iPhone應用程序的RSS/Atom提要的最佳方式是什麼?
- 11. 什麼是同步應用程序數據的最佳方法
- 12. 什麼是在Debian Jessie上安裝多個g ++工具鏈的最佳方式
- 13. 將GUI添加到Pygame應用程序的最佳方式是什麼?
- 14. 將API添加到Django應用程序的最佳方式是什麼?
- 15. 將應用程序添加到Windows的最佳方式是什麼啓動?
- 16. 將i18n添加到Web應用程序的最佳方式是什麼?
- 17. 將numpy集成到meteorjs web應用程序的最佳方式是什麼?
- 18. 將JRuby on Rails應用程序部署到Tomcat的最佳方式是什麼?
- 19. 將Ruby類加載到應用程序中的最佳方式是什麼?
- 20. 在OS X上安裝python 2的最佳方式是什麼?
- 21. 在OS X Lion上安裝pygame的最佳方式是什麼?
- 22. 什麼是在Linux上安裝LAMP的最佳方式Mint
- 23. 更新角度應用程序的最佳方式是什麼?
- 24. 推出Web應用程序的最佳方式是什麼?
- 25. 什麼是監視.NET應用程序的最佳方式?
- 26. 分發Java應用程序的最佳方式是什麼?
- 27. 初始化應用程序的最佳方式是什麼?
- 28. 保護Flex-BlazeDS應用程序的最佳方式是什麼?
- 29. 部署Pylons應用程序的最佳方式是什麼?
- 30. GWT應用程序樣式的最佳方法是什麼?
您可以在Info.plist文件中使用'$(BUNDLE_IDENTIFIER)',而不是單獨的文件,然後將其值設置爲用戶定義的構建設置。 – benzado 2010-11-10 00:28:40