Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to silence Xcode 11.4 warnings about MobileCoreServices and AssetsLibrary?

After upgrading to Xcode 11.4 beta I've got those warnings from Pods subproject (specifically, from YYImage and Branch targets):

Target Integrity: MobileCoreServices has been renamed. Use CoreServices instead.

Target Integrity: AssetsLibrary is deprecated. Consider migrating to Photos instead.

I have inhibit_all_warnings! in my Podfile, but it has no effect on those.

Is there a way to silence those warnings until the creators of those pods will fix them?

like image 826
Alexander Vasenin Avatar asked Feb 11 '20 05:02

Alexander Vasenin


2 Answers

I noticed that manually removing those two frameworks from Pods/Frameworks/iOS project navigator group resolves those warnings. Since both frameworks embedded into iOS itself (not app bundle) removing them doesn't have any effect at runtime. Here is how to do it automatically in Podfile post-install hook:

post_install do |installer|
    installer.pods_project.frameworks_group["iOS"]["MobileCoreServices.framework"].remove_from_project
    installer.pods_project.frameworks_group["iOS"]["AssetsLibrary.framework"].remove_from_project
end

If this leaves a hanging (null) reference, you can do something like:

post_install do |installer|
    framework = installer.pods_project.frameworks_group["iOS"]["MobileCoreServices.framework"]
    framework.referrers.each do |ref|
        if ref.isa == "PBXBuildFile"
            ref.remove_from_project
        end
    end
    framework.remove_from_project
end
like image 63
Alexander Vasenin Avatar answered Nov 03 '22 10:11

Alexander Vasenin


For mute this warning:

  1. Open Pod target's Build Settings
  2. Select Build Options
  3. Add framework (e.g. AssetsLibrary) to Validate Workspace - Ignored Frameworks

enter image description here

like image 30
Igor Avatar answered Nov 03 '22 10:11

Igor