カテゴリー: iOS

【Swift】ITMS-90726で警告された際の対応

はじめに

こんにちはsuzukiです。最近アプリを審査に提出したところ警告が出たのでそちらの対応についてまとめていこうと思います。

警告について

先日ストアに申請を行った際に下記のような警告メールが届きました。

Dear Developer, We identified one or more issues with a recent delivery for your app, “XXXXXXX” 1.0.0 (1). Your delivery was successful, but you may wish to correct the following issues in your next delivery: ITMS-90726: Disallowed frameworks – Your app submission contains usages of the restricted framework libswiftXCTest.dylib. Remove these, rebuild and resubmit. After you’ve corrected the issues, you can upload a new binary to App Store Connect. Best regards, The App Store Team

libswiftXCTest.dylibというライブラリが不許可だから次の提出から削除してくれという内容です。
今まで指摘されていなかった内容なので、ITMSの基準が増えたのかもしれません。
libswiftXCTest.dylibは特に意識をしていなかったのですが、RXTestというライブラリで使っており、Carthageで追加しておりました。

RXTestについて

RXTestはテスト用のライブラリのためそもそもリリースビルドには不要です。どこかの設定が間違っていることが考えられるため。Carthageの設定まわりを見直します。

Carthageの設定の確認

①TargetのGeneralタブのCarthage/BuildフォルダにあるframeworkをタブのLinked Frameworks and Librariesの内容を確認。

②Build PhaseタブのRun Scriptの「/usr/local/bin/carthage copy-frameworks」に記述した
frameworkへのパスを確認

私の場合、②の箇所にRxTestの設定がなぜか記述してありました。そちらの内容を修正して、審査に提出したところ、指摘がなくなりました。

おまけ

上記で色々対応したのですが、別の問題があり、CarthageからCocoaPodsにライブラリの管理を移行しました。
Xcode12.2でビルドを行おうとしたところ、ビルドに失敗し、事象としてはリンクと同じような内容で、半日ほど対応を行っていたのですが、解決できませんでした。

現在Carthageの恩恵をあまり感じていなくFirebaseのアップデートと他のプロジェクトもCocoaPodsで管理していたので移行しました。
Carthage関連のゴミが色々な場所に残っていたので下記をまとめました。

Carthage削除

まず下記のファイルを削除しました。Firebase関連も併せて削除しております。
・Cartfile
・Cartfile.resolved
・Carthage/*
・Firebase/*

次にXcodeを開いて下記をグループごと削除しました。
・Frameworks/*
・Firebase/*

上記の他に設定の項目にいくつかゴミが残ります。ターゲットごとに異なるのできちんと削除しましょう。
・GeneralタブのCarthage/BuildフォルダにあるframeworkをタブのLinked Frameworks and Libraries
・Build PhaseタブのRun Script
・Build SettingsタブのFrameWork Search Paths
FRAMEWORK_SEARCH_PATHS =
$(PROJECT_DIR)/Carthage/Build/iOS
$(PROJECT_DIR)/Firebase/Analytics
・Build SettingsタブのUser Header Search Paths
USER_HEADER_SEARCH_PATHS =
$(SRCROOT)/Firebase

さいごに

ITMSの対応がやっと終わったところでXcode12対応を行い、遠回りした気がします。ライブラリの管理は問題なくアップデートできればなんでもいいのですが、それぞれで問題が起きて苦労してます。プロジェクト毎の違いはなるべく無くして簡単に管理できるようにして行きたいです。

おすすめ書籍

suzuki

シェア
執筆者:
suzuki
タグ: Swift

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

2週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

4週間 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前