web-dev-qa-db-ja.com

ITMS-90809の取得:--optimize = force-rejected-types-removalを使用した後の非推奨のAPIの使用

これはここ数日間私を殺してきました。私はこのエラーで見つけることができるすべてを読み、xamarinの言うことを実行しましたが、それでも機能しません。

Azureパイプラインxamarin.iosをビルドしてAppleにデプロイするためのビルドを取得できません。

ローカルでビルドすると、次のようなメッセージが表示されます

MTOUCH : warning MT1502: One or more reference(s) to type 'UIKit.UIWebView' already exists inside 'Xamarin.Forms.Platform.iOS, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' before linking

--warn-on-type-ref = UIKit.UIWebViewをoptimize argとともに使用すると、リンク後に参照がないことを示すメッセージが表示されます。

パイプラインでAzureを構築すると、MT1502のみが表示されますが、リンク後は何も表示されません。ビルドはAppleに送信され、ITMSメッセージが原因で失敗します。

どうすればいいかわかりません。最新のmacOS vmイメージ、mono 6.8.0.123、xamarin.ios 13.16.0.13、xcode 11.4.1を使用しています。パイプラインは4月30日の締め切り前に問題なく機能しましたが、今は何があっても、リンカーにUIWebViewを削除させることができません。

他に役立つ情報を教えてください。この時点で完全に行き詰まっています。

ありがとう。

4
jmichas

解決しました!! nugetsをiOSプロジェクトの.csprojファイルに含める方法を更新する必要がありました。問題は、--optimize = force-rejected-types-removalフラグにもかかわらず、リンカーがXamarin.Forms 4.6からUIWebViewコンポーネントフォームを削除しなかったことです。おそらくそれが表示されなかったためです。

私のプロジェクトは2年以上前に作成され、packages.configファイルをまだ使用していました。更新後、フラグは機能し始め、grepクエリは0を返しました。最良の方法は、古い.csprojファイルを新しく作成したiOSプロジェクトの.csprojファイルと比較し、VSがどのようにNugetsを参照しているかを確認することです。

0