アプリはMapKitフレームワークにリンクしていますが、マップ機能が含まれていないようです。 アプリにマップ機能が含まれている場合は、アプリ内でアプリを見つける方法の手順を記載した解決センターでこのメッセージに返信してください。
マップを使用する予定がない場合は、MapKitフレームワークのリンクを解除してください。 マップを使用する場合は、「com.apple.developer.maps」エンタイトルメントを追加し、レビューのために更新されたバイナリを送信してください。
MapKitフレームワークに対してリンクするサードパーティのフレームワークを使用している場合は、サードパーティのフレームワークプロバイダーに連絡して、リンクを解除する方法を確認することをお勧めします。
幸運なフレームワークは、2016年から利用可能なMapKit拡張機能を備えたReactiveCocoaであることが判明しました…☹️
otool -L ReactiveCocoa.framework/ReactiveCocoa;
ReactiveCocoa.framework/ReactiveCocoa:
@rpath/ReactiveCocoa.framework/ReactiveCocoa (compatibility version 1.0.0, current version 1.0.0)
@rpath/ReactiveSwift.framework/ReactiveSwift (compatibility version 1.0.0, current version 1.0.0)
@rpath/Result.framework/Versions/A/Result (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.63.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1504.82.104)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.64.0)
@rpath/libswiftAppKit.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftCore.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftCoreData.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftCoreImage.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftCoreLocation.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftDarwin.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftDispatch.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftFoundation.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftIOKit.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftMapKit.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftQuartzCore.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftXPC.dylib (compatibility version 1.0.0, current version 802.0.53)
何らかの理由で、この問題は以前はフラグが立てられていませんでした。 状況を説明して応答を待っていますが、それは正当なケースのようです。アプリはMapKitを必要とせず、ユーザーが実際にこの機能を必要としない限り、資格は必要ありません。 簡単な回避策はありますか?
簡単な回避策はありますか?
MapKitバインディングなしでRACを構築できます。これは、すべてMKMapView.swift
AFAICRでカバーされています。 MapKitにリンクする他のビルド設定や場所はありません。
CocoaPodsを使用している場合は、このリポジトリをポイントしたまま、podspecを複製して上記のファイルを除外できます。
どうやら、Appleが規則を厳しくした場合、これらのバインディングを個別に提供する必要があるようです。 Swiftモジュールのインポートがどのように機能するかを考えると、新しいフレームワークターゲットまたはサブスペックなしでは回避できません。
はい、 MKMapView.swift
がこの依存関係のルートのようです。 これは確かに回避策ですが、依存関係がCarthageで更新されるたびに実行する必要があり、まったく新しいレベルで問題が発生します。 とにかく、私はAppleレビューチームがこの状況についてどう思うかを見るつもりです。
ソリューションに関しては、MapKitをReactiveMapKitに分離することは間違いなく優れたアプローチです。 または、環境から取得したMAPKIT
コンパイラフラグを使用して、拡張機能全体を条件付きコンパイルステートメントでラップすることもできます。 カルタゴでこれを試してみて、うまくいきましたが、これの美学は疑問を投げかけます:
ianbytchek<strong i="9">@ibmbp</strong>:dependency$ carthage build reactivecocoa --platform mac
ianbytchek<strong i="10">@ibmbp</strong>:Mac$ otool -L ReactiveCocoa.framework/ReactiveCocoa
ReactiveCocoa.framework/ReactiveCocoa:
…
@rpath/libswiftIOKit.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 802.0.53)
…
ianbytchek<strong i="11">@ibmbp</strong>:dependency$ RC_SWIFT_FLAGS="-DMAPKIT" carthage build reactivecocoa --platform mac
ianbytchek<strong i="12">@ibmbp</strong>:Mac$ otool -L ReactiveCocoa.framework/ReactiveCocoa
ReactiveCocoa.framework/ReactiveCocoa:
…
@rpath/libswiftIOKit.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftMapKit.dylib (compatibility version 1.0.0, current version 802.0.53)
@rpath/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 802.0.53)
…
ソリューションに関しては、MapKitをReactiveMapKitに分離することは間違いなく優れたアプローチです。
私たちはこの道をたどると思います。 おそらくCocoaPodsユーザーのサブスペックです。
将来のアップデートでこの問題を解決することは適切ですが、レビューを続行します。
Appleは私を惜しまなかったが、次回は罰は避けられないと言った。
知ってよかった。 これをできるだけ早く進めます。
最も参考になるコメント
私たちはこの道をたどると思います。 おそらくCocoaPodsユーザーのサブスペックです。