November 2, 2012

以 Adobe Flash 開發 iOS 和 Android App 教學(開發者端)

年初有幸與南部某團隊合作開發一款 App,並順利於 App store上市。

最近因為研究所很忙的關係,停止了所有打工與 case,在整理 workspace 時,發現一些當時寫的教學文件,貼出來跟大家分享一下。

這篇是開發人員端的設定。


目錄


(零) 用 Flash 開發 iOS / Android App 的缺點

從這個網誌往前翻可以發現,我從小學就開始玩 Flash,寫出了各種大大小小的作品,我也相當喜愛這套軟體和語言。但是 Flash 已經快要掛了,Adobe 已經漸漸停止對 Flash 的支援,不論是行動裝置、多媒體體驗、甚至網頁方面,Flash 都已經失去優勢,沒有什麼前途。

除非您所合作的對象只會 AC3.0 和 Flash,否則相較於其他平台,我認為用 Flash 開發iOS/Android App 並非首選

以下列出幾個主要缺點:

  1. Flash 本身肥大,外加編譯緩慢。
  2. iOS 一旦更新,Adobe AIR 就要跟著更新,您之前所做好的 App 都要重新封裝再編譯發佈。
  3. 各種 plug-in 的不足,重新學習/看文件的投資報酬率又很低,因為 Flash 快死了。
  4. 很多應該要有的 API(ex:facebook graph)都沒內建,雖然 3rd-party 有提供,但是技術支援性很低。
  5. 相較於其他開發平台而言,使用者少,參考資料少,遇到問題難解決。
  6. 很多”莫名其妙”的問題(下面有例子),簡單來說就是開發環境很不穩定。
  7. Flash 雖然紅了十多年,但是現在很明顯快死掉了,相較於其他正高速崛起的平台(Unity, cocos2D, corona SDK),開發者實在沒有理由選用 Flash。

如果您仍然堅持要用 Flash 開發iOS/Android app的話,就請繼續看下去吧。

本篇主要翻譯整理自:

http://help.adobe.com/en_US/as3/iphone/WS144092a96ffef7cc-33e1d8031250a54a821-7fff.html

以及該連結所外連的各個頁面。


(一) 詳細步驟

1. 目的

使用 Adobe Flash CS 5.5AC3.0 開發 iPhone 應用程式(App),並在開發者的裝置上執行/測試。

2. 事前準備

  1. 購買一台 iOS 裝置 (ex: iPhone, iPod Touch 4)
  2. 下載並安裝 iTunes
  3. 安裝 Adobe Flash CS 5.5

3. 註冊並成為 Apple Developer

  1. http://developer.apple.com/membercenter/index.action
  2. 跟著步驟一步步成為 developer
  3. (optional)或請已經是 developer 的人將妳加到他的 Company / Organization

4. 從 Apple 取得 Apple Developer Certificate Profiles

A. 作業系統為 Mac OS 時

  1. Open Keychain Access.
  2. On the Keychain Access menu, select Preferences.
  3. In the Preferences dialog box, click Certificates. Then set Online Certificate Status Protocol and Certificate Revocation List to Off. Close the dialog box.
  4. On the Keychain Access menu, select Certificate Assistant > Request a Certificate from a Certificate Authority.
  5. Enter the e-mail address and name that matches your iPhone developer account ID. Do not enter a CA e-mail address. Select Request is Saved to Disk and then click the Continue button.
  6. Save the file (CertificateSigningRequest.certSigningRequest).
  7. http://developer.apple.com/membercenter/index.action,進入 iOS Provisioning Portal
  8. 點選左邊的 Certificates 菜單,在 Action 那欄點選 apply 或 get 之類的選項
  9. 上傳剛剛建立的 RSA 檔案
  10. 過一段時間後就能在步驟8.那邊看到 Certificates 已經可以下載了,在 Action 那欄點選 download 儲存到電腦。

B. 作業系統為 Windows 時

  1. http://www.openssl.org/related/binaries.html 下載並安裝 OpenSSL (You may also need to install the Visual C++ 2008 Redistributable files, listed on the Open SSL download page)。
  2. 重開機!
  3. Windows 左下角開始,搜尋 cmd,右鍵選擇以系統管理員身份執行。
  4. CD to the OpenSSL bin directory (such as c:\OpenSSL\bin\)
  5. 輸入 openssl genrsa -out mykey.key 2048 來取得 private key。
  6. 輸入 openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddress=yourAddress@example.com, CN=John Doe, C=US" 來取得 CSR file。Replace the e-mail address, CN (certificate name), and C (country) values with your own.
  7. http://developer.apple.com/membercenter/index.action 進入 iOS Provisioning Portal
  8. 點選左邊的 Certificates 菜單,在 Action 那欄點選 apply 或 get 之類的選項
  9. 上傳剛剛建立的 RSA 檔案
  10. 過一段時間後就能在步驟8.那邊看到 Certificates 已經可以下載了,在 Action 那欄點選 download 儲存到電腦。

5. 將拿到的 Certificate Profiles 轉成 P12 Certificate

A. 作業系統為 Mac OS 時

  1. Open the Keychain Access application (in the Applications/Utilities folder).
  2. If you have not already added the certificate to Keychain, select File > Import. Then navigate to the certificate file (the .cer file) you obtained from Apple.
  3. Select the Keys category in Keychain Access.
  4. Select the private key associated with your iPhone Development Certificate.
  5. The private key is identified by the iPhone Developer: public certificate that is paired with it.
  6. Select File > Export Items.
  7. Save your key in the Personal Information Exchange (.p12) file format.
  8. You will be prompted to create a password that is used when you attempt to import this key on another computer.

B. 作業系統為 Windows 時

  1. 左下角開始,搜尋 cmd,右鍵選擇以系統管理員身份執行。
  2. CD to the OpenSSL bin directory (such as c:\OpenSSL\bin\)。
  3. 輸入 openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
  4. 輸入 openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12
  5. 請輸入密碼並將之牢記。

6. 取得 iOS 裝置之 UDID

  1. 把你的 iOS 裝置接上 USB 傳輸線連接電腦,並開啟iTune。
  2. 點擊裝置的 Serial Number 資訊,此時原本顯示 SN 的地方會顯示 UDID。
  3. 將該裝置之 UDID 使用快捷鍵複製或筆記起來。

7. 從 Apple 取得 Apple Developer Provisioning Profiles

  1. http://developer.apple.com/membercenter/index.action,進入 iOS Provisioning Portal
  2. 點選左邊的 Devices 菜單,點選左上角的 Add Devices
  3. 輸入裝置辨別名稱UDID
  4. 點選左邊的 Provisioning 菜單,創建 New profile 或修改目前的 profile。
  5. 新增開發者的 Certificates 以及運行測試的裝置(剛剛新增的那台)。
  6. 下載該 Provisioning file。

8. 將 Provisioning Profiles 安裝在你的 iOS 裝置

  1. 把你的 iOS 裝置接上 USB 傳輸線連接電腦,並開啟 iTune。
  2. 將剛剛的 Provisioning Profile 拖曳至資料庫,並與裝置同步。
  3. 在你的裝置上點選設定→一般→描述檔,檢查剛剛的 Provisioning Profile 有沒有成功放進來。

p>

(二) 建立測試程式

1. 用 Flash 寫一個簡單的程式,發佈成 ipa 格式

  1. 開啟 Flash CS 5.5,開新檔案,選擇 AIR for iOS。
  2. 隨便畫幾個圖在場景上。
  3. 點選檔案→AIR for iOS設定。
  4. 設定檔案名稱(.ipa名稱)、應用程式名稱(顯示在iOS裝置上的名稱)。
  5. 點選部署,在.p12憑證那欄加入剛剛做的.p12憑證,在密碼欄點選剛剛建立憑證時輸入的密碼。
  6. 描述檔點選剛剛建立的 Provisioning File(.mobileprovision) 並輸入應用程式 ID。(依照 Provisioning File 的不同而有所限制,詳情請見 http://help.adobe.com/en_US/as3/iphone/WS144092a96ffef7cc-4ae52ec4126ab9d6ce6-8000.html )
  7. 發佈成 ipa檔

2. 在iOS 裝置上測試你的程式

  1. 把你的iOS裝置接上USB傳輸線連接電腦,並開啟 iTune

  2. 把剛剛發佈的 ipa檔拖曳至資料庫,並與裝置同步

  3. 在裝置上執行妳的 App。

  4. 若一切正常,可以參考 http://help.adobe.com/en_US/as3/iphone/WS789ea67d3e73a8b2-240138de1243a7725e7-7ffc.html 瞭解更多設定。


(三) 其他疑難雜症

用 Flash 開發iOS/Android App 會遇到很多問題,這邊紀錄了一些問題以及解決方法。

1. 簡易更新 Adobe AIR SDK 的方法:

  1. 關掉 Flash 以及任何跟 Adobe AIR 有關的程式/開發工具。
  2. 到 Flash 的安裝目錄(e.g. C:\Program Files\Adobe\Adobe Flash CS5.5) 裡面找到 AIRx.y 的資料夾(x 及 y 分別代表數字,”x點y”代表版本編號,ex: AIR2.6)。
  3. 將該資料夾重新命名(e.g. 將 AIR2.6 資料夾重新命名為 AIR2.6_OLD)。
  4. 重新建立一個新資料夾取名叫 AIRx.y,就剛剛更名前的那個。
  5. http://www.adobe.com/devnet/air/air-sdk-download.html 下載最新的 AIR SDK。
  6. 將下載來的SDK解壓縮到剛剛建立的 AIRx.y 資料夾,完成。

作法其實很多種,總之 Flash 會去某個已經設定好的PATH(e.g. C:\Program Files\Adobe\Adobe Flash CS5.5\AIR2.6\bin)裡面找 source file 或 exe 檔,所以只要把該路徑資料夾的內容替換掉就可以了。當然您也可以選擇直接改變PATH,但是上面的做法還順便備份舊的SDK。

2. facebook-actionscript-api,JSON檔出問題

第三方 Facebook API 可以從下面下載,裡面也有相關文件

http://code.google.com/p/facebook-actionscript-api/

但是使用起來個人感覺蠻不穩定的,譬如引用JSON檔時出問題

這個錯誤訊息是因為 JSON.as 的檔名與 import 時引用的檔名大小寫不同 所造成的

在出現錯誤的檔案內,把
import com.adobe.serialization.json.JSON;
改成
import com.adobe.serialization.json.Json;
或是反過來全改成 JSON

總之 JSON.as 的檔名跟 import 時的檔名要一樣,就不會出現錯誤訊息了。

3. FacebookMobile API 突然沒有作用

解法:

Sometimes the FacebookMobile API will freak out and stop working even if it had been compiled perfectly last time. Yes, this makes no sense and is really confusing. To solve this, simply just copy all your workspace(including all the .as files and .fla files but NOT the facebook API folder) to a new created folder. Then, download the facebook-actionscript-api from google code website again. Decompress it to your new workspace folder. And everything works fine again. I still have no idea how this happened. But it WORKS for me everytime. And it had happened more than once.

VoiceTube 看影片學英文