8
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?

`Constants.nativeAppVersion` の結果が undefined になってしまう場合の対処法

Last updated at Posted at 2025-07-14

事象

アプリのバージョンを Constants.nativeAppVersion で取得したいのですが、expo-constants パッケージを更新したタイミングで undefined と返ってくるようになってしまいました。

import Constants from "expo-constants";

const AppVersion = {
  getVersion() {
    return Constants.nativeAppVersion;
  },
} as const;

原因

今回 v15.4.6 から v17.0.8 にアップデートしたのですが、v16.0.0 で変更があったようです。

Remove deprecated installationId, isDevice, nativeAppVersion, nativeBuildVersion, platform.platform, platform.systemVersion, platform.userInterfaceIdiom properties. (#26329 by @aleqsio)

対処法

expo-constants パッケージではなく expo-application を使いました。
コードを以下のように書き換えたところ、今まで通りアプリのバージョンを取得できるようになりました🚀

import * as Application from "expo-application";  // 変更

const AppVersion = {
  getVersion() {
    return Application.nativeApplicationVersion;  // 変更
  },
} as const;

最後に

AIのプロンプトを設定しておくと、パッケージ更新のタイミングで CHANGELOG.md を見に行ってもらえるので便利です👍️
例えばCursorの場合はこんな感じに書きます ↓

.cursor/rules/package_update.mdc
---
globs: "**/{package.json,yarn.lock}"
alwaysApply: true
---

# パッケージを更新する場合にすること

- 更新しようとしているパッケージのリポジトリにある `CHANGELOG.md` を確認し、より新しいバージョンで致命的なバグが修正されていないかどうか確認してください
- もし致命的なバグがより新しいバージョンで修正されている場合は、そのバージョンを使用してください

実際にパッケージ更新を依頼してみたところ、CHANGELOG.md を自動で探しに行っているようでした🙌

image

8
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
8
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?