まだどこにもないアプリを作る

アプリ開発でつまづいたところなどを中心に記事にして行きます。

UE4 アクターのトランスフォームの値を一括でコピー&ペースト

トランスフォームのところの位置や回転の上で右クリックすればコピー貼り付けと出てきます。ここからコピーすればトランスフォームの値をまとめてコピーすることができます。

 

適用させたいアクターでも同じところをクリックして今度は貼り付けを押せばいいだけです。

 

これを知っていればかなり作業効率がアップしますね。

f:id:rils_k:20211108181942p:plain

 

備忘録 UnityでOculus Quest2のアプリをプレビュー、動かすまで

本当に備忘録的に書きます

framesynthesis.jp

 

↑を基本的に参考

その上で

Edit/Project Settings/Player/Other Settings/の

Minimum API LevelをAndroid8.0 Oreo (APILevel26)に

 

 File/Build Settings/Android/Run DeviceをOculus Quest2に

 

Oculus Quest2をパソコンにつなげて

 

Build&Run

 

 

 

swift 現在表示されているセルの最後のインデックスを取得 visiblecells

 if let cell = tableView.visibleCells.last{

            if let visibleIndexPath = tableView.indexPath(for: cell) {

                print("現在画面上に見えているセル中で最後のセルのインデックス値:", visibleIndexPath)

            }

        }

 

お疲れ様です。

 

 

swift systemImageの大きさを変える方法 システムアイコンの大きさを変える SFSymbolのスケールを変える。

ios - Change a SF Symbol size inside a UIButton - Stack Overflow

 

↑スタックオーバーフローのQ&Aを参考にさせていただきました。

if #available(iOS 13.0, *) {

            let config = UIImage.SymbolConfiguration(pointSize: 160, weight: .medium, scale: .large)

            let systemIcon = UIImage(systemName: "square.and.arrow.up", withConfiguration: config)

            shareButton.setImage(systemIcon, for: .normal)

        }

 

shareButtonはUIButttonです。

 

これでデフォルトのアイコンよりも少し大きくなったのではないでしょうか

 

画像なくてすみません

Swift 配列にて特定の要素を全て削除する方法

例えば この配列に含まれている5という数字を全て削除したい場合

var array = [0,1,2,3,4,5,5,6,7]

 

array.remove(value:5)

↑このコードだと一つしか削除されません

 

let a: (Int) -> Bool = { $0 == 5 }

array.removeAll(where: a)

↑これで全ての5をいっぺん削除できます。Intじゃなくてもおそらくできます。

 

これはなんかミュテイティングファンクとかいうらしいです。よくわからないけど

building for iOS Simulator, but linking in object file built for iOS, file '' for architecture arm64のとりあえずの対処法、妥協策

 

見づらくて申し訳ない

 

M1 MacにしてXcodeで既存のアプリをシミュレーターで動かそうとすると現れる

のようなエラー,etcの数々

 

Apple Silicon (M1)のマックだとアーキテクチャが変わったとかで、おそらくそれに対応していないライブラリなどがある場合はうまくビルドできないのではないかと思います。

 

やっぱりApple Siliconを使ってサクサクに開発したかったのですが、

数時間格闘しても解決できなかったので妥協策を使うことにしました。

 

XcodeRossetaを通して使います。

Finder→Application→Xcodeを右クリックして情報を見る→Rossetaを使用して開くにチェックつける→Xcodeを再起動→一応プロジェクトをcom+shift+Kでクリーンして

 

シミュレータでランすれば動くようになるのではないかと思います。

f:id:rils_k:20211021124818p:plain

Rossetaを通して使うと、

おそらく今までM1以前のXcodeを使っていることと同じことになるんだと思います。

 

もしM1MacでもRossetaなしで動かせるようになったらまた記事書こうと思います。

 

遭遇したエラーetc書き下し

Crashlytics(CLSInternalReport.o), building for iOS Simulator, but linking in object file built for iOS, file 'Crashlytics/iOS/Crashlytics.framework/Crashlytics' for architecture arm64

 

Could not find module for target 'x86_64-apple-ios-simulator'; found: arm64, armv7-apple-ios, arm64-apple-ios, arm, armv7

 

building for iOS Simulator, but linking in object file built for iOS, for architecture arm64

 

 

settings['EXCLUDED_ARCHS[sdk=iphonesimulato_settings['EXCLUDED_ARCHS[sdk=iphonesimulato_settings['EXCLUDED_ARCHS[sdk=iphonesimulatov

 

 

XCode12でビルド先をシミュレーターにするとビルドできない! - Qiita

 

CocoaPodsでライブラリをインストールしたプロジェクトを、Xcode12でiOSシミュレータ用にビルドすると、Building for iOS Simulator, but linking in dylib built for iOS, for architecture arm64とエラー表示される場合の対処法: iPhoneアプリ開発備忘録

 

 

FCM 特定の端末にテストメッセージを送信する方法 iOSアプリ

Firebase Cloud Messagingにて特定の端末にテスト送信する方法 

 

備忘録的ですが参考になれば

 

1.

新しい通知を選択(テストを作成ではないので注意)

f:id:rils_k:20211019113526p:plain

 

 

2.テストメッセージを送信を選択

f:id:rils_k:20211019113712p:plain

 

 

 

3.通知したいデバイストークンを入力してプラスボタンを押す

f:id:rils_k:20211019113916p:plain

 

このトークンの取得の仕方は

実機をMacに接続して以下のコードをAppDelegateのdidfinishLaunchingOptionsに書いて実行するとコンソールにtokenが出力されます。

import FirebaseMessaging

 

Messaging.messaging().token { token, error in

 

          if let error = error {

              

            print("Error fetching FCM registration token: \(error)")

          } else if let token = token {

            print("FCM registration token: \(token)")

//            self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"

          }

            

        }

Firebase.configureの前に書いてもプリントされないので注意です

 

f:id:rils_k:20211019114503p:plain

 

 

テスト押します。

 

 

これでチェックしたトークンのデバイスのみにPUSH通知を送ることができます。

 

 





Messaging.messaging().token { token, error in
 
if let error = error {
   
print("Error fetching FCM registration token: \(error)")
 
} else if let token = token {
   
print("FCM registration token: \(token)")
   
self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
 
}