1

現在、Objective-C 言語のみを使用して開発されたプロジェクトに取り組んでいます。何らかの理由で、プロジェクトの依存関係として POD プロジェクトを使用する必要がありました。POD プロジェクトの 1 つは、Swift 言語を使用して開発されています。そのため、目的の c クラスで swift ファイルを使用するためのブリッジを作成しました。

これで、このアプリをデバイス上でデバッグ モードで直接実行すると、完全に動作します。しかし、このアプリを Enterprise Distribution で展開しようとすると、デバイスにインストールされますが、開かれません。アプリのアイコンをクリックしてアプリケーションを開くと、クラッシュします。デバイスのログも確認しました。POD プロジェクトから派生したライブラリをロードする際の問題を示しています。

この懸念について、多くのフォーラムや Web サイトを検索しました。彼らは皆、POD ファイルの依存関係の構造の変更により、この問題が発生していることを示唆しています。

例: iOS 8 以前の POD プロジェクトは、".a" 拡張子の静的ライブラリとしてアプリにアタッチされていました。しかし、iOS 8 および Swift 2.0 から、このプロジェクトは ".framework" 拡張子を持つ動的フレームワークとして含まれています。

多くの解決策を試しましたが、うまくいきません。iOS 9 では証明書フィールドにいくつかの変更があったため、配布証明書も再生成しました。しかし、まだ機能していません。

そこでお聞きしたいのですが、Objective C プロジェクトで Swift POD プロジェクトを使用できますか? この問題の根本原因は何ですか? Swift 2.0はそれに参加していますか?

この問題の解決策/回避策を提案してください。

4

2 に答える 2

1

Swift の依存関係は、use_frameworks を指定する組み込みフレームワークとして CocoaPods によってのみインポートできますこれには、アプリの iOS 展開ターゲットが 8.0 以上に設定されている必要があります。

iOS 7 をサポートする必要がある場合、Swift Pod を使用できる唯一の方法は、その Pod 依存関係を削除し、その Pod のすべてのファイルをアプリのプロジェクトに直接追加することです。

于 2015-10-29T12:06:58.943 に答える
0

この問題を解決しました!!

この問題を解決するには、サブジェクト組織単位 (OU) がチーム ID に設定されたコード署名証明書を使用してアプリに署名する必要があります。Apple は証明書を変更したため、アプリに署名する前に新しい証明書を作成する必要があります。

証明書の問題を修正するには、次の手順に従ってください。

  1. ディストリビューション/開発者証明書を取り消す
  2. 新しいディストリビューション/開発者証明書を作成する
  3. 新しく作成した証明書で対応するプロファイルを更新します
  4. 新しい証明書を使用してアプリを再度アーカイブする

これで問題は解決しましたが、Mac PC ではまだ動作しません。他の Mac PC からビルドを生成すると、正常に動作します。したがって、XCode および Mac PC キー チェーンの証明書とプロファイルに関連する問題があると思われます。

これがあなたを助けることを願っています!!.

:D

于 2015-12-02T12:33:08.273 に答える