2024年3月31日日曜日

iOS アプリを久しぶりにビルドしたときのメモ

iOS アプリを久しぶりにビルドしたときのメモ

概要

最終ビルドは 2021/7 頃のアプリになります
もともと Swift5 化はしていたプロジェクトになります

環境

  • Xcode 15.3
  • macOS 14.4.1

libarclite 対応

エラー

SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target

対処方法

cocoapods などでインストールしたライブラリに対して行います
iOS Deployment Target を 12 以上にします
あまりメンテナンスされていないライブラリや古いライブラリの場合に発生します

  • Pods -> Project-> Build Settings -> iOS Deployment Target -> 12.0

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES を inherited にする

エラー

cocoapods で表示される警告になります

[!] The `projectUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-project-projectUITests/Pods-project-projectUITests.debug.xcconfig'. This can lead to problems with the CocoaPods installation

対処方法

ビルド設定で ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES を $(inherited) を設定します

  • Target -> projectTests -> Build Settings -> Always Embed Swift Starndard Libraries -> $(inherited)

Sandbox オプションの無効化

エラー

データ保存系のライブラリで発生している気がします

Sandbox: rsync.samba(19313) deny(1) file-read-data /Users/user/Library/Developer/Xcode/DerivedData/project-bpovlgogrctpyxcxspcdgxydcxon/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/Realm/Headers

対処方法

  • Project-> Build Settings -> User Script Sandboxing -> No

各種非推奨のコードなどの変更

Xcode が指摘してくれるおすすめ設定やコードリファクタを行いましょう

古いライブラリや存在していないライブラリの削除

例えば Firebase/AdMob はすでに存在していません
存在していないのですがなぜか使えて使っている場合は古い Firebase/Core が使われてしまうので危険です
ちゃんと代替の Google-Mobile-Ads-SDK を使う必要があります

+  pod 'Google-Mobile-Ads-SDK'
-  pod 'Firebase/AdMob'

最後に

定期的にビルドするのが大事です

0 件のコメント:

コメントを投稿