0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iOS15でexpoアプリが「アップデートの必要があります」と出て起動しない場合の対応

Last updated at Posted at 2021-09-22

expoで作成したInHouse(Enterprise)アプリで、iOS15にアップデート後に「デベロッパーによるアップデートが必要です」と出て起動しない現象が出ています。(21/9/22)

※あまり大騒ぎになっていないので、InHouseのみかと思います。

expo build:iosでビルドしなおしても、SDK42にアップデートしても同様のエラーとなります。

IMG_2735.jpg

解決方法

ビルドサーバーが対応するまでは、ローカル環境(XCode 14.5 or 15)でビルドします。

必要な物

  • turtle-cli
  • fastlane
  • XCode

手順

$ npm install -g turtle-cli
$ brew install fastlane

下記のようなMakefileを作りました

Makefile
make_ipa:	
	@echo "Building IPA"
	EXPO_IOS_DIST_P12_PASSWORD='hogehoge' \
     turtle build:ios \
		-u <expo user> -p <expo pass> \
		--team-id <teamid> \
		--dist-p12-path <.p12 path> \
		--provisioning-profile-path <.mobileprovision path> \
		--public-url https://exp.host/<hostpath> \
		-o build/my-sample.ipa

エラーなど

  • EXPO_IOS_DIST_P12_PASSWORDを指定しなかったりパスワードを間違えるとエラーになります。エラーを見ても間違いがわかりにくいので注意。
  • Provisioningなどはexpoにアップロードしてあるものをダウンロードすると間違いないです
  • public-urlはexpoのアプリパスでメタデータを引いてくるため必須です。

参考

  • eas.jsonを追加する方法では効果ありませんでした(有償プラン必須?)
  • ビルドサーバーはXCode13が正式リリースになれば対応するとの事。

背景

どうやらEnterpriseアプリケーションのコード署名方法に何らかの変更があったようです。

下記に、AppStore, Testflightの場合は配布時に置き換えるので影響しないが、直接配布するadhocは影響しmacOS10.14(Mojave)以降では新しいフォーマットで署名されますとあります。

Look in the output for a string like CodeDirectory v=20500. For any value of v less than 20400, you’ll need to re-sign your app.

コードサインの確認

$ unzip old.ipa
$ codesign -dv Payload/ExpoKitApp.app 
Executable=...
Identifier=...
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20400 size=303198 flags=0x0(none) hashes=9466+5 location=embedded

確認するとたしかにCodeDirectory v=20400で、更新の必要があるようです。

むにゃむにゃ

いつもexpoのビルドを便利に使っていたのですが、CLIからも意外に簡単にビルドする事ができました。待ち時間も無いので一度設定しておくと良いかと思います。どうして署名が古いのかは謎です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?