Programming

iOS 9의 새로운 경고 :“모든 비트 코드가 삭제됩니다”

procodes 2020. 2. 23. 12:04
반응형

iOS 9의 새로운 경고 :“모든 비트 코드가 삭제됩니다”


내 앱의 Google 프레임 워크에 대한이 새로운 경고가 있습니다.

(null) : 긴급 : '/ Users / myname / Library / Mobile Documents / com ~ apple ~ CloudDocs / foldername / appname / GoogleMobileAds.framework / GoogleMobileAds (GADSlot + AdEvents.o)'가 비트 코드없이 빌드되었으므로 모든 비트 코드가 삭제됩니다. . 비트 코드 활성화 (Xcode 설정 ENABLE_BITCODE)로 다시 빌드하거나 공급 업체로부터 업데이트 된 라이브러리를 얻거나이 대상에 대한 비트 코드를 비활성화해야합니다. 참고 : 이것은 나중에 오류가 될 것입니다.

Xcode 7 은이 같은 개념에 대해 약 204 개의 경고를 표시 하며이 문제를 해결할 수 없습니다. 또한 내 앱에서 네트워크에 액세스하는 데 문제가 있습니다. 이것은 디버깅 영역의 오류입니다.

-canOpenURL : URL에 대해 실패 : "kindle : // home"-오류 : "이 응용 프로그램은 체계 종류를 쿼리 할 수 ​​없습니다"

이 모든 문제는 iOS 8에 없었습니다.


라이브러리가 비트 코드없이 컴파일되었지만 비트 코드 옵션이 프로젝트 설정에서 활성화되어 있습니다. NOEnable Bitcode경고를 제거 할 대상 빌드 설정 및 라이브러리 빌드 설정한다.

비트 코드 활성화가 필요한지 궁금한 경우 :

iOS 앱의 경우 비트 코드가 기본값이지만 선택 사항입니다. watchOS 및 tvOS 앱의 경우 비트 코드가 필요합니다. 비트 코드를 제공하는 경우 앱 번들의 모든 앱 및 프레임 워크 (프로젝트의 모든 대상)에 비트 코드가 포함되어야합니다.

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


Xcode 7 이후에는 비트 코드 옵션이 기본적으로 활성화됩니다. 라이브러리가 비트 코드없이 컴파일되었지만 비트 코드 옵션이 프로젝트 설정에서 활성화 된 경우 다음을 수행 할 수 있습니다.

  1. 비트 코드로 라이브러리를 업데이트하십시오.
  2. 대상 빌드 설정 에서 비트 코드활성화하려면 NO라고 말 하십시오.

여기에 이미지 설명을 입력하십시오

그리고 라이브러리 빌드 설정은 경고를 제거합니다.

자세한 내용 은 개발자 라이브러리의 비트 코드 설명서 를 참조하십시오 .

그리고 WWDC 2015 세션 102 : "플랫폼 상태"

여기에 이미지 설명을 입력하십시오


그 문제를 피하기위한 나의 경우 :

  1. 더 낮은 버전이 아닌 Xcode 7을 다루고 있는지 확인하십시오 . 하위 버전에서는이 플래그가 없습니다.

  2. 설정 : 프로젝트> 빌드 설정> 모두> 빌드 옵션> 비트 코드 사용 = 아니오

여기에 이미지 설명을 입력하십시오


방법 canOpenUrl이 iOS 9 (개인 정보 보호로 인해)에서 변경되었으며 더 이상 사용할 수 없습니다. 배너 공급자는 설치된 앱을 확인하여 이미 설치된 앱의 배너가 표시되지 않도록합니다.

그것은 모든 로그 문장을 제공합니다

-canOpenURL : URL에 대해 실패 : "kindle : // home"-오류 : "이 응용 프로그램은 체계 종류를 쿼리 할 수 ​​없습니다"

공급자는이를 위해 논리를 업데이트해야합니다.

설치된 앱 / 사용 가능한 구성표를 쿼리해야하는 경우 info.plist파일 에 추가해야 합니다.

'LSApplicationQueriesSchemes'키를 plist에 배열로 추가하십시오. 그런 다음 'kindle'과 같은 배열에 문자열을 추가하십시오.

물론 이것은 실제로 배너 광고에 대한 옵션은 아니지만 (동적이므로) 자신의 앱이나 Twitter 및 Facebook과 같은 특정 다른 앱에 대해서는 여전히 그런 식으로 쿼리 할 수 ​​있습니다.

canOpenUrl : 메소드의 문서 canOpenUrl :

LSApplicationQueriesSchemes 키에 대한 설명서


당신이 사용하는 경우 CocoaPods을 하고 모든 라이브러리를 사용하지 않도록 비트 코드 싶지는 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

고지 사항 : 자동화 된 프로세스가 필요한 지속적인 통합 워크 플로를 지원하는 사용자를위한 것입니다 . 그렇지 않은 경우 Javier의 답변에 설명 된대로 Xcode를 사용하십시오 .

이것은 ENABLE_BITCODE = NO명령 줄을 통해 설정하는 데 도움이되었습니다 .

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

이것은 Xcode 버전에서 불안정 할 수 있습니다. Xcode 7.0.1 및 Cordova 4.0 프로젝트의 일부로 테스트되었습니다.


canOpenURL 실패와 관련된 문제를 해결합니다. 이것은 iOS9의 새로운 App Transport Security 기능 때문입니다

이 문제를 해결하려면이 게시물을 읽으십시오 http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/


이 문제는 최근 Google에서 수정했습니다 (2010 년 11 월) . https://code.google.com/p/analytics-issues/issues/detail?id=671를 참조 하십시오 . 그러나 좋은 수정으로 더 많은 버그가 발생합니다. :)

https://developers.google.com/analytics/devguides/collection/ios/v2에 나열된 초기화 방법을 따라야합니다 .

최신 지침은 포드에 포함되지 않은 유틸리티를 참조하므로 두통을 줄 것입니다. 아래는 cocoapod와 함께 실패합니다.

// Configure tracker from GoogleService-Info.plist.
NSError *configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", configureError);

참고 URL : https://stackoverflow.com/questions/30848208/new-warnings-in-ios-9-all-bitcode-will-be-dropped



반응형