2015-11-07 3 views
9

私はSwiftでサンプルフレームワークを作成しました。 フレームワークは、リリース版のプロファイリング用に作成されます。 リリースされたフレームワークは、iOSテストアプリに追加(埋め込み)されました。xcode 7.1 swift framework appはビルドされていますがアーカイブされていません

アプリは正常にビルドされますが、アーカイブしようとしています。 '.../Test/FW.framework/FW'が完全なビットコードなしで構築されているため、 というエラーが発生しました "ビットコードのフレームワークとdylibはすべてXcodeアーカイブまたはインストールビルドから生成する必要がありますアーキテクチャarm64 "

フレームワークとアプリケーションプロジェクトはデフォルト設定であり、両方でビットコードが有効になっています。

、フレームワーク

上でこのコマンドFrameworkはビットコードを持っていることを確認する "コマンドotool -l FW.framework/FW | grepを__LLVM"

利回り

segnameの__LLVM

segname __LLVM

segnameの__LLVM

segnameの__LLVM

私は何をしないのですか? 私は両方のプロジェクトhereを含んでおり、それらをダウンロードしてアーカイブすることができます。

+0

ビットコードの形式が一致しないようです。アーカイブを介してエクスポートされたフレームワークはありましたか? –

+0

いいえ、プロファイリングのためだけにビルドしてから、「Release-iphoneos」にFW.frameworkを、別のファイル「FW.framework.dSYM」と共に見つけました。 – CodetrixStudio

+0

アーカイブ経由でエクスポートするにはどうすればよいですか?私がフレームワークをアーカイブすると、ビルドは成功し、何も起こらないと言います。アーカイブされたフレームワークの出力ファイルを探す必要がありますか? – CodetrixStudio

答えて

26

xcodeでは、アーカイブ中にすべての組み込みフレームワークのビットコードが生成されることが必要です。フレームワーク/ dylibのリリースビルドをコピー

が十分ではありません


は、フレームワークをアーカイブして、それ以降の枠組みのアーカイブされたバージョンを使用します。

xcodeでフレームワークをアーカイブするには(通常はアプリのみをアーカイブする)、フレームワークターゲットのビルド設定 'skip install'をNOに設定してください!

+0

これは機能しますが、十分ではありません...プロジェクトは、 iTunesConnectへ私はエラーを受け取ります... – saltwat5r

+0

そして、どのエラー –

+0

これは今すぐコードが署名されていますか? –

17

(独自のフレームワークを使用している場合など)あなたは、フレームワークを構築することができます場合は、次のことを行うことができます

enter image description here

これはあなたのフレームワークが必要なビットコードを提供できるようになります。あなたが(ドキュメントによる)iOSアプリの場合

をwatchOSとApple TVのを持っていけない場合は、別の代替選択肢が必要となる場合があり


、ビットコードはデフォルトですが、オプション。 のビットコードを指定する場合は、アプリバンドルのすべてのアプリとフレームワークに のビットコードを含める必要があります。 watchOSやtvOSアプリの場合、ビットコードが必要です。

このオプションはNOにbuildSetting内のすべてのターゲットのENABLE_BITCODEを設定する必要はなく、ビットコード機能を使用して、これはするforbid予想通り。

詳細についてbitcode here

+0

私はこの答えはまた、いくつかの信用を得るべきだと思います。このアプローチでは、アーカイブプロセスを通じてフレームワークを実行する必要はありません。 –

+0

これは素晴らしいソリューションです。ありがとうございます。 –

+0

これは受け入れられた答えよりもはるかに良い解決策です。これを見るかもしれない将来の人々へのFYI。 – gikygik

関連する問題