2015-09-17 5 views
42

Wie können Sie den Bitcode für Ihre Projekt- und Cocoapod-Abhängigkeiten deaktivieren? Hier ist der Fehler, den ich bekomme, wenn ich versuche, mein Projekt mit Xcode 7 auszuführen.Bitcode für Projekt- und Cocoapod-Abhängigkeiten mit Xcode7 deaktivieren?

enthält keinen Bitcode. Sie müssen es mit aktiviertem Bitcode (Xcode-Einstellung ENABLE_BITCODE) neu erstellen, eine aktualisierte Bibliothek vom Hersteller beziehen oder den Bitcode für dieses Ziel deaktivieren. für die Architektur arm64

Bearbeiten: Ursprünglich deaktiviert es nur für eines der Ziele. Einmal habe ich alle deaktiviert und ich konnte erfolgreich bauen.

+0

möglich Duplikat [Neue Warnungen in iOS9] (http://stackoverflow.com/a/30856364/3242031) –

Antwort

123

Um diese Einstellung in einer Weise festgelegt, die nicht jedes Mal, wenn Sie außer Kraft gesetzt hat zu tun bekommen eine pod install Sie diese hinzufügen können, um Ihre 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

Arbeiten perfekt – ravinder521986

+0

Ich tat dies, aber musste auch Bitcode in meinem Projekt Build-Einstellungen deaktivieren. Weder alleine noch für mich. –

2

Wechseln Sie zu den Erstellungseinstellungen für das Ziel, für das Sie es deaktivieren möchten. Suchen Sie nach etwas, das „Enable Bitcode“ sagt, setzen Sie ihn auf No.

+0

Dank! Ursprünglich deaktiviert es nur für eines der Ziele. Einmal habe ich alle deaktiviert und ich konnte bauen. – jherg

+0

Ein Problem mit dieser Antwort ist, dass Sie die Einstellung verlieren, wenn Sie die Pod-Installation erneut ausführen. Es ist keine gute langfristige Lösung. –

+0

danke, es funktioniert .... –

6

Es gibt eine Möglichkeit, CocoaPods-Ziele mit vollem Bitcode zu erstellen. Fügen Sie einfach -fembed-bitcode Option OTHER_CFLAGS der einzelnen:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     cflags = config.build_settings['OTHER_CFLAGS'] || ['$(inherited)'] 
     cflags << '-fembed-bitcode' 
     config.build_settings['OTHER_CFLAGS'] = cflags 
    end 
    end 
end 

Ich denke, das ist viel besser als Bitcode zu deaktivieren.

+0

Warum ist das besser? – cberkay

+1

@cberkay Da Bitcode von Apple absichtlich eingeführt wurde und eine bessere Benutzererfahrung bietet, werden Installationszeit und -größe reduziert. – werediver

1

Basierend auf dieser Seite (https://medium.com/@heitorburger/static-libraries-frameworks-and-bitcode-6d8f784478a9) für Rahmen, den ich tat:

#bitcode enable 
post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     config.build_settings['ENABLE_BITCODE'] = 'YES' 

     if config.name == 'Release' 
      config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode' 
     else 
      config.build_settings['BITCODE_GENERATION_MODE'] = 'marker' 
     end 

     cflags = config.build_settings['OTHER_CFLAGS'] || ['$(inherited)'] 

     if config.name == 'Release' 
      cflags << '-fembed-bitcode' 
     else 
      cflags << '-fembed-bitcode-marker' 
     end  

     config.build_settings['OTHER_CFLAGS'] = cflags 
    end 
    end 
end 
Verwandte Themen