読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Apple Watch,watchOSプログラミング入門 #008】Apple Watchアプリで最大容量50MBを超えてしまった場合の対応方法(ITMS-90389 Size Limit 50 MB Exceeded)

この記事を読んでわかること

  • Apple Watchアプリのサイズが50MBを超えてしまったときの対応方法



Apple Watchアプリの容量は50MBまで

AppStoreにアップできるApple Watchアプリの容量は50MB以内でなければなりません。
開発中に50MBを超えても、Xcodeでエラーや警告など出ないので、
AppStoreにアップしようとしたときにエラーが出て気づくことが多いです。

50MBを超えたアプリをアップロードすると

ITMS-90389 Size Limit 50 MB Exceeded

とエラーになります。

では、いざ、50MBを超えてしまったときにどうすればよいか?



Apple Watchアプリの容量を削るには

経験上、50MBを超えてしまう最大の理由は外部Frameworkと思います。

下記の方法で容量を削減できないか、検討するのがよいです。

  • CocoaPodsで追加している外部ライブラリを「use_frameworks!」を使って追加するのをやめる
  • 機能に影響ない外部ライブラリを削除する
  • 外部ライブラリを使わずに実装する



1. CocoaPodsで追加している外部ライブラリを「use_frameworks!」を使って追加するのをやめる

「use_frameworks!」を使うとCocoaPodsが
Pods_XXXXX.framework」というファイルが作成されます。
この「Pods_XXXXX.framework」が10数MBもあるのです。

この容量に加えて、実際にCocoaPodsで
追加する外部ライブラリの容量が追加されるのです。
なので、「use_frameworks!」を使わないようにするだけで、
機能を削らずに、10数MBを削減できるようになります。

ただ、iOSアプリでもCocoaPodsで追加した外部ライブラリを使っていて、
「use_frameworks!」を使わないようにすると、
iOSアプリも修正しないといけないので、面倒なことがあります。

そんなときは、例えば、↓などの方法を検討する。

  • Carthageを使う swift.swift-studying.com

  • 外部ライブラリのFrameworkをプロジェクトに直接追加する



2. 機能に影響ない外部ライブラリを削除する

ログ出力や分析ツールなどの外部ライブラリを削除する



3. 外部ライブラリを使わずに実装する

外部ライブラリがいろんな機能を持ち、容量が大きい場合があります。
外部ライブラリの一部の機能しか使っていなくても、
その容量がアプリに追加されます。

一部しか使っていないのに、追加している外部ライブラリがあれば、
外部ライブラリを使わずに実装できないかを検討しましょう。



参考情報

サイト

swift-studying.com

swift-studying.com

swift-studying.com

swift.swift-studying.com

Swift

iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍

Swiftではじめる iPhoneアプリ開発の教科書 【Swift 2&Xcode 7対応】【特典PDF付き】 (教科書シリーズ)


②中級の日本語書籍はない。英語だけど読むとかなりのレベルアップが期待できます

iOS 8 Swift Programming Cookbook: Solutions & Examples for iOS Apps


③機能を作るだけじゃない。質のいいものを作りたい人は読まないといけない。

詳解 Swift