ios開發(fā)筆記

————記錄開發(fā)過程中遇到的一些問題和解決辦法:

1.關(guān)于路徑問題:

遇到的一個最扯淡的問題是悲伶,在一個庫a中調(diào)用了庫b的文件咸包,庫a中加了該文件路徑凛驮,所以是正常的常侣,然后在主項目中去調(diào)用了庫a的文件蜡饵,一直提示找不到庫a的文件報錯,糾結(jié)了好久無法解決胳施,最終在主項目中也加入了庫b的文件路徑溯祸,于是解決了。(因為庫a的文件調(diào)用了庫b的文件)

!!!血一樣的教訓舞肆,一定要在主工程中的head欄里加上所有需要使用的路徑焦辅,所有!4豢琛?甑恰!Aぁ前方!

因為主工程中調(diào)用了luabinding,luabinding調(diào)用了正常的c++類廉油。這個時候一定要把所有引用的地方都加到主工程的head欄里镣丑,痛苦!S榱健]航场!

今天我因為這個傻問題白白花了4個小時JぁHたⅰR∶怼!RB啤N捞弧!5ハ弧Oδ!;С印B氡!<拧W!>ò椤8帷!9啊P粘唷!


2.關(guān)于cocos2d-x引擎無法使用png圖片的解決辦法:

Cocos2d-x加載圖片資源出現(xiàn)libpng?error:?CgBI:?unhandled?critical?chunk

設(shè)置Remove?Text?Metadata?From?PNG?Files?=?NO.就可以正常顯示了


3.加載tiled文件時出現(xiàn)白線條

通常是由于抗鋸齒造成的仲吏,打開這個宏?CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL=1

由于是全局宏模捂,以上可能導致其他圖片出現(xiàn)鋸齒,第二種方法如下:

調(diào)用瓦片地圖對應(yīng)CCTexture2D的setAliasTexParameters接口蜘矢。若調(diào)用之后還有黑線,則還調(diào)用?CCDirector::sharedDirector()->setProjection(kCCDirectorProjection2D);

例如:

C++代碼:

  CCDirector::sharedDirector()->setProjection(kCCDirectorProjection2D);

  CCTexture2D* texture2D = CCTextureCache::sharedTextureCache()->textureForKey("TiledResource.png");

  texture2D->setAliasTexParameters();

lua代碼:

  cc.Director:getInstance():setProjection( cc.DIRECTOR_PROJECTION2_D )

  local map = cc.TMXTiledMap:create( string.format( "map/%s.tmx", mapName ) )

  local tmxLayer = map:getLayer( "layerName" )

? ? ? ?tmxLayer:getTexture():setAliasTexParameters()


4.關(guān)于拖入文件:

拖入文件時一定要選擇正確的target综看,否則會發(fā)現(xiàn)文件已經(jīng)拖入到工程里了品腹,但是一直無法找到的問題。


5.應(yīng)用間跳轉(zhuǎn)見:http://www.reibang.com/p/e95266db29b2


6.遇到無法下載圖片的問題:

原因是iOS9中引入了一個新的特性:ATS (App Transport Security)

新特性要求App內(nèi)訪問的網(wǎng)絡(luò)必須使用HTTPS協(xié)議

關(guān)閉很簡單,打開項目中的info.plist文件,在其中添加一個字典類型的項目App Transport Security Settings,然后在其中添加一個key:Allow Arbitrary Loads,其值為YES,如下圖所示:


7.10進制轉(zhuǎn)16進制時:echo 'ibase=10;obase=16;xxxxxxxx'|bc


8.新建工程時红碑,需要修改info中的支持ios版本舞吭,默認選擇是最新的,release版本編譯會有問題


9.cocos新建工程修改:

#define BT_SHUFFLE(x,y,z,w) ((w)<<6| (z)<<4| (y)<<2| (x))

修改為

#define BT_SHUFFLE(x,y,z,w) ((w)<<6| (z)<<4| (y)<<2| (x)) &0xff


10.修改IOS Deployment target最低為8.0


11._luaopen_cjon報錯:

這個問題糾結(jié)了好久析珊,后來發(fā)現(xiàn)是cocos2dx中extenal文件夾中的lua文件夾沒有導入導致的,導入后需要在library seach path中加入luajit.a和lua.a的路徑羡鸥。

后來發(fā)現(xiàn)在luabinding工程中導入了lua文件夾的路徑,從c++工程轉(zhuǎn)到lua工程需要注意忠寻。


12.'system' is unavailable: not available on iOS

cocos2dx的bug惧浴,修改方法為:

添加頭文件 ? ? #include <ftw.h>

添加方法:

intunlink_cb(constchar*fpath,conststruct stat *sb,inttypeflag, struct FTW *ftwbuf)

{

intrv = remove(fpath);

if(rv)

???perror(fpath);

returnrv;

}

替換

lua_pushinteger(L, system(luaL_optstring(L,1,NULL)));

lua_pushinteger(L, nftw(luaL_optstring(L,1,NULL), unlink_cb,64, FTW_DEPTH | FTW_PHYS));


13.又遇到了一個.c文件的報錯:

wsocket.c:23:10: Implicit declaration of function 'LOBYTE' is invalid in C99

原因是沒有加入#ifdef _xxx_

和#endif

導致混編失敗了。


14.Building for iOS, but the linked library 'libluajit.a' was built for macOS.

Xcode?->?File?->?Workspace Settings?->?Build System?->?Legacy Build System


15.iOS查找API

1奕剃、 cd 到你的工程目錄

2衷旅、使用全局搜索命令(注意最后要加一個點)

grep -r xxxx .


16. ? ?3.17版本輸入框不能輸入中文

修改cocos2d-x\cocos\platform\ios\CCEAGLView-ios.mm的3個地方就可以了 (以下修改可直接搜索函數(shù)名)


- (NSString *)textInRange:(UITextRange *)range

{

? ? CCLOG("textInRange");

? ? if(nil!=markedText_)

? ? {

? ? ? ? return markedText_;

? ? }

? ? return@"";

}


- (UITextRange *)markedTextRange

{

? ? CCLOG("markedTextRange");

? ? if(nil!=markedText_)

? ? {

? ? ? ? return [[[UITextRange alloc] init] autorelease];

? ? }

? ? return nil; // Nil if no marked text.

}


- (void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event

{

? ? for (UIGestureRecognizer *ges in [self gestureRecognizers])

? ? {

? ? ? ? [self removeGestureRecognizer:ges];

? ? }

? ? if (isKeyboardShown_)

? ? {

? ? ? ? [self handleTouchesAfterKeyboardShow];

? ? }


17.對于馬甲包的收獲:

馬甲包對于公司賬號包來說捐腿,審核要求低了很多,在按照正常操作提包的時候柿顶,千萬注意混淆這件事茄袖。

第一:蘋果混淆不能用大量的無意義的奇怪字符串,但是拼音居然可以嘁锯,宪祥,,需要習慣使用駝峰命名家乘。

第二:感覺蘋果對于oc代碼的審核嚴格度比c++代碼的審核嚴格度大很多蝗羊。

第三:千萬避免使用 英文+數(shù)字 這樣的名字來命名,非常危險烤低,極容易被判斷為代碼混淆肘交!

第四:如果使用公司賬號提包,請嚴格執(zhí)行修改命名到每一行扑馁!蘋果對于公司賬號的審核非常嚴格涯呻,并且處罰力度很大!


18.cocos3.7.2新工程遇到的問題

第一:需要把full screen 選項點上腻要,不然提包會報錯

第二:需要把info.plist中的icon flie:Icon_57.png 這一欄刪掉



8垂蕖!雄家!.提包遇到警告:

ITMS-90683:?Missing?Purpose?String?in?Info.plist?-?Your?app's?code?references?one?or?more?APIs?that?access?sensitive?user?data.?The?app's?Info.plist?file?should?contain?a?NSPhotoLibraryUsageDescription?key?with?a?user-facing?purpose?string?explaining?clearly?and?completely?why?your?app?needs?the?data.?Starting?Spring?2019,?all?apps?submitted?to?the?App?Store?that?access?user?data?are?required?to?include?a?purpose?string.?If?you're?using?external?libraries?or?SDKs,?they?may?reference?APIs?that?require?a?purpose?string.?While?your?app?might?not?use?these?APIs,?a?purpose?string?is?still?required.?You?can?contact?the?developer?of?the?library?or?SDK?and?request?they?release?a?version?of?their?code?that?doesn't?contain?the?APIs.?Learn?more?(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

加入了相應(yīng)權(quán)限效诅,但是沒有加權(quán)限說明,對應(yīng)說明加上即可趟济。


ITMS-90078:?Missing?Push?Notification?Entitlement?-?Your?app?appears?to?register?with?the?Apple?Push?Notification?service,?but?the?app?signature's?entitlements?do?not?include?the?"aps-environment"?entitlement.?If?your?app?uses?the?Apple?Push?Notification?service,?make?sure?your?App?ID?is?enabled?for?Push?Notification?in?the?Provisioning?Portal,?and?resubmit?after?signing?your?app?with?a?Distribution?provisioning?profile?that?includes?the?"aps-environment"?entitlement.?Xcode?does?not?automatically?copy?the?aps-environment?entitlement?from?provisioning?profiles?at?build?time.?This?behavior?is?intentional.?To?use?this?entitlement,?either?enable?Push?Notifications?in?the?project?editor's?Capabilities?pane,?or?manually?add?the?entitlement?to?your?entitlements?file.?For?more?information,?see

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.

比較神奇的警告乱投,我生成的證書文件中絕對沒有推送權(quán)限,代碼中也刪干凈了相應(yīng)的顷编。但是還是報了這個警告戚炫,了解到這個警告可以忽略,還有一個辦法:在proprecessor macios中加上DISABLE_PUSH_NOTIFICATIONS=1(參考:https://blog.csdn.net/xudailong_blog/article/details/100833211)

新包提上去后一次收到了兩封郵件媳纬,一封提示如上警告双肤,一封通過。


ITMS-90683:?Missing?Purpose?String?in?Info.plist?-?Your?app's?code?references?one?or?more?APIs?that?access?sensitive?user?data.?The?app's?Info.plist?file?should?contain?a?NSLocationWhenInUseUsageDescription?key?with?a?user-facing?purpose?string?explaining?clearly?and?completely?why?your?app?needs?the?data.?Starting?Spring?2019,?all?apps?submitted?to?the?App?Store?that?access?user?data?are?required?to?include?a?purpose?string.?If?you're?using?external?libraries?or?SDKs,?they?may?reference?APIs?that?require?a?purpose?string.?While?your?app?might?not?use?these?APIs,?a?purpose?string?is?still?required.?You?can?contact?the?developer?of?the?library?or?SDK?and?request?they?release?a?version?of?their?code?that?doesn't?contain?the?APIs.?Learn?more?(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

仔細檢查代碼后刪除了Location相應(yīng)系統(tǒng)庫文件和代碼钮惠。


ITMS-90809:?Deprecated?API?Usage?-?Apple?will?stop?accepting?submissions?of?new?apps?that?use?UIWebView?APIs?starting?from?April?2020.?See

https://developer.apple.com/documentation/uikit/uiwebview?for?more?information.

這個是最新版的ios把UIWebView列為過期api了茅糜,不允許調(diào)用,可以改為使用wkWebView素挽。

對于某些三方sdk可能會有使用這個的情況蔑赘,可以用 (grep -r uiwebview .) 代碼在終端中全局搜索


2.?3 Performance: Accurate Metadata

Guideline 2.3.1 - Performance

We discovered that your app contains hidden features. Attempting to hide features, functionality or content in your app is considered egregious behavior and can lead to removal from the Apple Developer Program.

2.3.1被拒,查了下資料應(yīng)該是代碼混淆被機審拒了。在修改了代碼并在提交時的附件中回復了審核人員米死,第二次就通過了锌历。


//待續(xù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市峦筒,隨后出現(xiàn)的幾起案子究西,更是在濱河造成了極大的恐慌,老刑警劉巖物喷,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卤材,死亡現(xiàn)場離奇詭異,居然都是意外死亡峦失,警方通過查閱死者的電腦和手機扇丛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尉辑,“玉大人帆精,你說我怎么就攤上這事∷砥牵” “怎么了卓练?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長购啄。 經(jīng)常有香客問我襟企,道長,這世上最難降的妖魔是什么狮含? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任顽悼,我火速辦了婚禮,結(jié)果婚禮上几迄,老公的妹妹穿的比我還像新娘蔚龙。我一直安慰自己,他們只是感情好映胁,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布木羹。 她就那樣靜靜地躺著,像睡著了一般屿愚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上务荆,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天妆距,我揣著相機與錄音,去河邊找鬼函匕。 笑死娱据,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播中剩,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼忌穿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了结啼?” 一聲冷哼從身側(cè)響起掠剑,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎郊愧,沒想到半個月后朴译,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡属铁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年眠寿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焦蘑。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡盯拱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出例嘱,到底是詐尸還是另有隱情狡逢,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布蝶防,位于F島的核電站甚侣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏间学。R本人自食惡果不足惜殷费,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望低葫。 院中可真熱鬧详羡,春花似錦、人聲如沸嘿悬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽善涨。三九已至窒盐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钢拧,已是汗流浹背蟹漓。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留源内,地道東北人葡粒。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嗽交。 傳聞我的和親對象是個殘疾皇子卿嘲,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 2014年的蘋果全球開發(fā)者大會(WWDC),當Craig Federighi向全世界宣布“We have new ...
    yeshenlong520閱讀 2,294評論 0 9
  • 不積跬步無以至千里。再愚蠢的Bug掌唾,也是進步的墊腳石放前。 Mac 軟件安裝提示“文件損壞,打不開” i386, x8...
    DylanPP閱讀 1,912評論 0 0
  • iOS XIB使用Safe Area后在iOS9和10上面出現(xiàn)的問題和解決方案 1.多添加一個距離SuperVie...
    下雨之後閱讀 864評論 0 1
  • 此貼會經(jīng)常更新添加新內(nèi)容糯彬,敬請關(guān)注凭语! 首先給出iOS開發(fā)常用開源代碼和第三方庫:http://www.cocoac...
    阿諾德姜嫄水鄉(xiāng)閱讀 1,131評論 0 1
  • 說起夢想,感覺好像是一個很難實現(xiàn)的東西撩扒,又好像是很多很多的希望一般似扔,而我的夢想,細想竟然有那么多了搓谆!今天就來說說我...
    冰鎮(zhèn)火藥閱讀 195評論 0 2