顯示具有 [Titanium Studio] 標籤的文章。 顯示所有文章
顯示具有 [Titanium Studio] 標籤的文章。 顯示所有文章

2013年5月7日 星期二

Titanium 安裝 SVN 錯誤

今天在Titanium要安裝SVN的時候發現無法安裝,

從help -> install new software裡面找到svn後

安裝就跳出

titanium svn An error occurred while collecting items to be installed..
一長串

沒有記錄到,因為不小時裝起來了

怎麼安裝起來的其實我也不清楚,

我原本在 install new software的地方直接選 All Available Site,

在搜尋直接查SVN卻無法安裝,一直會跳出此error,

後來我把titanium更新之後,

在install new software->add -> name 隨意

location-> 輸入

http://download.eclipse.org/releases/helios

再到搜尋輸入SVN安裝,即可正常安裝~!

詳細安裝請參考:

https://wiki.appcelerator.org/display/tis/Subversion



2013年5月2日 星期四

在Titanium使用JSDoc產生API文件


這篇來說明一下如何使用jsDoc,

我是在mac系統底下執行,

window系統資訊很多應該很多資料很容易查到。

首先先下載  jsdoc-toolkit jsdoc_toolkit-2.4.0.zip的檔案。

將zip檔解開放到你知道的位置。

一開始我以為要安裝,一直找不到如何安裝,但後來發現解壓縮完就可以用啦。

把你的js檔內加入註釋,但註釋需依照規範來寫,寫比較常見的幾個,

其它就看輔助網站囉~

例如有個method叫做 add()  ,用來相加兩個數的結果。

/**
* 將兩數相加,回傳總和
*
*@param {int} 傳入第一個整數
*@param {int} 傳入第二個整數 
*
*@return {int} 回傳總和的數字
*/

var add = function( a, b)
{
    var result = a + b;
    return result;
}


接下來去終端機下指令:
先移到你的jsdoc那個資料夾(剛才下載解完壓縮的地方)

java -jar jsrun.jar app/run.js -a -t=templates/jsdoc /Users/mac/Desktop/james/project/titanium/xxxx/Resources/*.js

你也可以直接指定檔名 。

接下來在jsdoc的那個資料夾內你會看見一個out的資料夾,裡面就是你的API文件了~

其它的註釋規範可以參考這裡

2013年4月10日 星期三

讓Android支援實體鍵盤

在開發Android 程式時,常常會使用到EditText 需要輸入文字,

但使用android的軟體鍵盤不太方便, 以下為開啟android模擬器支援實體鍵盤輸入的方式。

1. 開啟AVD

2. 點選你要選擇的模擬器(AVD Name)  點選Edit

3.在Hardware的部份,選擇New

4.在Property: 找到  Keyboard support 支援 實體鍵盤  (Keyboard lid support為支援虛擬鍵盤),按下OK。

5.在Value的部份把no改成yes

6.確定yes改好後,點選Edit AVD即可使用實體鍵盤。

2013年3月6日 星期三

[ERROR] Error: Traceback (most recent call last):


[ERROR]
[ERROR] Error: Traceback (most recent call last):
  File "/Users/mac/Library/Application Support/Titanium/mobilesdk/osx/2.1.4.v20121109124659/iphone/builder.py", line 1551, in main
    execute_xcode("iphoneos%s" % iphone_version,args,False)
  File "/Users/mac/Library/Application Support/Titanium/mobilesdk/osx/2.1.4.v20121109124659/iphone/builder.py", line 1231, in execute_xcode
    output = run.run(args,False,False,o)
  File "/Users/mac/Library/Application Support/Titanium/mobilesdk/osx/2.1.4.v20121109124659/iphone/run.py", line 41, in run
    sys.exit(rc)
SystemExit: 65

今天在上架iphone的app時,

titanium居然報錯,讓我超煩惱,

因為在模擬器與實機測試都正常沒這個問題,

以為是titanium沒裝好還是怎樣,

後來把憑證重新申請也是一樣的結果 ="=

最後發現 在resource的資料夾內有txt文字檔 ,

把txt文字檔移除重新發佈就可以了!!!

======2013.03.18======
今天又發生一樣的問題

花了一整天才解決..

最後是重建一次專案就好了..無言..

2012年12月20日 星期四

Google Map API V1 API Key

Google Map API V1  API Key現在需從

https://developers.google.com/maps/documentation/android/v1/maps-api-signup

這裡申請,

因為api v2 v3 出了一些時間

此api v1不再提供更新了, 但有必要時可由此在申請到api key

2012年12月17日 星期一

google map keytool 錯誤

今天要產生Google map的keystore出現了 


keytool 錯誤: java.lang.Exception: Keystore 檔案不存在

之前有發生過,後來用力回想才回想起來

在mac底下應該去到你的使用者目錄後

進入./android的資料夾  再去產生keystore。

在mac底下,keystore會存放在

使用者→使用者的名稱-> .android的資料夾下面  (cd /Users/name/.android/ )

這是一個隱藏資料夾,可以過finder的前往到.android去存取你的keystore檔

====================================
產生keystore的方法 可以參考 
http://wangshifuola.blogspot.tw/2011/06/androidgoogle-map-api-key.html


輸入

keytool -genkey -v -keystore keystore名稱.keystore -alias alias名稱 -keyalg RSA -validity 10000

這個語法可以產生keystore


再去抓取fingerprints

下 keytool -list -v -keystore keystore的檔案

上面都是全名xxx.keystore

就可以產生fingerprints了  再去consols api產生 api key


2012年11月20日 星期二

ios APNS文字補充

1.鑰匙圈存取→憑證輔助程式→從憑證授權要求憑證…
 Common Name要記得填入什麼,等下會用到。

2. 儲存到磁碟(saved to disk) ,此時會是你的 檔名.cerSigningRequest。

3.前往→工具程式→鑰匙圈存取→點左下方類別的 鑰匙,會看見多出兩個剛才Common Name   輸入的文字密鑰(公用密鑰、專用密鑰)



5.登入iOS Provisioning Portal (就是要申請憑證的那裡)

6.新建一個App IDs 建立好後,找到剛才新建的App IDs項目,點選Configure→將Enable for Apple Push Notification service打勾,點選Configure,上傳剛才第一步得到的cerSigningRequest副檔名。

7. 選擇好後,按下Generate(產生),將產生的SSL檔下載下來,此時下載下來的預設檔名為 aps_development.cer,要記先點擊兩下!

8. (4).    在與剛才Common Name相同的專用密鑰上點選右鍵 Export ”Common Name輸入的名稱",此 時檔案格式會是 .p12檔→按下存儲後,會跳出密碼,請輸入要設定的密碼,之後會用到  唷( .net使用只要到此步即可)。

8. 下載完成後,點選done 此時你會看見Status會變為Enabled的綠燈

9.  現在你應該會有三個檔案,副檔名分別是  .cerSigningRequest  、 p12 、cer 三個檔

10.  現在要來合併提供給PHP使用的檔案,請開啟終端機

11. 首先我們要透過指令將 cer檔轉成.pem檔

12. 將終端機移到剛才三個檔案的位置,並且下下方指令:


openssl x509 -in aps_developer_identity.cer -inform der 

    -out 轉換出的檔.pem


13.  此時會產出       轉出來的檔案.pem

14.  再來我們要把 剛才的.p12 檔 轉出另個key的pem檔 到時要把兩個pem檔合併起來

15.



openssl pkcs12 -nocerts -out 轉出來的Key.pem -in 剛才你的p12檔檔名.p12

Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:


16. 再來 要將剛才產生的兩個pem檔 合併  下指令:



cat 剛才轉出來的Cert.pem 剛才轉出來的Key.pem > ck.pem






2012年10月11日 星期四

push notification for iphone

試了很久的 push notification for iphone

終於

試出來了!

感謝 JustFly 的協助

---------------------------------------

詳細可以參考 這篇

靜下心花點時間按照此步驟一步一步的做

應該可以做到最後產生 .pem檔

此篇在後續titanium的部分





---------------------------------------


// this sets the background color of the master UIView (when there are no windows/tab groups on it)
Titanium.UI.setBackgroundColor('#000');

var win = Titanium.UI.createWindow({
    title : 'Tab 1',
    backgroundColor : '#fff'
});
Titanium.Network.unregisterForPushNotifications;
Ti.API.info("unregisterForPushNotifications");
Titanium.Network.registerForPushNotifications({
        types:[
                
                Ti.Network.NOTIFICATION_TYPE_ALERT,
                Ti.Network.NOTIFICATION_TYPE_BADGE,
                Ti.Network.NOTIFICATION_TYPE_SOUND
        ],
        
        success: successCallback,
        error: errorCallback,
        callback: messageCallback
});

function successCallback(e) {
        alert(e);
        alert( e.deviceToken+'');
        var deviceToken = e.deviceToken;
        // var deviceToken=Ti.Network.remoteDeviceUUID;
         // alert('deviceToken:' + Ti.Network.remoteDeviceUUID);
}

// error callBack
function errorCallback(e) {
        alert(e);
        alert('Push errorCallback' + e.error +'');
}

// message callBack
function messageCallback(e) {
        alert(e);
        alert('Push messageCallback');
}


win.open();


------------------------
記得 e.deviceToken+''要轉成字串才可以抓到deviceToken


抓到deviceToken之後

將deviceToken貼到網站裡的simplePush.php的範例

為了讓push notification能夠傳遞中文

所以要多加上轉換成UTF-8編碼


$message = '傳遞中文通知!';
$message = iconv('Big5','UTF-8',$message);

由於發佈發現一直無法出現傳遞成功的字樣

後來發現式pem路徑問題

我也是將pem放在同樣www的資料夾 (我使用appserv)但就抓不到

後來將程式改成


$apnsCert = dirname(__FILE__) . '/' . 'ck.pem';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert',  $apnsCert );

這樣就可一順利發佈push notification了






2012年9月27日 星期四

Titanium設定suds 編碼

suds 0.39前版本預設無使用utf - 8的版本

若要使用UTF-8的話

在 xhr.setRequestHeader('Content-Type','text/xml;cahrset=UTF-8'); 加入即可。

titanium降階發佈ios sdk 4.3以下版本

ios6剛出來

xcode也升級到4.5版本 ios sdk到6的版本

使用titanium studio升級之後就無法選擇sdk 4.3版本了

若要使用sdk 4.3版本需要到 titanium studio -> preferences -> Aptana Studio->Titanium

去設定ios SDK Home的路徑,

但會發現無法選擇路徑

需開啟mac的終端機

使用 sudo xcode-select -switch /Developer

(要改回來就下


sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

)  -> for xcode 4.3


會要求輸入root的密碼

若使用者帳戶未設密碼請輸入一個使用者帳號的密碼才可以用sudo指令

此時按下設定後 在titanium內就可以選擇 4.3以下的sdk版本對iphone3來進行模擬測試

reference:
http://docs.appcelerator.com/titanium/2.0/index.html#!/guide/Configuring_XCode_inside_Titanium_Studio

2012年8月22日 星期三

設定中文app name for iphone

此篇記錄設定中文名字for iphone版本

android版請看

其實iphone版與android差不多

反而更容易

建立資料夾 i18n / zh_TW  

zh_TW為繁體中文

zh_CN為簡體中文




再建立app.xml檔

內容如
<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string name="appname">中文名字</string>
</resources>


即可

Admob Module設置

今天在設置Admob的module時,

找不到應該安裝的資料夾==

官網是寫於這裡  (這是mac版本)

/Library/Application Support/Titanium/module/iphone


window版本位置:

C:\Users\username\AppData\Roaming\Titanium\modules\android



安裝方式可參考

https://wiki.appcelerator.org/display/tis/Using+Titanium+Modules


但我這台mac就是找不到

最後只好由另個方式

在 此路徑建立modules


/--build
 --tiapp.xml
--Resources
--modules
----iphone
-------ti.admob
---------1.3
...


// -----
最後有問到 這個檔可能在mac是隱藏檔
所以下  Shift+Command+G
輸入 ~/Library

就可以從裡面找到安裝的地方了

2012年8月13日 星期一

看不見Ti.API.info()訊息

今天在使用Titanium時,

升級完Titanium SDK 後 發生了看不到 Ti.API.info()的情況

我升級完的版本是


Titanium Studio, build: 2.1.1.201207271312

當我下Ti.API.info()時  

console出現以下訊息


[INFO] Found 4.3.2 patch installed



Ti.API.info()的內容就此消失了

查官網此篇

http://developer.appcelerator.com/question/118667/titanium-161-and-xcode-43---debuginfo-problem

先到


cd ~/Library/Application\ Support/iPhone\ Simulator

內容大約是把 4.3的資料夾 備份, 再把 4.3的資料夾做與4.3.2連結 ,

這樣就可看見Ti.API.info()的內容了

mv 4.3 4.3.old
ln -s 4.3.2 4.3


2012年7月1日 星期日

將tabgroup移置下方

Titanium Studio裡的tabgroup預設是在上方

要如何將tabgroup移到下方(bottom)呢?

可以參考
http://www.titaniumtutorial.com/2012/03/titanium-android-bottom-tabgroup.html

大意是說先建立資料夾

platform/android/res/layout/

並建立titanium_tabgroup.xml的檔案

內容放置



<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@android:id/tabhost"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">



    <LinearLayout

        android:orientation="vertical"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:padding="0dp">



        <FrameLayout

            android:id="@android:id/tabcontent"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:padding="0dp"

            android:layout_weight="1"/>



        <TabWidget

            android:id="@android:id/tabs"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_weight="0"/>



    </LinearLayout>



</TabHost>


這樣執行就能將tabgroup移到下方顯示囉

2012年6月29日 星期五

設定中文app name for Android


使用Titanium Studio設定中文app name

可依照 http://developer.appcelerator.com/blog/2012/02/internationalization-of-app-names.html

實作

但Android方面有點不同

首先 先發佈一次你的程式 發佈成功後

新建platform資料夾

platform裡 再新建 android資料夾

android內再新建res資料夾

並分別建立你想要對應的語系資料夾

中文則用values-zh 資料夾  英文則用values-en

再到build/android/AndroidManifest.xml (要先發佈過一次才會產生)  把此檔copy到

platform/android資料夾裡 (這是自己建立的資料夾)

與上面網址教學圖片不同  教學網站圖有誤

真正的路徑圖會變這樣



然後建立你的語系檔strings.xml為名

內容




<?xml version="1.0" encoding="UTF-8"?>

<resources>  

     <string name="app_name">中文測試</string>

</resources>





接下來 開啟AndroidMainifest.xml  修改成以下紅色地方



    <!-- TI_MANIFEST -->

    <application android:icon="@drawable/appicon"
        android:label=&quot;@string/app_name" android:name="TestApplication"
        android:debuggable="false">

        <!-- TI_APPLICATION -->

        <activity android:name=".TestActivity"
            android:label="@string/app_name" android:theme="@style/Theme.Titanium"
            android:configChanges="keyboardHidden|orientation">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>



原本以為這樣就可以了  在Titanium Studio 1.8.2 記得是這樣的做法

但發現到Titanium Studio, build: 2.1.1.201206271720版本一直產生不出中文app name

後來 我到 tiapp.xml 內

將  的內容改成



<name>@string/app_name</name> 



就可以順利變中文囉

記得若用中文為名的話,在模擬器記得要去setting改語系才會顯示你對應的語系哦





================================================================
2012.12.18更新
若上述無法成功,

請試看看把build/android/AndroidManifest.xml 把此檔copy到

platform/android/res資料夾裡 (這是自己建立的資料夾)


此處要更新一下,在tiapp.xml內的



<name>是英文</name> 

不能改成最上面說的那樣,不然在distribute的時候會無正常發佈

2012年6月27日 星期三

Titanium:The Desktop-SDK問題


裝了Titanium Studio 2.0.2的版本後

在setting的部份會出現 Titanium SDK Home有警告訊息

[Titanium SDK Home] The Desktop-SDK root path'c:\Users\.....\Titanium\sdk\win32' is not a directory

雖然程式是可以run不影響






後來到論壇問得到的回答是:



mosluce :
Desktop SDK 目前已不支援 Windows 囉!
這部份可以不需要設定,Titanium Mobile Project 使用上應該不會有問題


2012年6月26日 星期二

Titanium Studio 2.0.2安裝

重灌電腦後

裝了新版的Titanium Studio2.0.2版

發現安裝過程出現好多問題= =

記錄一下以免之後忘記

首先 Titanium Studio 2.0.2似乎目前不支援JDK 1.7版

所以請安裝JDK 1.6的版本 http://www.oracle.com/technetwork/java/javase/downloads/index.html

JRE我是裝6的版本

若發佈時 出現下圖 錯誤訊息

[ERROR] JDK version ' javac' .......... detected, but 1.6 is required

不要緊張

這就是沒有抓到jdk jre的樣子

此時要在環境變數設定

開啟我的電腦右鍵 內容 進階系統設定

下面的系統變數按下新增
變數名稱打上:JAVA_HOME
變數值打上:C:\Program Files\Java\jdk1.6.0_33   //這就看你的路徑放哪

再新增一個
變數名稱打上:Path
變數值打上:C:\Program Files\Java\jdk1.6.0_33\bin     //這就看你的路徑放哪



重新開啟你的Titanium Studio 再發佈一次 即可

至於Android的設定  2.0.2 感覺和之前1.8.1 1.8.2有些許不同

windows→preferences裡我找不到Titanium Studio的選項 


可能是舊版的圖

所以要設定Android SDK的地方 我是在建立新專案的地方  點選Set-up/confiqure SDKs去選

Android SDK與Android NDK的位置(這之前要先下載下來)