2017-12-23 36 views
0

私が書いているアプリケーションにCocoaAsyncSocketライブラリを使用しています。 自分のデバイスでコンパイルして実行しても問題はないので、XcodeはCocoaAsyncSocketを見つけることができます。XcodeでCocoaPodsモジュールが見つかりません

私がアーカイブしようとすると、コンパイルされず、モジュールCocoaAsyncSocketが見つからないというエラーメッセージが表示されます。

私はそれがさまざまなアーキテクチャと関係があることに気付きました。私自身のデバイスのために "arm64"用の唯一の建物と、arm64armv7armv7sのためにその建物を保管しているときにビルドします。アーカイブのビルド設定をarm64のビルドのみに変更すると、アーカイブすることができます。もちろん、私はすべてのアーキテクチャー用にビルドできるようにしたいと考えています。 下の写真は、私の場合はarm64の唯一の建物の設定を表示しています。

Build Active Architecture Only: Yes

enter image description here

このライブラリを持つ経験豊富な同様の問題やその他のCocoapodライブラリ誰がいますか?

答えて

1

多くの開発者は、迫っている64ビットの未来を受け入れていますが、CocoaPodsでインストール可能なものを含め、このアーキテクチャをまだサポートしていないサードパーティのライブラリはありません。

サードパーティのポッドの中で64ビットのユニバーサルサポートがないにもかかわらず、CocoaPodsには生成されたターゲットのビルド設定にarm64アーキテクチャ(ARCHS_STANDARD_INCLUDING_64_BIT経由)が含まれています。これは、あなたのアプリケーションの依存関係がarm64をサポートしていない場合や、他の理由でarmv7とarmv7のみを構築したい場合に問題を引き起こす可能性があります。

あなたはARCHS_STANDARDに設定ARCHSビルドを戻すためにあなたのPodfileの下に以下を追加だけでこの問題を解決することができます。

# Remove 64-bit build architecture from Pods targets 
post_install do |installer| 
    installer.project.targets.each do |target| 
    target.build_configurations.each do |configuration| 
     target.build_settings(configuration.name)['ARCHS'] = '$(ARCHS_STANDARD_32_BIT)' 
    end 
    end 
end 

注:

CocoaPods Troubleshooting Guideがあなたにデバッグの設定に一致する推奨していますポッドのビルドアクティブアーキテクチャのみを変更するのではなく、Xcodeプロジェクトを使用します。彼らが一致する限り、それは問題を解決するようです。

  1. 変更はあなたがコマンドを使用して、端末にcocoapodsの更新を試みることができるだけですはいから第

それとも

にアクティブアーキテクチャを構築

  • ポッドプロジェクトを選択します。

    gem update cocoapods

    それ以降は動作しない場合は、作業領域に入り、Podプロジェクトをクリックし、すべてのPodターゲットを選択し、アーキテクチャを(armv7 armv7s arm64)に設定します。