TestFlightにてXamarinアプリをiPhoneにインストールするまで3:XcodeのIPAをUploadを試す

前回記事

次に Xcode で生成した IPA を TestFlight で Uploadとしてみます。 基本的なことができるかトータルの環境をチェックしてみました。Xcodeのバージョンは 14.2 です。

Xamarin.iOSアプリをiPhone上でデバックする場合、先にXcode Projectでダミーアプリ作って iPhone にインストールし、同じハンドル識別子で Vusual Stduio で Project を作り本アプリをiPhoneにインストールします。(当手順のMicrosoftドキュメントはこちら) そのダミーアプリTestFlight で Upload してみます。

デバッグ用のまま Upload すると、CFBundleIconName と 何か画像がないとエラーがでます。

以下のように処置していきます。xcodeの右ペインの「TARGETS」をアプリ本体を選択 → 「General」 → 「App Icons and Launch Screen」→ 「App Icons Source」 にチェックを入れます。この辺りの仕様は、folder指定にの場合があるなどXcodeのバージョンによって変遷があるようです。

Store公開時のアプリアイコンを割当てます。画像は1024×1024で作成し、Projectメニューから既存ファイルの追加で追加しておきます。左ツリーからアプリ本体の「Assets」を開き、「AppIcon」をクリック、AppIconのエリアに画像をドラックします。

Store公開時のアプリサンプル画像を割当てます。画像は、端末機種に合わせて数サイズ作り、Projectに取り込んでおきます。左ツリーからアプリ本体の「Assets」を開き、「Default」をクリック、Defaultのエリアに画像をドラックします。

AccentColor」は未処置でよいようです。

Apple Developer WEBページで、「Capabilities」を”App Attest”、「Distribution」を”App Store Connect”に切替えます。詳しくはこちら同じです

xcodeのメニュー「Product」→「Archive」で公開用buildを実行します。Archive画面が表示されたら、右側の「Distribute App」を押し、Uploadを開始します。

一分程度待ちます。なんと Upload は成功しました。

App Stroe の WEB ページを確認してみると、Uploadされています。

以上のことから、Xamain.iOS側の要因でUploadできない可能性が高いそうです。次回パート4に続きます。

TestFlightにてXamarinアプリをiPhoneにインストールするまで2:XcodeのUpdate後、Xamarinでビルド不能

前回記事

前回から、一か月後、’24年1月21日にアプリを改修してVisual Stdio 2019 For MAC でビルドし、Xcode経由でApp Store へ更新アップロードを試みましたが、エラーとなりました。

一月前はできていたました。弊方の MAC Book Pro 2015 Early で使える iOS Monterey  では、Xcode 14.0 止まりと認識していたのですが、 Xcode 14.2 までUpdate可能となっていたので、「2024になり Appleサーバ が変わり Xcode と互換がなくなった 」のかと、Xcode 14.2 に Update しました。

しかし、Visual Stdio 2019 For MAC 「xcrun: invlid active developer path:」なるBuildエラーが発生しました。

他WEB記事情報によると、コマンドラインから「xcode-select install」を実行すると解消されるとありましたが改善せず。

どうもXcodeに応じた「コマンドラインツール」が必要という理屈のようです。Visual Studio 上にも警告が出てており、そこから「今すぐインストール」を選択しましたがエラーでました。

Xcode 14.2 コマンドラインツール」は、dmg形式のダウンロードもあるので、そちらをインストールしてみても解消せず。

八方塞がりになりましたが、xcode-select コマンドのオプションを観察し、直観でリセット「sudo xcode-select -r」を実行すると解消しました。この時sudo は必須。以下、その時の bash history の内容です。

Visual Studio でBuild時、「Apple SDK Not Found」的なエラーも発生しました。これは Xcode 14.0 → Xcode 14.2 にUpdate にともないSDKパスが変わってしまったようです。これは Microsoft の WEBに説明がありました。Appleのケア不足でがっくりしているところ、Microsoft のケア深さに感銘。メニュー「Visual Studio」→「ユーザ設定」→「SDKの場所」→「Apple」にて、「場所:」を「/Applications/Xcode.app」に変更します。

これで Xcode 14.2 でビルドがとおりました。

しかし、App Store への Uploadエラーは解消せず。パート3につづきます

SHマイコンのC言語組込み関数set_imask中身は?

SHでC言語で作る場合の割り込み禁止は、set_imask関数 です。最近の他ルネサスマイコンでの _EI( )、_DI( ) のように気軽に呼出してよいのでしょうか? アセンブラならシステムレジスタの 割込マスクBit 3つを立てるだけなので、一行で済むはずですが、、、

set_imask() のアセンブラ展開は、

むろん set_imask() はライブラリではなく、直接アセンブラにインライン展開されています。SHは、システムレジスタを直接更新しないポリシーみたいですね。

SH-2A、SH2A-FPUユーザーズマニュアル ソフトウェア編」によりますと、

命令ステート数
システムレジスタ読出し2
20bitデータ転送1
マスク値(レジスタ同士の)の加算1
システムレジスタ書込み 3
7

所要時間は、7ステート × クロック分解能 。100MHzだと、0.07usec。アプリケーションにもよりますが、負荷を気にして使う必要はなさそうです。

しかしながら実際のところ1usオーダーで消費しているように見受けられます。SHの5段パイプラインがこの場合止まってしまうとすると、0.07 x 5 = 0.35usec、もろもろでざっくり 0.5usec。msecオーダーの制御周期であればよいですが、100usec、50us制御周期の場合は厳しくなりそうですね。

他マイコンですと、メインコントロールレジスタに1bit割禁フラグがあって、アセンブラ一行でビット操作命令で割禁フラグを上げ下げできます。RL78なら、

知らずに同じ感覚で念のため程度でset_maskを多用していたら、知らずに性能を圧迫してしまいます。デリケートな割禁部は、後からメンテする人は恐ろしくて外せないでしょう。お困りの方はご相談ください。

SHでC言語のアセンブラコード展開を確認するには?

SHマイコンで、C言語のアセンブラコードを確認したくて以下の設定にしてみましたが、.src は出力されませんでした。そもそも「表示」って何でしょう?

もしかして、コード表示で「逆アセンブル」のこと? 確かに Hew のデバッガ上では確認できるのですが、コンパイラ単体で使用する場合は困りますね。

ビルド時の asmshの コマンドラインシーケンスを見てみると、”-list” の部分でしょうか?

.lis を開いてみると、元々 .src のコードだけ出力されているので違いますね。

他のオプションを探してみると、以下の部分ようです。

出力された.lst を開いてみると、他ルネサスマイコンと同様にCコードとの対比形式で出力されていますね。

SHで、C言語→アセンブラ展開を行うためのコマンドラインシーケンスは、

でした。

.xlsxを開くプログラムにExecl2021が指定できない

弊方では、Execl2021 と Execl2003 を併用しています。.xlsxを開くプログラムにExecl2021が指定できない事象が発生しています。OSは Windows 11 です。事象は以下のとおりです。

Win11の「設定」の方から、スタートメニューのショートカットを指定しても同じ結果でした。

先にExecl2021をプログラムメニュー等から起動して、.xlsx をドラックすればこの問題は回避できるのですが不条理です。レジストリを検索してみると、.xlsx は Execl2021 に割り当てられているようにみえます。

確かにExecl2021がインストールされている状態から、Execl2003をインストールしました。確かに2003で2021のことを考慮できるはずはなさそうですね。ただいま調査中です。