Cydia JB 分享

[教學] iOS Bytafont 專用字體 deb 檔案打包教學

這一篇來教大家如何自己打包一個 Bytafont 可以使用的字體 deb 檔案,打包完之後便可以在手機上自行安裝,並使用 Bytafont 來套用你自己做的字體……




這一篇來教大家如何自己打包一個 Bytafont 可以使用的字體 deb 檔案,打包完之後便可以在手機上自行安裝,並使用 Bytafont 來套用你自己做的字體。

 

不過因為我本身並沒有程式設計的背景,所有的經驗都是網路上請教其他高手 ( 感謝皮樂大教我很多 ),再自己慢慢爬文所學來的,也許會說明得不夠完整,但我盡量把我所知道的寫下來跟大家分享。

 

嚴格說起來,一個字體的 deb 檔並不難包,也壓根算不上什麼寫程式,充其量就是用個資料夾路徑,用一個 control 控制檔註明所需資訊,然後再用打包工具進行打包壓縮這樣而已,最簡單的工具不需要電腦,直接用你手中的 iPhone、iPad、iPod Touch 就行了。

 

當然用電腦來做一定也可以,Ubuntu、Mac 甚至 Windows 都可以,只是步奏上和要準備的前置做業麻煩很多,由於我並非要深入去研究「寫程式」這件事,只是要方便自己製作字體的安裝檔,上傳到軟體源而已,所以當然就用最簡單的 iDevice 來操作就好。( 皮樂大也是都用 iPhone 在打包喔XD )

 

這一篇的打包學會之後,下一篇也會教大家如何建立一個自己的軟體源,把你的 deb 檔上傳到軟體源中,雖然說這不是必要的,不過因為有些部份與打包 deb 的內容是相通的,所以下一篇會再跟大家分享。

 

 

以下教學開始

 

 

 

一、準備事項

 

(1) iDevice

iPhone、iPad、iPod Touch 都可以,但因為處理器的差異也會影響到打包的速度,如果是英文字體,因為大小頂多 5~8MB,機型不需太講究,若是中文字體動輒 50~70MB ( 打包後約 26~30MB ),建議用 iPhone 5/5S 或同等級 CPU 的設備來操作會快一些。

 

(2) 設備需要 JB 越獄

換字體涉及系統權限,JB 是當然的,當你自己做字體到了一定的程度之後,相信你應該也很常接觸 JB ( 越獄 ) 這件事了 ( 請參考:iOS 7.1.1 JB 越獄教學 )

 

(3) iDevice 需安裝軟體

iFile:大家很熟悉的 iDevice 檔案管理軟體

Apple File Conduit “2”:新的 afc2add,由 saurik 開發,USB 檔案傳輸用

Bytafont 2:換字體用,本篇文章以 iOS 7 的字體為主

MobileTerminal:就跟 Mac 上的終端機一樣,執行打包指令用

( 以上在 Cydia 都能直接搜尋安裝 )

 

(4) 電腦上需求軟體

iFunbox:或其他你覺得好用的 iOS 檔案傳輸軟體

文字編輯器:一般電腦都有內建,可以編輯文字檔即可

DS_Store Cleaner:清除暫存檔用,Mac/Win 都有,裝了比較方便

 

(5) 已做好適用 iOS 的字體

要打包當然要先把字體做好,測試過沒問題啊XD

 

 

 

二、建立資料夾與結構

 

(1) 建立一個新資料夾,命名隨意,本篇就以 new 為例說明

 

(2) 依照以下結構,在 new 中再依序建立資料夾

注意1:只有 DEBIAN 與 var 在同一層中,不同語言字體路徑稍有不同

注意2:Bytafont 2 的字體都是放在 Myfonts2 ( 別忘了有後面有個 2 )

 

英文字體:( 系統、鍵盤、iBooks … 等 )

new

DEBIAN

var

—-mobile

——Library

——–MyFonts2

———-new.font

 

中文字體:( 及韓文 )

new

DEBIAN

var

—-mobile

——Library

——–MyFonts2

———-CK

————new.font

 

日文字體:

new

DEBIAN

var

—-mobile

——Library

——–MyFonts2

———-Japanese

————new.font

 

關於字體路徑也可以參考 Bytafont 開發團隊的 blog

 

(3) 結構說明:

1. DEBIAN 一定要全部大寫,裡面等一下要放 control 文件

2. var 以下的幾個結構相信大家都不陌生,就跟 iOS 長得很像

3. MyFonts2 是 Bytafont 所指定的資料夾名稱與位置

4. new.font 也是資料夾名稱,後面的「.font」也是 Bytafont 規範的

5. new.font 的「new」將會是顯示在 Bytafont 中的字體名稱,可以隨意取名,各種語言基本上都可以,也可以接受空格等字元

6. 中文、英文、日文能不能做在同一個 deb 呢?答案是可以的,因為路徑不同,你可以一次把不同路徑的字體全部包在一起,安裝後在 Bytafont 裡面就分別去套用即可。( 做在一起的話,移除時也是一起移除 )

 

其實在 Cydia 中也可以很輕易地看到「已安裝」Tweak 的檔案路徑有那些,隨便找一個你已經有安裝的檔案,點進去拉到最下面 ( 抱歉不小心截到日文介面圖XD )

 

 

就可以看到這個安裝包的路徑為何,Bytafont 字體的話就會跟剛剛提到的一樣

 

 

 

三、放入字體檔

 

將你的字體檔案全部放到最後的 new.font 資料夾中,例如中文的是這樣

new.font

STHeiti-Light.ttc

STHeiti-Medium.ttc

STHeiti-Thin.ttc

STHeiti-UltraLight.ttc

 

補充:

(1) 中英文各有不同的檔案,雖然就算檔案有缺少,在 Bytafont 中一樣可以替換,但是中文要有完整的 4 個檔案 ( 如上述 ),英文則是最少要有 4 個基本的系統檔案:

new.font

Helvetica.ttc

HelveticaNeue.ttc

HelveticaNeueInterface.ttc

HelveticaNeueLights.ttc

 

(2) 英文字體中還可以一起加入其他地方會用到的字體檔案,例如鍵盤字體、iBooks 字體等等,這些如果沒有也沒有關係,在 Bytafont 安裝時會出現檔案缺少的警示,但仍然是可以安裝的。

 

(3) Bytafont 可用字體整理如下

 

英文 ( 系統 ) 字體

Helvetica.ttc

HelveticaNeue.ttc

HelveticaNeueInterface.ttc

HelveticaNeueLights.ttc

 

鍵盤字體 ( 跟英文字體放一起 )

Keycaps.ttc

KeycapsPad.ttc

 

iBooks 字體 ( 跟英文字體放一起 )

Geogia.ttf

GeogiaBold.ttf

GeogiaBoldItalic.ttf

GeogiaItalic.ttf

 

內建相機 ( 跟英文字體放一起 )

DINAlternate-bold.ttf

 

中文字體 ( 放中文字體專用路徑 )

STHeiti-Light.ttc

STHeiti-Medium.ttc

STHeiti-Thin.ttc

STHeiti-UltraLight.ttc

 

日文字體 ( 放日文字體專用路徑 )

HiraginoKakuGothicW1.ttc

HiraginoKakuGothicW2.ttc

HiraginoKakuGothicW3.ttc

HiraginoKakuGothicW6.ttc

 

 

 

四、建立 control 文件

 

(1) 打開你的文字編輯器,新增一個純文字檔案

(2) 將以下範例內容複製後貼上 ( 下面會簡單說明各項目內容 )

Package: com.lulu.new
Name: New 字體
Version: 1.0
Architecture: iphoneos-arm
Description: Bytafont 專用字體
Depiction: 中文字體,安裝後需在 Bytafont 套用
Homepage: www.hdlulu.com
Maintainer: hdlulu <[email protected]>
Author: LuLu
Sponsor: hdlulu
Section: LuLu Font iOS7
Icon: file:///Applications/Cydia.app/Sections/Fonts.png
Depends: com.bytafont.bytafont2, firmware (>= 7.0), firmware (<< 7.2)

(3) control 欄位說明

這部份我盡量說明,畢竟我不是專業人士,不懂我也沒辦法XD

 

Package: com.lulu.new

軟體包的專屬 ID,com 也可以改為 tw 之類的字串,lulu 為作者名可自訂,new 就是軟體包的 ID 也可任意自訂,這個欄位請使用英文,且不能有空格,可接受短橫「-」下底線「_」符號。

 

Name: New 字體

軟體包的名稱,中文可用,也可以有空格

 

Version: 1.0

軟體包的版本號,第一次做當然是 1.0,或是 1.0.0 也可以

 

Architecture: iphoneos-arm

作業系統平台,照著填 iphoneos-arm 即可

 

Description: Bytafont 專用字體

軟體包簡述,出現在 Cydia 軟體列表中,軟體包名稱下面的小字說明,盡量簡短即可,注意不能換行

 

Depiction: 中文字體,安裝後需在 Bytafont 套用

軟體包說明頁面,在 Cydia 點進軟體後下面會出現的說明內容,中英文皆可,但此區不能直接換行,想換行的話要用 HTML 語法。也可以直接填寫一個完整的網址,目前 Cydia 裡面有很多 Tweak 都是直接用網頁內容來說明比較方便,我也是這麼做,畫面的安排比較自由。( 點進軟體包就會自動載入網頁 )

 

補充:用網址的填寫範例

Depiction: http://abc.com/html/new.html

 

Homepage: www.hdlulu.com

連結頁面,如範例填上一個網址即可

 

Maintainer: hdlulu <[email protected]>

維護者姓名 ( 英文 ),通常指的是軟體源的維護、管理者,後面的 Email 要和前面的名字空一格,並加上左右 <> 括號。

 

Author: LuLu

軟體包的作者

 

Sponsor: hdlulu

贊助者,隨便填也沒關係XD

 

Section: LuLu Font iOS7

軟體包的分類,中英文都可以。所以你可以建立在 Cydia 中自己專用的資料夾,也可以用 Cydia 裡面已有的資料夾名稱

 

Icon: file:///Applications/Cydia.app/Sections/Fonts.png

軟體包的圖示,用的是 Cydia 裡面內建的圖示,因為這一篇是教你打包字體的 deb 檔,,所以直接照填就可以了

 

補充:Cydia 本身就有很多種類的圖示可以用,平常你在 Cydia 裡面看到的幾乎都是,當然也可以用自己的圖示,不過麻煩一些,用 Cydia 的就最省事了。

 

Depends: com.bytafont.bytafont2, firmware (>= 7.0), firmware (<< 7.2)

1. 安裝軟體包的相依設定

Depends 指的是必要軟體,以軟體包的 ID 去做設定,例如在這個範例中,字體當然需要 Bytafont 這個軟體,而它的 ID 就是 com.bytafont.bytafont2。Depends 後面的軟體會與此軟體同時進行安裝。Depends 可以同時填上多組條件,用英文的逗號隔開即可。

 

2. 在 Cydia 中,如果想知道該軟體包的 ID 為何,可以直接安裝該軟體,然後再次進到 Cydia 中該軟體的說明頁面,拉到最下面就會看到 ID 了

 

3. 除了 Depends 之外,相依性還可以追加下面幾種:

Pre-Depends:預先安裝,先裝好這個再裝你的軟體包,上面 Depends 是同時

Conflicts:衝突軟體包,如果已有裝了指定在這裡的 ID,就會無法安裝

Replaces: 替換軟體包,安裝了 A 會替換掉 B 軟體

 

4. 因為我們做的是簡單的字體 deb,所以只要用到 Depends 就好了,或是用 Pre-Depends 去設定也一樣,其他的不需要。

 

5. 後面的 firmware (>= 7.0) 也要用英文逗號隔開,代表的是 iOS 的系統版本,如果有限定 iOS 韌體版本就要加入,firmware 與小括號 () 之間也要空一格,大小的符號通常使用如下:

 

>> 大於

<< 小於

== 等於

>= 大於或等於

<= 小於或等於

<> 不等於

 

補充:例如字體只適用 iOS 7.0 ~ 7.1.x,所以我多設定一個 << 7.2,這樣就可以限制在 iOS 7.0 以上,7.1.9 以下的版本號才能安裝。但如果你沒有限定 iOS 版本,當然也可以不要寫 firmware 這一項,會寫都是因為現在 iOS 每次版本都難保會對字體有一些變動,寫進去比較保險一點。

 

(4) 將 control 文件放入 DEBIAN 資料夾中

將編輯好的 control 文件存檔,刪除副檔名,如果你的電腦有隱藏副檔名,請設為顯示比較好確認 ( 怎麼設定請自行 Google )。總之,這個 control 是沒有副檔名的檔案就對了,直接放到 DEBIAN 資料夾中。

 

最後完成時的檔案結構是這樣

中文字體:

new

DEBIAN

—-control

var

—-mobile

——Library

——–MyFonts2

———-CK

————new.font

————–STHeiti-Light.ttc

————–STHeiti-Medium.ttc

————–STHeiti-Thin.ttc

————–STHeiti-UltraLight.ttc

 

英文字體:

new

DEBIAN

—-control

var

—-mobile

——Library

——–MyFonts2

———-new.font

————Helvetica.ttc

————HelveticaNeue.ttc

————HelveticaNeueInterface.ttc

————HelveticaNeueLights.ttc

————Keycaps.ttc

————KeycapsPad.ttc

————( 鍵盤字體沒做也沒關係 )

 

 

 

五、刪除暫存檔

 

以 Mac 系統來做的話,通常每個資料夾中都會自動產生 .DS_Store 這樣的系統文件檔,它是隱藏的檔案,只是一些系統標記完全沒有用處,有時候會產生有時候又不會 ( 跟 Windows 的 Desktop.ini 一樣無所不在XD ),所以我們需要做一個清除的動作。

 

簡便的清除工具:DS_Store Cleaner ( 免費 )

Mac/Win 平台都有,官方下載頁面請點我

 

如果你發現這個步驟沒作,檔案傳到 iPhone 中看也沒有 .DS_Store 這些檔案,打包時也都順利進行,那省略這個步驟也沒關係。或者上傳到 iPhone 裡面用 iFile 查看資料夾時才看到,也可以手動一個一個刪除。

 

總之,這個動作在你發現資料夾中有產生 .DS_Store 的時候,就將整個資料夾拉進去就會自動幫你清除所有的 .DS_Store 檔案,很方便的

 

 

 

六、將整個資料夾傳到 iDevice

 

將 iDevice 連接電腦,使用 iFunbox 等工具,把整個資料夾拖到 iDevice 裡面,請直接放到 /User 這個路徑會最方便。放好之後再做最後一次的檢查,看看檔案有沒有少放到,control 文件的內容有沒有填錯。( 在 iFile 中要開啟 control 時可以先幫他加上 .txt 就能開來編輯了,編輯完記得再把副檔名去掉即可 )

 

把資料夾整個放到以下兩個路徑「其中之一」即可:

/User/

/var/mobile/

( 這兩個路徑是完全相同的位置 )

 

補充:你要放到別的路徑也可以,只是這樣後續在打包輸入指令時會需要多打一次不同路徑,比較麻煩,所以直接放上述路徑就好了。

 

 

 

七、使用 MobileTerminal 打包 deb

 

終於到最後一個步驟了。在 iDevice 開啟 MobileTerminal,會進入指令畫面

 

(1) 輸入 su 並按下 Enter 鍵,接著要輸入密碼,預設是:alpine,輸入密碼的時候不會有一般的 ******,是完全空白的,輸入完再按下 Enter 鍵。( 備註:有 JB 的人還是建議改一下 root 密碼,修改方式自行 Google 一下就有了 )

 

輸入完密碼後會顯示為 root# 權限

 

 

(2) 輸入dpkg-deb -bZ lzma ./new new.deb 按下 Enter 開始打包

( 請參考下面的補充說明 )

 

這個畫面就是正在打包中,中文的話會需要 2~3 分鐘之久,別以為是當機XD

 

(4) 等到再次出現指令輸入標頭時,就表示打包完成!( 中文真的非常久…. )

 

補充說明:

1. 請依照上述指令的英文大小寫,並注意有空格的地方

 

2.「./new」是表示當前目錄位置,且要打包的資料夾是 new

( 開啟 MobileTerminal 時預設的位置就是我們放 new 資料夾的位置 )

 

3.「new.deb」表示要輸出的檔案名稱,前面的 new 可以自訂

 

4. 這是專程使用 lzma 的壓縮方式來打包,速度最慢,但是壓縮率最高,一般的英文字體約 30~60 秒左右,中文字體因為檔案太肥大的關係,用 lzma 格式來壓縮打包時間大約 2~3 分鐘這麼久 ( iPhone 5 ),別以為螢幕當掉了XD。

 

如果設備等級越高,當然就會越快些,反之也會更慢。這樣做為了將 deb 檔案減到最小,在上傳與下載安裝時都會比較方便。

 

也可以用普通的打包指令:

dpkg-deb -b ./new new.deb

 

壓縮率較低,速度也較快 ( 放心,中文還是很久…. ),打包英文字體時可以考慮,但中文字體的話一次包下來大概會達 35~40MB,大小差很多,還是建議都用 lzma 格式打包,最節省儲存空間與網路流量,打包時要耐心等候就是了。

 

 

(5) 打開你的 iFile 去看,同樣位置已多了一個 new.deb 的安裝檔,這個檔案已經可以在 iFile 中直接點下去安裝了 ( 前提是要有安裝過 Bytafont 2 )。

 

 

 

安裝成功之後,當你打開 Cydia 會發現你的新字體已經安裝好了,接著可以再去檢查你的 Bytafont 裡面有沒有剛剛做的字體檔案,有沒有放到對的地方

 

 

七個步驟總算完成了一個適用於 Bytafont 的 iOS 字體 deb 檔案,會很難嗎?其實都仔細一步一步照著做的話並不會太難的,雖然我可能懂這方面並不多,但可以自己完成這些步驟時也是很有成就感的。然後也要感謝皮樂之前讓我一直問XD

 

其實要做佈景主題的安裝檔也是同樣的道理,因為佈景主題的主要平台 Winterboard 也有指定放 Theme 的資料夾,只要把你的主題都放在對應的資料夾,要換掉的圖片檔都放在相對應的路徑,打包方式也是一樣。( 但我是沒去包過主題的 deb,只是提一下概念是一樣的,只要路徑都有放對,檔案就會跑去你指定的地方。)

 

目前製作好的 deb 檔案,可以上傳到網路上供人下載,也可以自行測試,或是分享給朋友去安裝 ( 當然對方也要有用 Bytafont )。下一篇打算繼續寫如何建立自己的 Cydia 軟體源,就能把 deb 檔案上傳到自己的軟體源,並且可以在裡面多做一些軟體的說明,如果是提供給網友用的話,更新也比較方便。

 

寫了這麼多,希望有幫助到想要自己打包 Bytafont 字體 deb 檔的朋友。

 




 

—————— 

LuLu總裁 需要您的贊助:

( 若您想了解每一篇攻略是如何完成的,請參考:每一篇攻略的編寫過程 )

如果你覺得我的攻略寫得還不錯有幫助到您,也希望日後網站的運作能夠更好的話,希望可以得到您的贊助,有意願的話請參考下面說明,金額不論大小,我都會非常感激您的幫忙!

 

PayPal 捐款 ( 無信用卡的話請參考:合作/邀稿/捐款贊助 )

請直接點選下圖,點進去之後可以自行輸入您要捐款的金額。

注意單位是 USD,謝謝您的協助!





 

by LuLu總裁

如需轉載,請說明出處,並附上本文連結,謝謝!

 

想隨時追蹤 LuLu總裁 的文章更新進度嗎?

一起到 LuLu總裁 的 Facebook 專頁按個  吧!

9 則評論

9 則評論

  1. zhoucong

    2014/06/29 at 14:38

    最终幻想6的攻略什么时候能有更新啊?

      【引言】

  2. Hinhin

    2014/07/01 at 12:40

    我應該如何做。。什麼也裝不到。我在少女字體留言了。但沒有收到回應。。求解答。。感恩

      【引言】

  3. Sterlla

    2014/07/01 at 13:31

    請問我改完字型後,我鍵盤的顯示就沒有大小寫區分了,不管我怎麼選擇,鍵盤上都是顯示大寫,但打出來還是小寫

    可以幫我一下嗎?謝謝

      【引言】

    • LuLu總裁

      2014/07/01 at 13:47

      那應該不是我的字體問題啊,我的字體與大小寫無關的。

        【引言】

  4. HONDA

    2014/07/01 at 21:35

    不好意思,我的是iphone5 ios7.1.2 已JB
    我有套用Ubuntu font的字體
    但是英文鍵盤那邊,轉去符號鍵盤那,有兩個符號是空白的,分別是冒號以及分號,請問是bug嗎?

      【引言】

  5. HONDA

    2014/07/01 at 21:39

    不好意思,我的是iphone5 ios7.1.2 已JB
    我有套用Ubuntu font的字體
    但是英文鍵盤那邊,轉去符號鍵盤那,有兩個符號是空白的,分別是冒號以及分號,像照片那樣,請問是bug嗎?

      【引言】

    • LuLu總裁

      2014/07/01 at 21:42

      感謝回報,下一版本看能不能修正這個問題

        【引言】

  6. Pandamui

    2015/01/17 at 01:19

    可以求字體嗎?
    我想要lolita 、娃娃和熊兔字體,可是沒找到中文的全部4個字型檔,可以麻煩總裁幫忙弄一下嗎?

      【引言】

    • LuLu總裁

      2015/01/17 at 01:35

      很抱歉,目前已較無時間處理字體了喔

        【引言】

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Protected by WP Anti Spam

我以為的熱門文章

To Top