升級了xcode5之後(2013.10.22),ios sdk自動升級到了版本7.0,cocos2d-x 2.1.4(2013.06發布)不相容,看cocos2d-x的changelog,在2.1.5(2013.08.23發布)裡面解決了這個ios7的相容性問題.不過2.1.5已經不是最新版本了,乾脆跳過,直接升級到最新的2.2(2013.09.25發布)。這樣用cosos2d-html5 2.2產生ios版本的時候,同一個聯合發布的版本應該互相相容,報錯的幾率會降低。
坑1:怎麼樣升級cocos2d-x的版本?
http://www.codeo4.cn/archives/690 (version<=2.1.5)
http://www.cocoachina.com/bbs/read.php?tid=161455 (version>=2.2 不再在xcode裡面使用模板檔案安裝了,直接通過python命令產生專案檔夾)
$ cd /Users/wenke/Documents/cocos2d/cocos2d-x-2.2/tools/project-creator
$ ./create_project.py
Usage: create_project.py -project PROJECT_NAME -package PACKAGE_NAME -language PROGRAMING_LANGUAGE
Options:
-project PROJECT_NAME Project name, for example: MyGame
-package PACKAGE_NAME Package name, for example: com.MyCompany.MyAwesomeGame
-language PROGRAMING_LANGUAGE Major programing lanauge you want to used, should be [cpp | lua | javascript]
Sample 1: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame
Sample 2: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language javascript
$ ./create_project.py -project MyGame_cpp -package com.MyCompany.AwesomeGame -language cpp
proj.ios : Done!
proj.android : Done!
proj.win32 : Done!
proj.winrt : Done!
proj.wp8 : Done!
proj.mac : Done!
proj.blackberry : Done!
proj.linux : Done!
proj.marmalade : Done!
New project has been created in this path: /Users/wenke/Documents/cocos2d/cocos2d-x-2.2/projects/MyGame_cpp
Have Fun!
$ ./create_project.py -project MyGame_javascript -package com.MyCompany.AwesomeGame -language javascript
proj.ios : Done!
proj.android : Done!
proj.win32 : Done!
New project has been created in this path: /Users/wenke/Documents/cocos2d/cocos2d-x-2.2/projects/MyGame_javascript
Have Fun!
坑2:通過python命令列建立的2個項目,在xcode裡面只能一次開啟一個。
開啟項目1的時候,一切正常,可以運行。再開啟項目2的時候,會報錯:WorkSpace Integrity. Couldn't load cocos2dx.xcodeproj because it is already opened from another project or workspace,
解決辦法:
必須同時把項目1和項目2都關閉,然後再開啟項目2,才正常。
坑3:通過python命令列建立的兩個項目不能用相同的package(比如都是com.MyCompany.AwesomeGame),否則用xcode串連真機,測試兩個項目的時候,第一個可以運行,第二個啟動並執行時候會提示:
could not change executeable permisions on the application
解決辦法:
1.從真機上刪除項目1產生的app,然後再運行項目2,
2.刪除項目2,用另外的package重新建立項目2
坑4:ios上正常啟動並執行程式,android裡面編譯報錯:
error: undefined reference to XXX
解決辦法:
需要將cocos2d-x-2.2/目錄下的cocos2dx,CocosDenshion,document,extensions等4個目錄,拷貝粘貼到$NDK_ROOT/sources/下
其他:
1.xcode裡面修改了project名稱之後,運行會報錯:
could not change executable permissions on the application.
原因:
同一個bundle identifier 往iphone裡裝了兩個程式,衝突了。
解決辦法:
將修改前安裝到iphone上的app刪除,然後重新運行即可。