埋め込みフレームワークの署名がXcode 11.2.1で機能しない


18

フレームワーク(AequumPOCFramework.framework)内にフレームワーク(Alamofire)を埋め込み(そして署名)しようとしている小さな概念実証アプリがありますが、デバイスにデプロイしようとすると、私のエラー

....ライブラリ検証を使用するプロセスでの使用は無効です:マップされたファイルにはcdhashがなく、完全に署名されていませんか?コードには少なくともアドホック署名が必要です。

Alamofireを組み込まずに独自のフレームワークをデプロイしようとすると、すべてが正常に動作します。

iPhoneへのデプロイ時の完全なエラーは次のとおりです。

dyld:ライブラリが読み込まれていません:@ rpath / Alamofire.framework / Alamofire参照元:/private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/AequumPOCFramework Reason :適切な画像が見つかりません。/private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire:(/ private / var /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire)ライブラリの検証を使用したプロセスでの使用は無効:マップされたファイルにcdhashがありません、完全に署名されていませんか?コードには少なくともアドホック署名が必要です。

何が悪いのですか?

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

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

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

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


2
ここでも同じ問題があります。現在この問題を掘り下げています。すでに解決策を見つけた場合は投稿してください!
Mattk90

2
私だけではないので、よろしくお願いします。また、進路があれば教えてください。
geekyaleks

フレームワークの署名プロセスに関係していることはすでにお伝えできます。したがって、問題は、Xcodeが組み込みフレームワークの署名が間違っているか、独自のフレームワークの署名と同じではないと言っていることです。私は現在より深く掘り下げています。この記事の適切なイントロダクション
@ tally_b

2
はい、この署名プロセスに問題があります...とりあえず、私はAlamofireフレームワークを自分のフレームワークに含め、そこに署名して埋め込み、署名してアプリ自体に埋め込みます。私はこの種のひどいことを知っていますが、これで少なくともコーディングを続けることができ、本当の修正が近いうちに出てくることを願っています。
geekyaleks

1
非常に包括的な答えをありがとう...私は今のところ、アプリ自体の「埋め込み/埋め込み」フレームワークに署名することを決定しました。うまくいけば、別の答えが近い将来に表示されます...
geekyaleks

回答:


15

ネストされたフレームワークはiOSではサポートされていません(テクニカルノートを参照)。現時点での唯一の合法的なソリューションは、「埋め込み」フレームワークをホスティングアプリに直接リンクすることです。

* XCFrameworkは主にプラットフォーム固有のバイナリの集合体であり、残念ながら埋め込みフレームワークとは何の関係もありません。


問題に関するニュースはありますか?私は同じ問題に直面しています。私のフレームワークAは私のフレームワークBを使用しており、フレームワークAのみを含み、フレームワークBにアクセスできないようにする最終的なアプリが必要です
Silvia

@Silvia Bを完全に非表示にする必要がある場合は、静的ライブラリに変換できると思います。
berec

0

あなたもあなたのプロジェクトにAlamofireを埋め込む必要があります。

たとえば、Carthageを使用していて、フレームワークのCartfileにAlamofireライブラリが含まれているとします。メインアプリにも同じCarfileを使用する必要があります。また、メインアプリに対して他のCarthageアクション(リンクライブラリ、実行スクリプトの追加)を実行する必要があります。


はい、私は同様にそれを発見しましたが、すべてのフレームワークを最終開発者に公開することは私の目標ではありませんでした。1つのフレームワーク(私のフレームワーク)内にすべてをうまくバンドルすることを望んでいました。ありがとう..
geekyaleks
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.