cocos2d-x v2.2的那些坑

來源:互聯網
上載者:User
升級了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刪除,然後重新運行即可。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.