發表文章

目前顯示的是 3月, 2015的文章

手拆Unity引擎開發的遊戲APP,拔除AdMob廣告模組(以1010!為例)

圖片
雖然我現在也是寫了一支APP,想看能不能靠AdMob賺點微薄的收入啦(?) 感覺寫這篇部落格文有點沒品(?) 我寫的APP上架囉~義守學生管家!

[C++Builder]解決Firemonkey跨平台專案無法實機發佈軟體到iPhone設備上DEBUG

圖片
原先一開始我的專案需求 只專門測試了軟體可以跑在Android、Windows、OSX上面 所以PAServer什麼的都已經弄好了 因為ADR很窮...只有Android手機,後來跟朋友借到一隻iPhone5(有JB),發現選到iOS Device並且Macbook Pro已經正確跟iPhone連線上,PAServer也正確啟動服務可以遠端聯繫了,卻出現: 這問題很雷,特雷 因為這個問題去查Google有九成以上的台灣Blog介紹C++ Builder開發iOS App是沒有介紹這個問題該怎麼解決的...(應該直接了當的說台灣沒幾隻貓在寫C++ Builder開發的iOS App部落格的感覺...) 仔細看了一下編譯噴錯的原因: iphone developer no identity found(blablabla以下省略超多字)大略意思是在遠端調試的時候,一個叫做iPhoneDeveloper的程式無法正確被傳遞參數並且把App傳入iOS設備導致的 翻了一下PAServer目錄底下: 其實App還有簽章之類的內容PAServer早就幫你弄好了...只是app沒辦法放進去 這時候有兩種做法: 1.有JB狀況下 可選擇再新增一個"payload"的資料夾並且把.app放進去裡面,最後把payload資料夾與另外兩個檔案用壓縮的方式壓縮成一個解壓縮包,並且把副檔名改為.ipa 2.修正iPhonedeveloper無法被喚起的問題 後來爬了大概快四十幾篇文,後來在對岸論壇爬到問題應該出在權限不足沒有簽章權限問題,解決方法如下 首先開啟你的Laucher找到系統程式的“鑰匙圈存取” 在鑰匙圈存取》憑證輔助程式 找到“製作憑證”開啟它 接著名稱寫:iPhone Developer,身份類型:自簽根,憑證類型:代碼簽名 然後其他就預設值,一路按繼續繼續繼續繼續繼續繼續繼續繼續繼續繼續繼續 最後看到完成,再回你的C++ Builder做一次編譯就可以解決這個問題了 (參考: 盒子論壇 )

[C++Builder]Firemonkey下的多線程﹢跨線程控制UI物件(委派)

為啥會有這篇...純粹因為最近用C++ Builder寫專案,想讓UI的Feedback可以Q彈滑順一點。不過因為是用Firemonkey的跨平台專案功能,意思是如果你想發揮Firemonkey的跨平台性去做多線程處理UI更新,勢必不可能用到系統API來處理(例如說Windows上用CreateThread來實做) 不過既然沒辦法直接用系統API來處理,去Google了大概三四十頁的搜尋結果,後來參考一個日本人的Blog才寫出來算是比較簡潔的解法...,用ECB官方自帶的類別庫還有用到了TThread類別來實做(話說小吐槽一下...馬的C++Builder跟Delphi在處理跨線程UI控制真的很麻煩...像在.NET內用委派甚至解除跨線程安全檢查就好了、在QT內也是委派投擲訊息就好...CB內要實做委派"不能投擲參數"這點超級麻煩...意思是如果你要委派的函數有參數,就得額外在開一個新的函數來收你的委派然後跑在UI Thread來處理事情,參數也要額外宣告變數來做存放..我靠) class CoreModuFunc : public TCppInterfacedObject { public: CoreModuFunc(TTabbedForm* Form) : FForm(Form) {} virtual void __fastcall Invoke(void) { while (1) { DirectNewItem("Hi"); Sleep(5000); } } void DirectNewItem(String Str) { TempStr = Str; TThread::Synchronize(TThread::CurrentThread, AddNewItem); } void __fastcall AddNewItem(void)//注意一定得用fastcall,才能用Synchronize委派 { if (TempStr == "") return; FForm->ListBox1->Items->Add(TempStr ); } private: TForm1 * FForm; //要控制的UI Form指針 String TempStr ; //存放參數的點 }; 然後如果你要