📱
React Native (expo)でAppleのDeveloperに課金しないでiOSのアプリを実機にインストールする
備忘録的なやつ
やりたいこと
イベントで使う目的で、expoでiOSアプリを開発していた
1台にインストールして使うだけだから、アプリストアに公開するつもりもないし、Developer Programに課金する必要もない
が、それをexpoでやろうとしたときに若干詰まったので残しておく
試したこと
eas-cli
expoではEASというクラウドでアプリをビルドする仕組みが用意されている
eas build -p ios
それのcliを使ってビルドしようとしたが、Apple IDでのログインを求められてログインすると
Authentication with Apple Developer Portal failed!
You have no team associated with your Apple account, cannot proceed.
(Do you have a paid Apple Developer account?)
Error: build command failed.
というエラーが出て、ビルドさせてくれなかった
EASでは開発用の署名だと有効期限が7日しかないのでサポートしない方針らしい
XCodeでビルド
expoはexpo prebuild
コマンドでネイティブのコードを吐き出してくれるらしい
これを実行して、./ios
ディレクトリをXCodeで開けば、XCode上でビルドできると思った
まず、使用する端末でデベロッパモードを有効化する必要がある
iOS17では、設定->プライバシーとセキュリティ->デベロッパモードから有効化できた
再起動されたら、Macに繋いで、Xcodeの上のメニューからWindow->Devices and Simulatorsを開いて、ペアリングする
あとはプロジェクトに戻って、繋いだデバイスを選んでビルドすれば、インストールはできる
署名がアレなので、インストールしたデバイスで設定->一般->VPNとデバイス管理からインストールしたアプリを信頼する的なやつをやらないといけない
そこまでやると起動はできた
が、No bundle URL present
というエラーが出て動いてくれなかった
解決した方法
これを見つけた
これの通り、
npx expo export:embed --entry-file='node_modules/expo/AppEntry.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'
を実行してからXCodeでインストールするといけた
Discussion