xcodecocoapodsxcode11.4

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?


Solution

  • 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