New warnings in iOS 9: “all bitcode will be dropped”

前端 未结 8 2196
执笔经年
执笔经年 2020-11-22 16:49

I have this new warning about the Google Framework in my app:

(null): URGENT: all bitcode will be dropped because \'/Users/myname/Library/Mobile D

相关标签:
8条回答
  • 2020-11-22 17:21

    Method canOpenUrl is in iOS 9 (due to privacy) changed and is not free to use any more. Your banner provider checks for installed apps so that they do not show banners for an app that is already installed.

    That gives all the log statements like

    -canOpenURL: failed for URL: "kindle://home" - error: "This app is not allowed to query for scheme kindle"

    The providers should update their logic for this.

    If you need to query for installed apps/available schemes you need to add them to your info.plist file.

    Add the key 'LSApplicationQueriesSchemes' to your plist as an array. Then add strings in that array like 'kindle'.

    Of course this is not really an option for the banner ads (since those are dynamic), but you can still query that way for your own apps or specific other apps like Twitter and Facebook.

    Documentation of the canOpenUrl: method canOpenUrl:

    Documentation about the LSApplicationQueriesSchemes key

    0 讨论(0)
  • 2020-11-22 17:23

    Your library was compiled without bitcode, but the bitcode option is enabled in your project settings. Say NO to Enable Bitcode in your target Build Settings and the Library Build Settings to remove the warnings.

    For those wondering if enabling bitcode is required:

    For iOS apps, bitcode is the default, but optional. For watchOS and tvOS apps, bitcode is required. If you provide bitcode, all apps and frameworks in the app bundle (all targets in the project) need to include bitcode.

    https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f

    0 讨论(0)
  • 2020-11-22 17:28

    If you are using CocoaPods and you want to disable Bitcode for all libraries, use the following command in the Podfile

    post_install do |installer|
        installer.pods_project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['ENABLE_BITCODE'] = 'NO'
            end
        end
    end
    
    0 讨论(0)
  • 2020-11-22 17:29

    Disclaimer: This is intended for those supporting a continuous integration workflow that require an automated process. If you don't, please use Xcode as described in Javier's answer.

    This worked for me to set ENABLE_BITCODE = NO via the command line:

    find . -name *project.pbxproj | xargs sed -i -e 's/\(GCC_VERSION = "";\)/\1\ ENABLE_BITCODE = NO;/g'
    

    Note that this is likely to be unstable across Xcode versions. It was tested with Xcode 7.0.1 and as part of a Cordova 4.0 project.

    0 讨论(0)
  • 2020-11-22 17:29

    To fix the issues with the canOpenURL failing. This is because of the new App Transport Security feature in iOS9

    Read this post to fix that issue http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/

    0 讨论(0)
  • 2020-11-22 17:37

    This issue has been recently fixed (Nov 2010) by Google, see https://code.google.com/p/analytics-issues/issues/detail?id=671. But be aware that as a good fix it brings more bugs :)

    You will also have to follow the initialisation method listed here: https://developers.google.com/analytics/devguides/collection/ios/v2.

    The latest instructions are going to give you a headache because it references utilities not included in the pod. Below will fail with the cocoapod

    // Configure tracker from GoogleService-Info.plist.
    NSError *configureError;
    [[GGLContext sharedInstance] configureWithError:&configureError];
    NSAssert(!configureError, @"Error configuring Google services: %@", configureError);
    
    0 讨论(0)
提交回复
热议问题