前回記事にて、MAC OS14 / Xcode 15 / Visual Studio 2022 for MAC で、iOS17対応でXamarinアプリのBuild / TestFlight までできることを確認しました。’24.4月の事です。
しかし諸事情で MAC を再初期化しました。その後、iOSプラットフォームで以下のように現在’24.7月 Build が通らなくなりました。
エラーは、The type or namespace naname interface名 could not be found (a you missging a using directive or un asssmbly reference? ) (CS00246)
Xamarinで 各固有処理を作る場合、プラットフォーム共通部で interface を定義し、各OS固有部側で interface名で、固有部処理クラスを継承します。その interface 名 が未定義だと言われてます。どう見ても合っています。同じコードでVS2019 for MACでは通ります。Xcode側の影響でしょうか??? VS2022 For MAC のサポート終了直前で手間の掛かりすぎるApple対応で心が砕けてしまったのでしょうか?
解決策は、VS2022 Windows でビルトすることでした。
しかし、TestFlight も Windows側で、buildする必要があります。以下のポイントがありました。VS2019から大分進化しているようです。
(1) 基本Build
ビルトがずっと終わらないのでMAC側をみてみると、パスワード入力待ちになってました。これを入力するとすすみます。
(2) iPhoneでのテスト
デプロイ メニューで行います。
(3) TestFlightのBuild
TesFlight 用にBuildするには、MAC側の証明書、プロビショニングプロファイル が必要です。MAC側の証明書をExportします。その手順はこちら。ここでExport時には必ずパスワードをかけます。これはVS2022側が必ずパスワードを要求してくるためです。
VS2022から [ツール] -> {オプション] -> [Xamarin] -> [Appleアカウント} を開き。チーム一覧から自分のチームを選んで[詳細の表示] を選びます。以下のように詳細画面から[証明書のインポート]を選びます。尚、コントロールパネルの証明書からimportしても効かなかったです。 いちおう[すべてのプロファイルをダウンロード]も実施しておきます。
プロビショニングプロファイルは、注意が2点ありました。
- Windows用VS2022の特有機能と思われる「自動プロビショニング」は、既にMAC側でプロビショニングプロファイルを作っていた場合は使いません。
- adHoc用のプロビショニングプロファイルを作っていると自動認識でそちらが優先されてしまうようです。adHoc用はApple Developr WEBページから削除しておく。
iOSプロジェクトのプロパティの[iOSハンドル署名]の設定例は以下の通りです。
TestFlight の IPA を生成するには、[ビルド] -> [アーカイブ]を選びます。後は以下のような流れです。
MAC側で、MAC側のパスワードを入力。
しかし App Store へのuploadは失敗しました。
IPAファイルはWindows側に生成させるので、IPAをMAC Book にコピーして、Transfar アプリ で upload は Ok でした。 オチはありますが、操作性最悪MACを触る量が減ったのでヨカッタです。