好久不見呀,停更了好一陣子,這幾個月主要都在開發記憶極限手遊版,歷經了好一番折騰,目前已經成功上架到 app store 啦~這篇主要分享一下上架的過程與遇到的種種困難,讓我們繼續看下去吧。
這是一款休閒的記憶配對翻牌遊戲,遊戲總共超過 1000 個關卡等你來挑戰,玩家可以選擇各種不同的主題,例如可愛的動物、繽紛的顏色、超鬧的古人、路邊的樹木與草叢,不只是挑戰你的記憶力還要多一點觀察力才能闖關成功,令我印象最深刻的主題是中文字,精心從中文字典挑選出長得非常像的字來混淆玩家,真的是既好玩又好笑,遊戲中還有加入道具與排行榜及成就系統,增加遊戲的可玩性。
現在已經在 app store 上架了,android 的玩家要再等等唷,目前還在審核中,有興趣的玩家不妨下載來玩玩看吧!
身為前端開發者想開發屬於自己 app 的我,在 Flutter 學習之路卡關後,還是選擇回到 React 的懷抱,於是就開始學習 React Native 啦,有 React 的開發基礎在學習 RN(React Native) 的過程中是很好上手的,只是要使用 RN 幫你開發好的元件,例如 View 相當於 web 的 div 容器,需要輸入框就使用 TextInput。
要開發 iOS 之前需要準備一台 Mac,因為上架到 app store 前需要使用 Xcode 來打包並堆上 app store connect。
我選擇使用 expo 來開發,因為它提供了一個方便的開發工具 expo go 能夠即時看到修改程式碼後的結果,類似前端的 hot reload,幫你省去很多環境建置的時間,它也提供了很多 SDK,例如 expo router 幫你做路由,expo audio 幫你播放音樂等等,可以到官方開發文件上尋找需要的工具。
首先安裝最新的版本:
npx create-expo-app@latest
接下來啟動開發環境:
現在只要拿起手機的相機掃描 QR Code 就能開始進行開發了,非常的便利,接著我們就可以開始開發之旅囉,本篇就不介紹遊戲的開發細節囉,直接跳到上架流程的部分。
當 app 開發完成後,最大的目標就是要上架到商店給玩家們下載了,首先我們需要到 app store connect 註冊開發者帳號,費用採年繳制一年 $99 美金,購買完成後等官方寄信後就可以開始使用了。
接著我們開啟專案的 app.json。
bundleIdentifier 為 App ID 識別碼,需與開發者帳戶中的 App ID 一樣,自己取的名字規則大致是這樣 xxx.yyy.zzz
buildNumber 為 iOS版本號碼
要先到這個頁面新增你的 App ID
https://developer.apple.com/account/resources/identifiers/bundleId/add/bundle
npx expo prebuild
使用 prebuild 來建置,expo 會幫你產生兩個資料夾分別為 ios、android,如下圖:
接下來利用 Xcode 開啟 iOS 模擬器並運行:
npx expo run:ios
測試一下專案在模擬器上面有無正常運作,如果在 expo go app 上面開發的話有時候會遇到一些 expo go 沒有支援的錯誤,例如要使用 google admob 廣告套件就必須在原生的 iOS 環境運行,才能正確顯示廣告內容,或是有其他解法大家可以再去查看看。
cd ios
npx pod-install
接著到 cd 到 ios 資料夾下安裝 iOS 的套件,接著我們開啟 Xcode 載入 app.xcworkspace 專案,我們就可以看到基本資訊。
這邊記得選取你的開發者帳號
這邊可以看到你的 app 資訊,其中 Bundle display name 是玩家安裝後會顯示在手機畫面的app 名稱。
這個檔案是 react native 與 iOS 互相溝通的檔案,包含打包後的圖檔與 js 檔,使用以下指令來產生:
npx react-native bundle
--dev false // 正式環境
--entry-file app.js // 主程式入口
--bundle-output ./ios/main.jsbundle //檔名
--assets-dest ./ios //字型圖檔等等資源
接著把它匯入到 Copy Bundle Rescrouces,就可以開始建置囉。
按下 Archive 後他會開始 build 完成後會跳出視窗並選擇 app store connect 並 Distribute App 就可以一路下一步到 Upload 囉。
我們就可以到 app store connect 看到剛剛推上來的 app 了。
接下來就要開始填寫商店資訊了,記得隨時按儲存,以免沒有存到資料,需要注意的是隱私權政策要怎麼產生,可以使用 https://www.privacypolicies.com/ 這個網站來產生隱私權是免費的,所有資訊都填完後就可以送審囉。
關於預覽圖的部分,因為我只有設定 iPhone 才可以下載所以沒有要求上傳 iPad 的圖片,6.9 吋與 6.5 吋上傳一種尺寸即可。
耶~我的遊戲終於成功上架了,花費了大概四個月的時間從零到有的做出來,藉由這篇文章來業配我的遊戲XD,從一開始的 wireframe 設計到程式開發,以及不斷地測試修改到上架,讓我學到了很多,遊戲中的圖片、音樂及音效都是免版權的,推薦 https://soundeffect-lab.info/,https://pixabay.com/ 及 https://www.freepik.com/ 去尋找素材,之後 Android 的上架流程也會再寫一篇文章來介紹。
謝謝你看到最後,可以去下載來玩玩唷,挑戰你記憶力與觀察力的極限 ^^