« ◆Windows10はハードディスククラッシャー | トップページ | ◇言語/文の最低構成要素 »

◇Xcodeのそれどこやねんメモ

書きかけのまま投稿しています。m(_ _)m

Xcodeのバージョンは
 Version 13.0(13A233)
 2021/09/23 Version 12.5.1 (12E507) から変更
です。
この記事での基本の記述/画面はVersion 12.5.1のものです。Apple神の気まぐれにより、少し変わっているかも知れません。

本記事はwatchOSでの作業メモとなっています。

 Select a development team in the Signing & Capabilities editor

 TARGETS

 Capability(ライブラリ選択)

次のようにして判じ絵(マウスを持っていくと名前は出ます)から必要ライブラリを判断し、ダブルクリックすると、ライブラリが追加されます。

追加されたライブラリ名はリストに追加されます。

 Bundle Identifier

 info.plist;NSHealthShareUsageDescription

info.plistはその他のファイルと同じレベルに置かれます。複数ありますが、どれも同じかも知れません。

要素名はリスト上の要素名と同一とはなりません。なにしろ宗教ですので。

 ViewController

そんなものは使いません。

昔のUI開発ベース(UIKit)のものです。現在はSwiftUIがベースになっており、ContentViewを使います。
ViewControllerは使用可能ですが基本的には使用しません。

ViewControllerを使う解説は全て無視するのが良いでしょう。

 storyboard

そんなものは使いません。

昔のUI開発ベース(UIKit)のものです。

storyboardを使う解説は全て今や無効です。

 A build only device cannot be used to run this target

この英語風の神様語文を人間の言葉に翻訳すると「ターゲットから信頼されていません」となります。

ビルド/実行を繰り返すうちに、突然開発マシン(Mac)がiPhoneの信頼を失うことがあるようです。

iPhoneで「このコンピュータを信頼する」を再び実行する必要があります。
(apple watchはiPhoneを信頼しているはずですので、おそらくiPhoneだけでよい。

残念ながらiOS15では場所が変わったようです。どこになったのかはApple神のみ知る
iPhoneで[設定]⇒[一般]⇒[リセット]⇒[位置情報とプライバシーをリセット]
 [設定をリセット]
  ケーブルを抜き差しする
   「このコンピュータを信頼しますか?」
    [信頼]

watchアプリを動かそうとして出た場合は一旦iPhoneアプリを動かすとでなくなる場合もあります。基本的にApple神の気まぐれですので、どうすれば確実に対処できるのかはまだ分かりません。

これで回復しない場合は、Xcodeを動かしているMacを起動しなおす。

iOS,watchOS,Xcodeのバージョンupなどがあり、それまで動いていたwatchアプリを再び動かすのに丸二日かかってしまいました。30分程を想定していたのですが。。。
Apple信者だと1時間かからずできるのでしょうか?
かなり色んなことをやったので、なぜ動かなかったのか、なぜ動いたのか、全く整理できません。

 ContentView.swift(ソースの選択)

 Identify and TypeのNameのテキストボックス内の名前

Nameを変更した上で変更した値をクリックすると関連名を変更するかと聞いてきます。
このあたりの手続きがいかにも宗教マシンで、意味がつかみづらい。こういうヘンテコな操作を「直感的」と呼べるようになるには相当な修行が必要になる。例えばWindowsやAndroidのツールのように[適用]などというボタンがあると分かりやすいのだが
例えば"heart2"だったものを"helthKit_multi"に変えると次の窓がでます。

幾つか内部管理名は変更されますが、フォルダ名は変更されません。そもそもアップル教ではファイルをツリー状に管理し階層に名前を付けるという概念がありませんので、ファイル名はどーでもよいとして扱われます。
「名は体を表すべき」などという汚れた考えを持つとアップル神の逆鱗に触れアプリは暴走します。

 @State,Timer,onRecieveサンプル

1秒毎にタイマー割り込みを受け、カウント値を表示するプログラムを作ってみました。
ContentView.swiftに変更を加えています。
それぞれの手続きの意味は現時点では余り良く分かっていません。m(_ _)m

import SwiftUI
struct ContentView: View {
   @State private var count = 0 // @State:値が変更されたらViewを表示し直す
   var timer = Timer.publish (every: 1, on: .main, in: .common)
   var body: some View { // some:不定のViewを返す(呪文)
      VStack {           // 縦にViewを並べる
         Text("hello count:\(self.count)")
         Button("Start timer",action:{_ = self.timer.connect()})
         Button("Stop timer", action:{self.timer.connect().cancel()})
         }
      .onReceive(timer) { _ in // timerのイベントで動く;_は戻り値無
         self.count += 1       // countは@Stateなので変更時再表示
         }
      }
   }
struct ContentView_Previews: PreviewProvider { // プレビュー(意味不明)
   static var previews: some View {
      ContentView()
      }
   }

|

« ◆Windows10はハードディスククラッシャー | トップページ | ◇言語/文の最低構成要素 »