iOSアプリの開発環境を安価に作る5

前回記事はこちら

前回、MAC Book 側でシュミレータ環境を整えました。次は実機接続です。近々のiPhone 13/14 proには投資できません。13/14 Proの解像度2532×1170に、近い2436×1125のiPhone Xとしました。デモ機でもありますので、画面背面が砕けてないものフリマで探し2万円。

一応WindowsのVS2019から接続してみましたが、やっぱり無理です。

まずはMAC側でXcodeから試しますがエラーです。iPhoneは古いですが、OS最近のver.15.7になってました。XcodeのmacOS10.15での上限ver.12.4に対して新しすぎるようです。

「iPhoneを出荷時のiOS Ver.に戻せばいい」と、初期化を試みましたが、ユーザ設定だけ消えて、最新16.1になってしまいました。

どうもiPhone古いバージョンには戻させないポリシーのようですね。ネットで探した回避策を試します。「XcodeのiOS Ver.毎パッケージをGithubからD/Lしてコピーインストールする」(下図)→ 解消せず。

「証明書を.SLSL.ファイルをソフト”blobsaver”で作成し、証明書を”FutureRestore”で差し替えて、古いOSイメージをD/Lして、iPhoneに書込む。(下図)→ 証明書NGで書き込めず。

AndroidはカスタムROMなどわりと自由ですが、iPhoneはこんなに厳格だとは想像しておりませんでした。

次記事につづきます

iOSアプリの開発環境を安価に作る4

前回記事はこちら

前回、WindowsとMACで、Xamarin_iOS SDKのバージョンを合せたましたが、どうも不安定です。

MAC上で、iOSでのデバックを行うのがスマートなのかもしれません。Visual Studio 2019のProjectを、MACに丸コピーして、Visual Studio 2019 for MAC で開いてみます。そのまま開けて、設定fileの互換性も高そうです。UIは、Windowsと異なり、ちょっと見やすいかんじです。

しかし、

  • ビルド、エディタ操作、全てにおいてWindows上の5倍以上遅い。
  • iOSシュミレータは、起動に5分くらいかかる。(Androidシュミレータも遅いがiOSほどでない)
  • iOSシュミレータ起動中に、MACがよくリセットする。

まるでWin95の時代に戻ったかのよう。iCore5 2.5GHz、メモリ4GBなら、そこまで厳しくないとはおもえるまですが、、、

topコマンドをターミナルで走らせながら、iOSシュミレータ起動すると時折止まりますので、かなり負荷がたかそうです。


しかたなくメモリを8GBにアップします。経費節約のため、ヤフオクで業販されたる方から、以下のものを2,100円で購入。MAC用と謡われていなくても、DDR3-12800 1600MHz 204ピンなら大丈夫のようです。まだまだ遅いですが応答性は1/2に改善した感じです。

メーカ:RAMAXEL 品番:RMT3160ED58E9W-1600 数量:2枚

VS2019、iOSシュミレータ、safariを起動した状態で、アクティビティモニタの状態は以下の通りでした。6GBも食うんですね。4GBではメモリスワップしまくりだったかもしれません。

次記事につづきます

iOSアプリの開発環境を安価に作る3

前回記事はこちら

前回は、MAC Book の初期セットアップまででした。次にWindowsのVisual Stdioからのデバックを試みます。

まず、iOSのプロジェクトからデバックを開始すると、MAC側にXcodeをインストールしているにも関わらず、「Xcodeが無い」とエラーが出ます。

どうも「Xcode コマンドラインツール」が関係しているようで、MAC側で以下の設定をしました。

「IDBと接続できない」と以下のエラーも出ました。MAC側に、IDB(unixのsdb:シンボリッグデバッガのmac版?)必要かと試行錯誤しましたが、Windows側のIDBのことのようです。知らないうちに解消しました。

「Monoがない」というエラーもでました。何者かよくわかりませんが、MAC側に「Mono Framework」をインストールしました。

次に以下のエラーがでました。Windows側Visual Studio 2019 Ver.16.11では、Xcode 13.1 を求めるようです。Xcode 13.1は、iOS10.15以上が必要で、iOS 15はMAC Book 2015以上が必要とのこと。これは警告だけなので、とりあえず続行します。iOSシュミレータが起動しますが、エラーがでます。

仕方なく別のPCに、Visual Studio 2019 ver. 16.9を入れますが、改善せず。

次にVisual Studio 2017 ver15.9 を入れるとビルド時に、エラーがでます。これはVisual Studio 2019が、MCA側の「Xamarion_iOS SDK」のバージョンを強制変更してたためのようです。

MAC側で、iOS10.14の最新Xcode12.4に対応した「Xamarion_iOS SDK」14.14.2.5をダウンロードして戻します。Gitbubに各バージョンがおいてあまります。

これでVisual Studio 2017で、表面上のエラーは無くなりましたが、デバッグを開始するとiOSシュミレーターで、Appleロゴでダンマリです。

この状態でVisual Studio 2019に戻すと、以下のメッセージが出ます。つまり下位互換も上位互換もなく、一点の互換バージョンに合わせる必要があるのかもしれません。

しかし、Visual Studio 側のXamarin_iOSのバージョンは、任意に変更できず、Visual Studio各リリース時期で決まってしまうようです。これがおおきなネックですね。

試した各バージョンを整理してみました。

CASEVisual StudioWindows側
Xamarin_iOS
MAC側
Xamarin_iOS
Xcode結果
12019 16.1115.2.0.1714.14.2.512.4NG
22019 16.914.16.0.514.14.2.512.4NG
32017 15.912.4.0.6414.14.2.512.4NG

CASE2は惜しいです。VS2019のもう一つ古いバージョンなら、合わせられそうです。試します。iOSシュミレータの起動は、Appleロゴで5分、ぐるぐるからすすみませんね。しつこく凝り返していると表示できるときもありました。

CASEVisual StudioWindows側
Xamarin_iOS
MAC側
Xamarin_iOS
Xcode結果
42019 16.714.2.0.1214.2.0.1212.4

次の記事につづきます

Microsoft Storeに有償でアプリを公開する6

前回パッケージが準備できたところまででした。パッケージをStoreに公開していきます。

その前に、Azureへのテナント作成が必要だったかも知れません。その上で、Azureとパートナーセンタを関連付けます。詳細手順は割愛しますが以下のような感じてした。Azureの費用は徴収されませんでした。

アプリの申請は、パートナーセンタで画面の「パッケージ」メニューを選び、.appx をドラックドロップします。複数のファイル拡張子が色々表示されていて悩みますが、「.appx」で良いようです。対応OSの表が表示されます。

申請の「概要」メニューから、「Microsoftに提出」を押すと申請が受け付けられます。押せない場合は、何か足りないか誤りがあります。受付けられると認定中の画面になります。

しかし、WEB上では全てのチェックが行われるわけではないようです。2日後くらいに、却下のe-mailが送られてきました。その内容は以下のとおりでした。

「Mixed Reality」は最初からチェックが入っているし、「Windows 10 S」.は対象OSを選択できるようになっていません。ひどいですね。

上記を修正し再登録、2、3日待つと以下の表示となりました。ようやく登録が完了しました。

このあとしばらくして「購入できない」とのクレームがありました。Storeで購入後して、正しくインストールできるか確認する必要があるようです。以下の留意点がありました。

  1. Storeパッケージを生成したPCとは、別のPCで行う必要がある。
  2. 出品した当方でもアプリ代が徴収されてしまう。これはなんとかしてほしいですね。
  3. ダウンロードが完了し、インストール中に以下のエラー0x80224407が発生しました。原因は不明です。3回繰り返すとインストールに成功したので、ストアのアプリ説明にその旨を追加しておきました。

iOSアプリの開発環境を安価に作る2

前回記事はこちら

前回は、MAC Book Pro 2012 MIDを導入したところまででした。これからMAC側をセットアップしてみます。Microsoftの公式Xamarinサイトによると「Visual Stdio for MAC」と「Xcode」が必要とのこと。

まず「Visual Stdio for MAC」を入れます。弊方は、MSDNに加入しているので、MACのsafariからMSDNにログインしてダウンロードしインストールしました。フリーなのか有償なのかイマイチ分かりません。普通に操作すると2022が入ってしまい、互換のあるXcodeバージョンが入れられないため、2019を明示的に指定する必要があります。

次は「Xcode」です。「iOS Catalina 10.15.7」にインストール可能な最も新しいバージョンは「12.4」でした。公式サイトには、最新しか置いていないので、旧バージョンの置き場を探してインストールします。

ライセンス認証のためApple IDを登録します。メアドとSMS認証のためのTELが必要です。

WindowsのVisual Stdioからアクセスを受けるため、「システム設定」メニューの「共有」から「リモートログイン」を有効にします。しかし、当方のMACでは、「リモートログインを開始しています」のまま進みません。

システム設定」を一旦閉じて、「共有」を開くと「リモートログイン」のチェックは外れています。MACを再起動してもダメ。ファイヤオールを無効にしてもダメ。これがApple品質なのでしょうか!?

いろいろ調べると、「sshd 」が起動していればVisual Stdioからアクセスできるようです。今のMACは、FreeBSDがベースとのことで、シェルプロを作り、コンソールにドラックして実行します。(この前にsshd用のキー生成が必要だったと思います)

Visual Stdioからログイン受付まで、行き着きました。

次の記事はこちら

iOSアプリの開発環境を安価に作る1

AndriodとiOSの互換アプリをxamainで制作しようとしています。MAC Bookが必要とのウワサがありますが、とりあえずxamarinをVisual Stdio 2019に追加インストールしました。自動生成されるiOSのProjectでビルドまでは、MAC Book無しで行けました。iOSシュミレータでデバックを開始すると、やはりMAC Bookを要求されます。がっくり。

新品のMAC Bookは、調査段階では投資できません。MicrosoftのPC用xamarin前提環境をみると、最小iOSは「 macOS Mojave 10.14」。MAC用「Visual Stdio 2019 for MAC」は「macOS High Sierra 10.13」。

macOS Mojave 10.14」をターゲットとすると、最も古い対応MACハードウェアは、以下のようです。以外と古いモデルでもいけるのですね。

  • MacBook Air: mid 2012以降
  • MacBook Pro: mid 2012以降

MAC素人の当方は「Air」と「Pro」の違いはよくわかりません。とりあえず仕事用なので「Pro」とし、mid 2012モデルを探します。”mid”とはリリース時期のようです。 外観の程度、SSDかHDD、メモリ容量で、公式な中古は3~4万円。10年落ちとしては高いです。ヤフオクで故障無しのものは2万円台、競争も激しい模様。フリマでちょっとマイナな、paypayフリマで良いものがありました。

CPU 2.5GHz、MEM4GB、SSD250GB、故障無し、天板に少しへこみがある程度でキレイです。17,000円。作りが頑丈なつくりなのか、ずっしりしてします。Airにすればよかったかもしれません。OSバージョンは可能な限りの売主さんが最新にしてくれていました。助かります。

次回記事に続きます

Microsoft Storeに有償でアプリを公開する5

前回記事

「支払いのプロファイル」と「税のプロファイル」の申請が完了すると、有償でアプリを公開可能になります。

公開するには、msixパッケージを生成する必要があります。従来のmsiでなく、Androidのapkのような感じです。その生成方法の詳細は、他のサイトでいろいろ説明があると思います。手順概要と、当方が引っかかた事項を、記述しておきます。

まず手順概要です。

  1. 「パートナーセンタ」で、アプリ名を登録します。他とダブらないようにするためです。
  2. Visual studioに、「Windowsアプリケーションパッケージプロジェクト」を追加インストールします。(標準インストールされていたかもしれません)
  3. アプリのソリューションに、「Windowsアプリケーションパッケージプロジェクト」を追加します。
  4. 追加したパッケージプロジェクトに、アプリを割り当てます。
  5. パッケージプロジェクトで、パッケージを生成します。
  6. 生成後、パッケージの自動テストを行います。
  7. テスト後、パッケージの署名を行います。
  8. パッケージ単体をテストします。

上記6.について

不合格1点、警告1点が発生しました。

不合格は、結果の表示のリンクを開くと、以下の表示が見られました。

これは、アプリをStroeに公開したときのタイトル画像がパッケージ作成時にプレ生成されます。それが未編集だと発生します。メッセージ中の画像を編集すと解消されました。

警告の詳細は以下のとおりでした。

ディスプレイの「拡大縮小」(100%、125%などの選択)に追従していないと警告されるようです。

アプリのプロジェクトにマニフェストを追加する解消しました。以下コードをマニフェストファイルに書きました。この内容は、Micosoftのサイトに書いてあったと思います。

マニフェストファイル1:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>
    <!-- Windows 10 compatibility -->
    <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
  </application>
</compatibility>

マニフェストファイル2:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <asmv3:application>
    <asmv3:windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>

このマニフェストファイルを、プロジェクトのビルド後処理で、コマンドラインでインポートします。

上記7.について

ちょっと悩みました。以下のように選択しました。

署名のデジタル証明書はMicrosoftが生成したものですが、自分で証明書ベンダーから用意しないといけないのか今だよくわかりません。

生成後、いろいろなファイルが生成されますが、パッケージ本体は以下の.appxファイルとなるようです。

「AppPackage」にもいろいろできるようですが、何に使うのかよくわかりません。

上記8.について

パッケージ「.appx」を実行しますが、「証明書なし」でインストールできません。証明書は以下の場所に生成されています。これを先にインストールすると、パッケージを実行できます。

しかし、証明書はパッケージに含まれていないのでしょうか? Storeからインストール時に、証明書のインストールされるのでしょうか?

試したいのですが、 有償にしてしまったので、別PCでダウンロードしてインストールするとお金がとられてしまいます(かな???)。

Microsoft Storeに有償でアプリを公開する4

前回記事

つづいて「税のプロファイル」を登録していきます。ここが一番ひっかかったところでした。

結果的に、USAに直接申請したりすることは不要で、MicrosoftのWEB上で完結しました。(しかし未だ売上0のため本当に正しく申請できているか確証は得られておりません)

「Microsoftパートナーセンター」の右上端の設定メニューから、「アカウント設定」を選び、 「支払いと税金」-> 「支払いと税金のプロファイル」を開きます。初回操作は忘れてしましましたが、「税プロファイルの更新」を選択します。

まず英語オンリーの別ページに飛び、段階的に、問に記入していけばよいのです。USAの納税番号「VAT番号」は未入力でOK。以下の表示まで進みます。

次に電子署名なセクションに移行しますので、日本語モードに切替え、署名します。これは後程、登場する「フォーム8832」ではありませんので要注意です。

次に「フォーム」(書類書式の意のようです)のセクションに進みます。個人か法人かの選択、USAでの法人化有無を問われます。法人を選ぶと具体的な書式IDの選択に進みます。普通の法人であれば、「W-BBEN-E」を選びます。

次に「所得の種類」はプリセットされた選択のままですすみ、「事業体の種類」に進みます。合同会社の場合、「パートナーシップ」かと思いましたが微妙に異なるようで「法人」としました。

当初「フォーム8832」を、前述の「電子署名」のことかと勘違いし、「はい」を選択して申請審査でエラーとなっていました。Microsoftに問い合わせると、「フォーム8832」は、USAへの法人かパートナーシップかの申請書のようで、個別に提出が必要とのこと。 未申請ですと、デフォルトは「法人」なので、そもそも提出が不要でありました。以下の設定で進めます。

次の「戸籍名」セクションでは、「みなし事業体」は「いいえ」で進めます。

「組織化した国」セクションは、「Japan」で進めます。

「恒久的住所」セクションは、「気付住所」は「いいえ」で進めます。

「郵送先住所」セクションは、そのままで進めます。

「米国納税者」セクションは、ちょっと悩みますが、持っていないでいいようです。

次の「外国TIN」セクションですが、これはUSAから見たときの外国、すなわち日本の納税者番号です。日本では個人はマイナンバーになるようですが、法人では規定されていないようです。法人番号かとも思いましたが、e-Taxで利用する「国税利用者番号」を入力しておきました。特になんでもいいのかもしれません。

最終確認のセクションに続き、「租税条約の恩恵」セクションに進みます。これは色々調べたのですが忘れてしまいました。「いいえ」つまりデフォルトでいいようです。「はい」を選ぶと、更に入力項目が現れ、税率が0%か30%か聞かれます。

最後に、W-BBEN-Eのイメージが表示され、確認します。この書類の内容はWEBで検索すると、解説ページがいろいろとあります。日本語訳もどこかにありました。

次にW-BBEN-Eの署名に進み、OKすると完了です。W-BBEN-Eのpdfが生成されるのでダウンロードして保存しておきます。

「税のプロファイル」のステータスが「審査中」となります。審査は、1~2日かかったと思います。OKであれば以下の表示となります。

申請がNGの場合、赤字で「プロファイルを更新する必要があります」という表示が現れます。

次回記事

クラッチワイヤーをリンクをピロする

趣味を事業化できれば効率的です。簡単な自動車用品を開発販売できないか模索しています。

ワイヤー式クラッチの場合、エンジン側のリンク部は、大抵は、ただのスチールプレートに穴開け+スチールピンで構築されています。なんか抵抗が大きそうです。長く使うと長穴になり、ピンも摩耗します。第一、美しくありません。

そこで、リンクをピロ化します。セロー225での作例は以下に示します。

数値的な検証は未ですが、気持ちスムーズなような気がします。見た目も機能的です。

ご興味のある方で自作は面倒な方はこちらまで。 知り合いのレース屋さんに量産を相談してみます。

おまけでクラッチレバー側も、ローラーベアリング化してみました。ここも力がかかりそうですが、なぜソリッドなんですかね。

Microsoft Storeに有償でアプリを公開する3

前回記事

次にアプリが(もしも)売れたとき入金をうけるための「支払いのプロファイル」を設定します。

Microsoftパートナーでログインし、「アカウント設定」→「支払いと税金」→「支払いと税金プロファイルの割り当て」に進みます。

「お支払い方法の選択」で、銀行を選び、口座を入力します。日本の銀行ネットと連携しているようで口座の実在も認識されます。

どの口座でも入力は通るようですが、海外から入金ができる口座かどうか銀行のホームページ等で確認します。受取り手数料がかかります。UFJ、横浜銀行はOK、GMOあおぞらはNGでした。参考URLは以下の通りです。

https://www.bk.mufg.jp/tsukau/kaigai/soukin/hishimuke.html

https://www.bk.mufg.jp/tesuuryou/gaitame.html

このあと、2~3日間、口座に審査状態に移行します。

NGになると、「更新が必要です」という表示になります。その旨のe-mailも飛んできます。

当初NGとなったため、後からpaypalアカウントを登録しました。paypalですべて完結するかとおもいきや、銀行口座の登録がないと、「支払いのプロファイル」の登録が完了しませんでした。

先に、paypalアカウントを登録すると、銀行口座無しでいけるかもしれません。またpaypalが必須なのかもはっきりときわかりません。全て完了すると以下のようになりました。

つづいて税のプロファイルにすすみます。

次回記事