Xcode 7およびENABLE_BITCODE = YES設定が機能しない


96

Xcodeの新しいENABLE_BITCODE設定の周りのいくつかのスレッドをたどりましたが、できる限り試してみましたが(xcodeプロではないことを認めています)、テスト用電話で使用するためにプロジェクトをコンパイルできませんか?

私のアプリはシミュレータで問題なく動作しますが、テストのためにiPhoneにデプロイできません。後者ではiOS 9ベータ版をインストールしました。

さて、ここに私が受け取るエラーメッセージがあります。設定は私のプロジェクトの一部であるPARSE.com libに影響を与えないようです?プロジェクトを電話にデプロイするにはどうすればよいですか?アドバイスありがとうございます。

    Ld /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-  bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse normal armv7
cd /Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -L/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse -F/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -filelist /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse.LinkFileList -install_name @rpath/Parse.framework/Parse -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=8.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseLib -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -ObjC -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse_dependency_info.dat -o /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse

---
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: '/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse/libParseLib.a(PFSQLiteDatabase.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1
使用しているビルド構成(例:)に対して選択Enable Bitcodeしましたか?プロジェクト-> ターゲット- >ビルド設定- >検索-> デバッグで設定で確認できます(テストリリースの前にlibsを更新することを忘れないでください。ビットコードがすでに含まれている可能性があります)。次に-> -> config atm があるかどうかを確認します。NODEBUGenable bitcodeNOEdit SchemeRunDEBUG
2015

1
上手!はいといいえ。私はそれをPODターゲットに設定しませんでした、それは私の見落としでした。あなたのヒントが私をそこに導きました。ありがとう
DirkLX 2015

それを聞くのは素晴らしい:)それは他の人にとって役立つかもしれないので、それを答えとして投稿します。
2015

なぜビットコードを変更する必要があるのですか?以前は、その値を更新する必要はありませんでした。論理的な理由はありますか?ありがとう
msmq

すべてをやりましたが、それでも同じエラーでデバイス上でアプリがクラッシュします。iOS 9.1を使用しています。助けてください!
Md Rais

回答:


133

使用しているビルド構成(例:)に対して選択Enable Bitcodeしましたか?あなたはプロジェクト-> ターゲット- >ビルド設定- >検索->設定でそれをチェックアウトできます(テストリリースの前にlibsを更新することを忘れないでください、おそらくそれはすでにビットコードを含んでいるでしょう)。次に、スキームの編集->実行-> config atm があるかどうかを確認します。NODEBUGenable bitcodeNODEBUGDEBUG

ここに画像の説明を入力してください


1
@Zorayr投稿に画像を追加したら、まずアプリのビルド設定を確認し、アプリのビルド設定でこのフラグを変更する必要があります。それが役に立たない場合にのみ、ポッドで同じことを行います。
2015

3
Enable Bitcode設定されている場合、アプリケーションはApp Storeで受け入れられNOますか?
Ne AS

@NeASはい。現在、ビットコードを有効にする必要はありません。
Vive

すべてのポッドのビットコードを無効にする必要があります
Vadim Kurochkin

53

CocoaPodsを使用するプロジェクトの場合はENABLE_BITCODE = NO、プロジェクトとポッドコンテナープロジェクトターゲットの両方に設定する必要があります。

このエラー

Ld /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils normal arm64
    cd /Users/maximveksler/Developer/ParseUI-iOS/Pods
    export IPHONEOS_DEPLOYMENT_TARGET=9.0
    export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -L/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils -F/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -filelist /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils.LinkFileList -install_name @rpath/ParseTwitterUtils.framework/ParseTwitterUtils -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=9.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseTwitterUtilsLib -lsqlite3 -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework Parse -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1.8.1 -Xlinker -dependency_info -Xlinker /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils_dependency_info.dat -o /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils

ld: '/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils/libParseTwitterUtilsLib.a(PFTwitterAuthenticationProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

によって解決されました:

ここに画像の説明を入力してください

ここに画像の説明を入力してください


オプションビットコードを有効にする= NOで提出した場合、Appleはアプリを拒否しますか?
Ganesh Guturi、2015年

@ G.Ganeshは別の質問として投稿してください。ポリシーは、答えがYESであるtvOSとwatchOSの間で異なります。iOSの答えは現在いいえ、将来はいです。
Maxim Veksler、2015年

@GaneshGuturi現在はそうですが、おそらくAppleは将来的にそれを削減するでしょう。詳細な説明はここにあります:stackoverflow.com/a/31207170/849616
2017年

17

Xcode7でも同じ問題に直面していました。これに対する解決策:

  • に行く PROJECT
  • 建てる Settings
  • 選択する All Tab
  • 検索で入力 Enable Bitcode
  • Update Flagto No(プロジェクトの下にあります(2列目))

15

GoogleAnalyticsココアポッドライブラリでも同様の問題があり、ライブラリはiOS 8を搭載したiPhone 6用にコンパイルされていませんでした。

私の解決策は、ポッドプロジェクトではなく、アプリケーションプロジェクトのターゲットで「ビットコードを有効にする」フラグをNOにすることでした。


それが私の回答へのコメントで私が言ったことです。それが機能しない場合にのみ、プロジェクト設定でそれを実行するには、ポッドプロジェクトに切り替えます。
Vive

ターゲットとプロジェクトを切り替えて設定ビットコードNOを構築すると、アーカイブでは機能しません。Simビルドの検索は機能しますか。XCODE 7.0.1
ort11

11

ビットコードが表示されない場合は、すべてを選択してください。xcodeがBasicを選択すると、ビットコードオプションが表示されません。

ここに画像の説明を入力してください

[すべて]を選択すると、ビットコードが表示されます。その後、広告構成に「いいえ」を設定します ここに画像の説明を入力してください


10

プロジェクトに設定しました。

MyProjectTarget->ビルド設定->ビットコードを有効にする=いいえ


1
アプリケーションはApp Storeで拒否されますか?
Ne AS

5

誰もが言ったように、答えがされてセットEnable BitcodeNoビルド設定で、私はあなたのいくつかはからこれを行うに興味を持つかもしれないと思うのコマンドライン

XcodeプロジェクトはUnityによって生成されており、Xcodeプロジェクトの設定を手動で操作したくありません。おそらく、PlistBuddyplistファイルの値を更新できるように、ビルド設定を少し編集できるより良い方法またはツールがあるでしょう。ビルド設定のためにこれを行うツールがわからないので、sedを使用しています。

sed:正規表現に基づいて置換を実行します。

コマンドラインからに設定Enable Bitcodeする方法No

ここで、私のプロジェクト名はUnity-iPhone次のとおりです。Xcodeプロジェクトのルートから次のコマンドを実行します。

sed -i -e 's/ENABLE_BITCODE = YES;/ENABLE_BITCODE = NO;/g' \ 
Unity-iPhone.xcodeproj/project.pbxproj

-e-実行するsedコマンドを指定します-i-
ファイルをインプレースで編集し、ファイルごとに個別にスクリプトを実行します

-iそれが何をするかのプレビューだけが必要な場合は削除してください;)

このコマンドを使用してすべてのビルド構成が変更されることに注意しください。この行ENABLE_BITCODE = YES;はmyに6回出現しましたproject.pbxproj

これで、fastlaneが残りの処理を行うので、ビルド手順を完全に自動化できます。


3

enable_bitcodeフラグが見つからない場合。検索バーの横にある上部ツールバーの[すべて]タブをクリックします。 ここに画像の説明を入力してください


あなたの答えをよりよく説明するためにいくつかのコードを追加してください。
Usman Maqbool 2016年

1

プロジェクトでBITCODE設定を変更できない場合は、ターミナルでこのコマンドを試してください。

xcodebuild -target "target" -configuration "configuration" ENABLE_BITCODE = NO

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.