2018-05-04

Android java.lang.NoClassDefFoundError 解決方案

這兩天在開發一個Android Lib, 並包含該Lib Demo App 的 Android App.
將該Demp App 部署在 4.4 的 裝置上,會出現 NoClassDefFoundError.
但是,安裝在 Android 8.0 的裝置上,可以正常運行。

找了兩天,發現下面這一篇 NoClassDefFoundError错误的一种解决方案
依照裡面建議的方法,把 Demo App 的 Application 使用  MultiDexApplication 繼承。
這樣問題就解了.......

2018-04-18

Android Studio 3.1.1 的地雷

這個月升級了Android Studio 3.1.1,爆出了下面這些雷

1. 原先所有可以debug run 的全部出現 debug.keystore 錯誤
更新後,原先的project or new project 在 android studio 開啟後,都會在目錄裡面多出~的子目錄。接這 debug run 時,會出現 debug.keystore 的 sign file 不存在。
解法:
在過去有設定 ANDROID_SDK_HOME 的 環境變數,把它拿掉就可以。
Mac : 將 .bash_profile 裡頭的 ANDROID_SDK_HOME 移除,並使用 unset ANDROID_SDK_HOME 移除開機後加入的變數

2017-11-13

Xcode 客製化自己的 File Templae

現在開發環境如果有使用Git and IDE, 因該不用在每一個檔案中加上Creator and Create Time.
在Git 中已經可以回朔開發者, 而且通常不會只有一個人.
在Xcode 中, 每一個新的檔案會加上一堆我不想要的 Comment. 想要每一次開一個新檔案都是可以完全沒有相關的廢物. 
在Xcode 要做到就是利用Templates 來達到, 並且做到個人的客製化.下列步驟就可達到

1. 新增Xcode File Templates , "Custom" 在自己的目錄下. "Custom" 是會出現在你的Xcode新增檔案時的一個大分類, 可以自己取不同的名字, Xcode IDE 會出現不一樣的名字
mkdir -p ~/Library/Developer/Xcode/Templates/File\ Templates/Custom

2.複製原有的Xcode Templates 到你的Templates, 下面是複製Swift 的路徑
cp -R /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/Source/Swift\ File.xctemplate/ ~/Library/Developer/Xcode/Templates/File\ Templates/Custom/Swift\ Class.xctemplate 
 
3. 修改 Template File 內容. 我是直接把 __FILEHEADER__ 拿掉. 達到我不要任何Comment
 
 
參考
1. Creating a reusable file template in xcode
 
 

2017-11-08

iOS 開發使用 Blade 去管理圖片

研究 Google Firebase 的 Codelab FriendlyChat 時, 發現有一個Bladefile. 研究了一下, 是協助開發者管理 App 使用到的 Images.xcassets 的方式.

相關網址:
1.  Blade Git and Readme

2017-11-02

非付費的 iOS 實機開發

最近學習開發 iOS App, 原本以為需要付費才可以進行實機的測試.
在網路上找了一下, 原來 xcode 7 以後已經不需要付費就可以使用.
只有幾個原則需要注意
1. 只能部署在三台機器
2. App 只有七天有效, 七天後要重新部署

上面幾個原則其實合理,  如果開發測試確實七天夠用了.

如何申請
1. 打開 xcode
2. menu -> Xcode - > Perferences
3. Select Account
4. 左下角新增+ , 選擇使用 AppleID
5. 輸入 你自己申請好的AppleID
以上五個步驟就算可以了

後面開啟你的 xcode project ,  在 General 選項中  Signing-> Team 選擇你剛剛的 apple ID 名稱.
接下來, 部署的時候就可以選擇你已經連接在電腦上面的 Apple Device .

參考資料
1. [Xcode7] 實機測試
2. 非付費開發者的 iOS 實機測試