[Cordova] 將 app 安裝到 iPhone 上執行測試
之前已經可以在 iOS 模擬器上執行 Cordova app,
今天想要把 app 裝到自己的 iPhone 上看看效果~
首先將 iPhone 用 Lightning 線連接到 Mac 上,
再執行 cordova run 指令:
cordova run ios --device
在 cordova run 不加 –device 參數時,預設是跑在 iOS 模擬器上面,
加了 –device 參數,就會將 app 裝到實體手機上。
不過此時出現了錯誤訊息,說簽章需要一個 development team:
=== BUILD TARGET Library Multi-Login OF PROJECT Library Multi-Login WITH CONFIGURATION Debug === Check dependencies Code Signing Error: Signing for "Library Multi-Login" requires a development team. Select a development team in the project editor. Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.3' ** ARCHIVE FAILED **
老實說對 iOS 的開發很不熟,只知道要在 App Store 上架的話,
需要每年花約 100 美金加入 Apple Developer,
這樣你的 Apple ID 才會有可以幫 app 簽章的權限。
但我想在真正上架之前,先在自己手機確定 app 跑起來沒問題,
不然如果花錢註冊後,還要耗費時間修改 app,實在太浪費錢了~
查了一下,原來還是有辦法不花錢,把 app 裝在自己手機上測試的~
來記錄一下步驟吧~
1. 將 Apple ID 加入 Xcode 設定中
打開 Xcode,到 Preferences > Accounts,
按下 + 鈕來加入帳號:
我要加入一個 Apple ID 帳號:
這個 Apple ID 帳號就是平常我用來登入 App Store 用的 Apple ID,
還沒有付費加入 Apple Development Program:
加好之後的樣子:
2. 修改 Xcode 專案設定
Cordova 會幫我們做出一個 Xcode 的專案檔,
通常是在 platforms/ios/<專案名稱>.xcodeproj,
像我的是 platforms/ios/Library Multi-Login.xcodeproj~
把它點兩下,用 Xcode 打開後,
我在上面的工具列,選擇要安裝到我的手機 (EPH’s iPhone),
再按執行鈕,還是出現和 Cordova 一樣的 Code signing error:
這是因為我們還沒有設定好 Development Team~
在左邊先點下專案名稱,右邊到 General 設定區,
在 Signing 這邊可以看到目前的 Team 是 None:
點下 None,可以下拉選擇 Personal Team。
選擇好之後,按 Try again 鈕,
但出現了另一個錯誤訊息,
說 Failed to create provisioning profile:
這點很奇怪…
上網找了半天,找到一個更奇怪的解法,就是修改 Bundle identifier…
許多人說,只要在 Bundle identifier 後面加個亂數數字,就沒問題了。
像我原本的 Bundle identifier 是 idv.ephrain.multilibrarylogin,
我在後面加個 2 變成 idv.ephrain.multilibrarylogin2,
結果還真的就成功了!!
有人說可能是因為 Bundle identifier 和其他人衝突的關係,
加個數字可能就避開了衝突,
但我的這個識別字應該不太可能和別人衝到,不太能理解…
點下 Xcode Managed Profile 旁的 (i) 圖示,
可以看到這個 profile 的相關資訊,注意它的期限很短只有六天:
3. 允許 iPhone 執行 app
這樣設定好之後,再次按下 Xcode 中的執行鈕,
這次就可以看到 Xcode 有寫出 Deploying to iPhone 之類的訊息,
但 iPhone 上出現了 Untrusted Developer 的訊息後,就失敗了:
解決方法很簡單,
在 iPhone 上到 Settings > General > Device Management,
這邊可以看到開發者的帳號,點下去:
可以看到下面列出了這個開發者 (也就是我) 的 app,
說明上寫著除非信任這個開發者,否則所有的 app 都不能執行。
按下 Trust 鈕繼續吧:
這邊再次警告只要信任了這個開發者,
這個開發者寫的所有 app 都可以被執行。
按下 Trust 繼續:
現在在 iPhone 上執行剛裝好的 app,就沒有問題囉:
總算可以將 app 安裝到 iPhone 上測試了,
離 app 上架到 Apple Store 又近一步囉~^^/
參考資料:
How to install cordova(phonegap) ios app to device via cli and not via xcode
Deploying to a Device without an Apple Developer Account
Failed to create provisioning profile