【アプリ】iOSアプリを作りました
iOSアプリ「らくらくロトナンバー」 をリリースしました
iOSアプリ「らくらくロトナンバー」 をリリースしました
arch -x86_64 sudo gem install cocoapods arch -x86_64 sudo gem install ffi arch -x86_64 pod install 詳しくはこちら それでもうまく行かないときは、 podfile.lock ファイルとpodフォルダを削除し arch -x86_64 pod install をやってみる
アラートの確認 dart fix --dry-run アラートの修復 dart fix --apply 詳しくはこちら
環境 MacOS 13.3 さくらレンタルサーバーのスタンダードプラン契約済 SSHでサーバー接続設定済 SourceTree インストール済 さくらレンタルサーバーにリモートリポジトリを作成 SSHでサーバー接続 $ ssh アカウント名@アカウント名.sakura.ne.jp リポジトリ格納するディレクトリを作成(最初の1回だけ) ここに今後増えるであろうリポジトリを作っていく $ pwd /home/アカウント名 $ mkdir repositories ベアリポジトリ作成 $ cd repositories $ git init --bare /home/アカウント名/repositories/アプリ名.git SourceTreeにローカルリポジトリ追加 SourceTreeからリモートリポジトリに接続 origin ssh://アカウント名@アカウント名.sakura.ne.jp/home/アカウント名/repositories/アプリ名.git ここまでひとまずOKなのだけど、、、レンタルサーバーにノンベアリポジトリを作成する レンタルサーバーにノンベアリポジトリを作成する(最初の1回だけ) $ cd /home/アカウント名/www $ mkdir repositories 空のディレクトリを作成し、クローンする $ cd /home/アカウント名/www/repositories $ mkdir アプリ名 % git clone /home/アカウント名/repositories/アプリ名.git/ Cloning into 'versions'... warning: You appear to have cloned an empty repository. done. リポジトリへ紐づいている事を確認 % cd /home/アカウント名/www/repositories/vアプリ名/ % git remote -v origin /home/アカウント名/repositories/アプリ名.git/ (fetch) origin /home/アカウント名/repositories/アプリ名.git/ (push) ローカルPCからPUSHしたらノンベアリポジトリがPULLするように設定する $ cd /home/アカウント名/repositories/アプリ名.git/hooks $ vim post-receive 以下をコピペする cd /home/アカウント名/www/repositories/アプリ名 git --git-dir=.git pull origin master 権限を付与 ...
よく使うかもしれないコマンド一覧 コマンド 説明 よく使うオプション ls ディレクトリの内容を表示 -l: 詳細な情報を表示 -a: 隠しファイルも表示 -h: ファイルサイズを読みやすい形式で表示 -1:リストを縦にソート -r:逆順で表示 -t:更新時間順にソート -m:ファイル名をカンマ区切り表示 -S:ファイルサイズ順にソート -X:ファイルを拡張子毎に集約 --full-time:タイムスタンプ詳細を表示 --help:ヘルプの表示 cd ディレクトリを移動 - cat テキストファイルの内容を表示 -n:行番号を追加 -b:行番号を追加するが、空白行には追加無 -s:連続した空行を1行に変更 pwd 現在のディレクトリのパスを表示 - mkdir ディレクトリを作成 - rm ファイルやディレクトリを削除 -r: ディレクトリを再帰的に削除 -i: 削除前に確認 -f: 確認なしで削除 mv ファイルやディレクトリを移動・名前変更 -b:上書き・削除されるファイルのバックアップ -f:上書き時、確認メッセージ非表示 -i:上書き時、確認メッセージ表示 -n:移動先に同名ファイル・ディレクトリが存在時、移動不可 -v:詳細を表示 cp ファイルやディレクトリをコピー -i:上書前に確認 -v:実行内容の表示 -n:存在するファイルの上書き制御 -f:強制的に上書き -r: ディレクトリを再帰的にコピー find ファイルを検索 -name: ファイル名で検索 -type: ファイルタイプで検索 -mtime: ファイルの最終更新日で検索 -size: ファイルサイズで検索 scp リモート間でファイルをコピー - ssh リモートサーバーに接続 - grep ファイル内の指定したパターンを検索 -i: 大文字小文字を無視して検索 -r: ディレクトリを再帰的に検索 sed ファイル内のテキストを置換・編集 -i: オリジナルファイルを編集 awk ファイル内のテキストを加工・抽出 - curl URLにリクエストを送信し、レスポンスを表示 - ping ネットワークの接続を確認 - traceroute ネットワークの経路を確認 - ifconfig ネットワークインターフェースの設定を表示 - netstat ネットワーク接続やルーティング情報を表示 - route ネットワークのルーティング情報を表示・設定 - nslookup ドメイン名の解決結果を表示 - wget ファイルをダウンロード -O: ダウンロードファイル名を指定 -P: ダウンロード先のディレクトリを指定 tar ファイルを圧縮・解凍 -z: gzip形式で圧縮・解凍 -x: 解凍 -c: 圧縮 zip ファイルをZIP形式で圧縮・解凍 -r: ディレクトリを再帰的に圧縮・解凍 unzip ZIPファイルを解凍 - ps プロセスの一覧を表示 -aux: 詳細な情報を表示 kill プロセスを終了 - top 実行中のプロセスをリアルタイムで監視 - df ディスク使用状況を表示 -h: ディスク使用量を人間に読みやすい形式で表示 du ディレクトリやファイルのディスク使用量を表示 -h: ディスク使用量を人間に読みやすい形式で表示 chmod ファイルやディレクトリのパーミッションを変更 - chown ファイルやディレクトリの所有者を変更 - sudo スーパーユーザー権限でコマンドを実行 -
設定方法 パッケージflutter_launcher_icons を利用する pubspec.yaml iOS, Androidアプリの設定 dev_dependencies: flutter_launcher_icons: ^0.12.0 flutter_icons: android: "launcher_icon" ios: true image_path: "assets/icon/icon.png" min_sdk_android: 21 # android min sdk min:16, default 21
VisualDebuggingを設定するとWidgetのレイアウト構成など確認しながら作業ができる。 設定方法 ‘flutter/rendering.dart’ パッケージをimportして、 debugPaintSizeEnabled = true にすればOK。 main メソッドに以下追記。 import'package:flutter/rendering.dart'; void main() { debugPaintSizeEnabled = true; ...
パッケージpackage_info_plus を使ってアプリ情報を取得する アプリ名 パッケージ名 アプリバージョン ビルドバージョン などが取得できる final info = await PackageInfo.fromPlatform(); info.appName info.packageName info.version info.buildNumber package_info_plusパッケージのサンプルコードそのまま貼り付け。。。 ...省略 class _MyHomePageState extends State<MyHomePage> { PackageInfo _packageInfo = PackageInfo( appName: 'Unknown', packageName: 'Unknown', version: 'Unknown', buildNumber: 'Unknown', buildSignature: 'Unknown', installerStore: 'Unknown', ); @override void initState() { super.initState(); _initPackageInfo(); } Future<void> _initPackageInfo() async { final info = await PackageInfo.fromPlatform(); setState(() { _packageInfo = info; }); } ...省略 @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title!), ), body: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ _infoTile('App name', _packageInfo.appName), _infoTile('Package name', _packageInfo.packageName), _infoTile('App version', _packageInfo.version), _infoTile('Build number', _packageInfo.buildNumber), _infoTile('Build signature', _packageInfo.buildSignature), _infoTile( 'Installer store', _packageInfo.installerStore ?? 'not available', ), ], ), ); } }
android/app/build.gradle にある compileSdkVersion flutter.compileSdkVersion は、どこに定義されてるのか? (答え) Flutter SDK のこのファイル ../flutter/packages/flutter_tools/gradle/flutter.gradle /** For apps only. Provides the flutter extension used in app/build.gradle. */ class FlutterExtension { /** Sets the compileSdkVersion used by default in Flutter app projects. */ static int compileSdkVersion = 33 /** Sets the minSdkVersion used by default in Flutter app projects. */ static int minSdkVersion = 16 /** Sets the targetSdkVersion used by default in Flutter app projects. */ static int targetSdkVersion = 33
.body を使わずに .bodyBytes を使って解決 utf8.decode(response.bodyBytes); 参考サイト Dartのhttpパッケージで文字化け https://qiita.com/takyam/items/98d6336f1b2fe912fd56