iOS関連のことを調べてみた2021年03月17日

iOS関連のことを調べてみた2021年03月17日
目次

【Mobile】静的セキュリティ解析ツール「MobSF」Mobile-Security-Framework-MobSFの使い方

## MobSF(Mobile-Security-Framework-MobSF)とは
[MobSF](https://github.com/MobSF/Mobile-Security-Framework-MobSF)は、Android/iOSのペンテスト、マルウェア解析、セキュリティ評価を自動化したオールインワンのフレームワークです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/dc8ddabc-4096-c5f7-1931-c2bc8dcd0a58.png)

静的解析と動的解析を行うことができます。MobSFは、モバイルアプリのバイナリ(APK、XAPK、IPA、APPX)とzip形式のソースコードをサポートしています。

## MobSFの導入方法
### STEP1 Dockerをインストール
[Mac に Docker Desktop をインストール](https://docs.docker.jp/docker-for-mac/install.html)

元記事を表示

UIStoryBoardのIBOutletがnilを返すときの対処法

clean build folder!

元記事を表示

画面遷移について網羅的に整理した (Swift5)

畑田です。
開発ペース早すぎるので画面遷移についてまとめて時間を潰しています。
全てコードで書いています。

## 環境
– Swift version 5.2.4
– Xcode version 11.6

## UINavigationControllerで管理する
まず前提として、コードだけで実装する際の画面遷移は`UINavigationController`で管理することによって実現されます。
`SceneDelegate`クラスの`scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)`メソッドの中で初めに表示されるview controllerを設定します。
このときに、初めのview controllerを`UINavigationController`のインスタンスとしてしまい、その`rootViewController`(0番目のview contr

元記事を表示

画面ごとにオリエンテーションを設定する方法

畑田です。
ある開発においてview controllerごとにorientationを細かく設定する機会があったので記録に残します。
全てコードで書いています。

## 環境
Swift version 5.2.4
Xcode version 11.6

## fix application orientation
アプリ全体で画面の向きを固定する場合は、`Info.plist`の`Supported interface orientations`において設定します。
例えば`Supported interface orientations`を`Portrait (bottom home button)`のみにすると、縦画面のみがサポートされますし、`Portrait (bottom home button)`、`Portrait (top home button)`、`Landscape (left home button)`、`Landscape (right home button)`にすると全ての画面の向きがサポートされます。

## fi

元記事を表示

[BigQuery]アプリバージョンごとのユーザー比率を取得してSlackへ通知する

Android や iOS でアプリでは何度もバージョンアップしてリリースすることが多いです。

ですのでユーザーが最新のバージョンのアプリを使っているかなど、アプリバージョンごとのユーザー比率が気になることがあるかと思います。

最近、アプリバージョンごとのユーザー比率を BigQuery から取得して Slack に通知する仕組みを実装したので、その方法についてご紹介いたします。

実際に実行してみると、以下のような感じで Slack へ通知が行われるようになります。

“`
アプリバージョンごとのユーザー比率 (2021年03月15日)

## Android

– 1.2.0 : 57.1% (4)
– 1.1.2 : 14.3% (1)
– 1.1.0 : 14.3% (1)
– 1.0.0 : 14.3% (1)

## iOS

– 1.2.0 : 54.2% (13)
– 1.1.1 : 37.5% (9)
– 1.1.0 : 4.2% (1)
– 1.0.4 : 4.2% (1)
“`

この仕組みを実装するにあたって、以下の

元記事を表示

Swiftのキーパスについて

#キーパスとは
オプショナルチェーンのようにさまざまなインスタンスが互いに参照しあう関係にあった時、あるインスタンスを起点として次々に参照をたどって別のインスタンス参照できることがありますが、そのような経路をインスタンスとして保存したり、関数の引数と指定渡したりすることです。

以下は、ある学生sがクラブに所属している場合、そのクラブに顧問の先生がいればその先生の名前を表示するためのオプショナルチェーンによる記述です。

“`swift
if let name = s.club?.teacher?.name {
print(name)
}
“`

この記述は変数sに対してのみ有効ですが、Student型のインスタンスならばどれに対しても同様な参照を行うことができます。ここで、次のような記述が可能です。

“`swift
let teacherNamePath = \Student.club?.teacher?.name
if let name = s[keyPath: teacherNamePath] {
print(name)
}
“`

この`\Stu

元記事を表示

part1「璃奈ちゃんボード」をiPadだけで自作する

#動画

https://www.nicovideo.jp/watch/sm38393401

#はじめに
最近りなちゃんボードを自作する人が増えていますが、マイコンを使ったり、3Dプリンターを使ったりするのは難しそう……~~高校生の璃奈ちゃんがあんな短期間で工作出来るわけないだろ~~、と思う方も多いでしょう。
私もそう思ったので、より現実的に、iPadやiPhoneだけで「りなちゃんボード」を再現(表示)するプログラムを作りました。
 コンセプトは、
**誰でも,簡単に,どんな時でも使える璃奈ちゃんボード**です。
使用する言語はpython3.xのみです。

#必要なもの
* iOS、iPadOSアプリ「**Pythonista3**」(1200円)
* iPhoneやiPad(原寸大で作るためには9.7インチか、10.2インチ、11インチのiPadが必要)

たったこれだけ!

1200円のアプリは確かに高いですが、このアプリを入れるだけでほとんどのpythonプログラムが実行できるので、初心者の方も玄人の方もおすすめです。今回はPythonista に入っているuiモジュール

元記事を表示

Xcode シュミレーター @が打てない時の対処法

#Xcodeのシュミレーターで「@」が打てない!!!
iOSのシュミレーターでキーボードから記号を入力すると、不思議なことに`@`が`[`になったり、なんだか色々とおかしくなってた。。。

別に`/`とか`:`みたいな記号はユーザー入力で使われることは滅多に無いのでいいんですが、、、

**`@`はログイン周りの処理で使うので、`@`が打てないのは困ります!!**

かといって、シュミレーター内のキーボードを毎回使うのも面倒やし:confused:

#解決法
![スクリーンショット 2021-03-15 22.41.41.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/b89593a3-3ad5-454f-ad02-7e89c0bfc901.jpeg)

`|/O>Keyboard>Connect Hardware Keyboard`のチェックを外す→もう一度チェックをつける

よくわかりませんが、これだけで正常になりました。。。

元記事を表示

[Swift] Firebase-Authentication(新規登録)を使ってみた

## 概要
Firebaseを使ってみたい!ということで、
サンプルアプリを通して学習していきます。

第一回目は、認証機能を用意してくれているAuthenticationの新規ユーザー登録です。
今回はメールアドレスでの登録を使いました。

※注意
各UIView(部品)はコードで実装しております。
Storyboardを使用しているからは注意してください。

## 完成品

サクッとコードがみたい場合はこちらです。
https://github.com/ksy781/FirebaseAuthentication/blob/main/FirebaseAuthentication/ViewController.swift

## 環境
| ツール | バージョン |
|:-:|:-:|
| Xcode | 12.4 |
| Swift | 5.3.2 |
| Cocoapods | 1.10.1 |
| FirebaseAuth | 7.7.0 |

## 事前

元記事を表示

Firebaseを使用してiOSアプリにプッシュ通知を実装する

#はじめに
Firebaseの`Cloud Messaging`を使用してアプリにプッシュ通知を実装します。

#前提条件
[Apple Developer Program](https://developer.apple.com/jp/programs/how-it-works/)の登録と、[Firebase](https://firebase.google.com/docs/ios/setup?hl=ja)を導入していること前提で書いていきます。

#プッシュ通知の仕組み
iOSの場合、Appleが提供しているプッシュ通知サービス[APNs(Apple Push Notification Service)](https://ja.wikipedia.org/wiki/Apple_Push_Notification_Service)を介して
プッシュ通知を配信しています。

![push_Notification.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/743730/93c1d9e3-e7d2-

元記事を表示

swiftのMapKit(基礎)

#フレームワークのインポート
“`swift
import MapKit
“`

#MKMapViewの生成
“`swift
//mapViewの生成
let mapView = MKMapView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
self.view.addSubview(mapView)
“`
#MKMapViewの中心にピンを生成する

“`swift
let mapView = MKMapView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
self.view.addSubview(mapView)
//緯度と軽度
let location: CLLocationCoordinate2D = CLLocati

元記事を表示

[初リリース]Youtubeの複数曲mix動画をSpotifyプレイリストに変換するアプリ

こんにちは!趣味でエンジニアリングをしているcanalunです。こちらが[自己紹介](https://qiita.com/canalun/items/7fb4fda358d282a7af40)です!

去年の12月頃から初めてのiOSアプリ開発に取り組み、紆余曲折を経てなんとか**Youtube-Spotify連携型プレイリスト作成アプリを完成・リリースさせることができました**!
せっかくなので、作成の経緯や苦労したポイントを自分なりにここに書き残してみようかと思います!

なお、アプリストアへのリンクはこちらです?
[mixed!](https://apps.apple.com/jp/app/mixed/id1554637603)

# どんなアプリなのか??
YouTubeには**複数の曲を1つのクリップにまとめた”mix”と呼ばれるタイプの動画**が多く存在します。hiphopやlofiと呼ばれるジャンルの音楽が好きな方は、きっとよくご存知ですよね?

例えばこのような動画です!
[【ネオシティポップとか】Neo City Pop / Japanese Hip Hop etc.

元記事を表示

[Swift5]MessageUIを用いたメール機能(お問い合わせ機能)の実装方法

## やりたいこと
今回はMessageUIを用いたメール機能の実装方法を紹介します。

`メール機能 == お問い合わせ機能`として扱えるかと思います。
ユーザー情報を管理する場合、通報機能としても代用できるのでぜひ参考にしてください!

## 使用するライブラリ
“`swift
import MessageUI
“`

## コード紹介

今回はお問い合わせボタンが存在すると仮定して紹介します。
`@IBAction func tapMailButton(_ sender: Any)`はお問い合わせボタンがタップされると呼ばれます。

“`swift
// お問い合わせボックスをタップすると呼ばれる
@IBAction func tapMailButton(_ sender: Any) {

// メールを送信できるかどうかの確認
if !MFMailComposeViewController.canSendMail() {
print(“Mail services are not available”)
return
}

/

元記事を表示

さよならCocoaPods

`CocoaPods`から`Swift Package Manager`にライブラリの管理を移行するメモ

プロジェクトファイル内のCocoaPods関連の依存を削除する

“`
pod deintegrate
“`

続いて残ったファイルを削除する

“`
git rm -r Podfile Podfile.lock *.xcworkspace
“`

これできれいになったので改めてCocoaPodsで利用していたライブラリをSwift Package Managerを使った形にしていく。
Xcodeのメニューから[File]-[Swift Packages]-[Add Package Dependency]を実行し、githubなどのリポジトリURLを貼り付けていく。

podコマンドがmac OSのバージョンアップで通らなくなっている場合がある。
その場合は以下を実行する。

“`
sudo gem install cocoapods -n /usr/local/bin
“`

元記事を表示

Google AdMob iOS ( Objective-C ) でアダプティブバナーを表示する

# サンプルプログラムを実行してみる

1.手順1

下記のリンクより、 最新バージョンの “Adaptive Banner Example” の ObjC をダウンロードする。
( 記事作成時の最新バージョンは v7.22 )

https://github.com/googleads/googleads-mobile-ios-examples/releases

2.手順2

( 1 ) Mobile Ads SDK をインポートします。

( 2 ) プロジェクトのビルド設定で、[Other Linker Flags] に -ObjC リンカーフラグを追加します。

具体的な作業内容は、下記のリンクの内容を確認してください。

https://developers.google.com/admob/ios/quick-start

3.手順3

プロビジョニングファイルを登録し、iOS Simulators または、実機により実行する。

4.備考

サンプルプログラムは、 Interface Builder により広告を表示するようになっています。
プログラムで表示す

元記事を表示

初めてReact NativeでiOSアプリを開発した時に参考にした記事・サイトたち

JavaScript(フレームワーク未使用)業務経験1年・React/React Nativeもスマホアプリ開発のいろはも分からなかった私が、平日夜・休日の時間を使って、**約2ヶ月(80時間)かけてReact NativeでiOSアプリを開発**したときの流れや参考になった記事・動画を紹介します!

自分自身、何度も壁に打ち当たり、心が折れそうだったので、少しでも役に立てればと思います!
あと日本語のドキュメントが少ないため、英語のサイトを見ることも多くなりますが、英語の良い勉強の機会だと思って、めげずに頑張りましょう!!

作った外国語用単語帳アプリ”*lankiage*”は[こちら](https://apps.apple.com/jp/app/lankiage/id1556840677)(App Store)
ソースコードは[こちら](https://github.com/Hiroyuki1995/lankiage)(Git Hub)

#そもそもReact/React Nativeとは?
**React**は、Facebook社が開発した、WebアプリケーションのUIを構築する

元記事を表示

スマホアプリをビジュアルプログラミングで開発できる MIT App Inventor を使い Androidスマホ・iPhone から LINE に通知を送る

## はじめに
これまで以下の記事などを書いてきた、スマホアプリをビジュアルプログラミングで開発できる MIT App Inventor。

– [ビジュアルプログラミング(MIT App Inventor)で開発した Androidアプリから #toio の制御を行う(BLE用の拡張機能を利用) – Qiita](https://qiita.com/youtoy/items/6a8012b7f6f3e69f1eaf)
– [ビジュアルプログラミングの MIT App Inventor を用いた音の機械学習を利用する Androidアプリ開発【後編:アプリ実装】 – Qiita](https://qiita.com/youtoy/items/b241809c93e8fcef0e26)

今まで、Androidアプリ開発のみに対応していたのですが、作ったものを iOS・iPadOS上で動かすアプリもリリースされました(Android だと APKファイルを生成することもできるものの、 iOS・iPadOS だとそれに相当することはできなそうですが…)。

ReactiveSwiftのActionで発火したSingalProducerをDisposeする方法の検討

# 問題

下記のようなActionがあるとします。

“`swift
class ViewController: UIViewController {
private let action = Action {
SignalProducer { observer, lifetime in
let workItem = DispatchWorkItem {
observer.send(value: ())
observer.sendCompleted()
}

DispatchQueue.main.asyncAfter(deadline: .now() + 5, execute: workItem)

lifetime.observeEnded {
workItem.cancel()

元記事を表示

Fire Storageを監視してサイレントプッシュ通知を送信

# 概要
Fire Storageに画像ファイルのアップロードがなされるとCloud Functionsを通してサイレントプッシュ通知を送信します。

今更感はありますが、ググってもpayloadの記述に統一性がなかったりして割と苦戦しました:sweat:

Stack OverFlowの方でも同じ悩みを抱えていた人がいたので参考になれば幸いです。

なお、本記事ではFirebase CLIや証明書周りについては触れません。
下準備ができている前提で進めます。

# 環境
– Xcode 12.4
– Swift 5
– nodejs 12

# Fire Storage
デフォルトバケットを使用

# クライアント
## Capability
TARGETS > CapabilitiesよりBackground ModesとPush Notificationsを有効にします。
Background ModesはRemote notificationsにチェックを入れます。
(バックグラウンドで通知を受け取りたい場合はBackground fetchもチェック)

## Swift

元記事を表示

UnityアプリでiOSをArchiveするとExit status: 65とかUSYM_UPLOAD_AUTH_TOKENがないとかで終わる問題の解決法

こんにちは。[virapture株式会社](https://virapture.com)の[もぐめっと](https://twitter.com/mogmet)です。

fastlaneを使ってunityプロジェクトをビルド・アーカイブしようとしたら表題の件でエラーが起こったのでその対策の紹介です。

## エラー内容

下記のような内容のエラーが出たりします。

“`
▸ Running script ‘Run Script’
The iOS deployment target ‘IPHONEOS_DEPLOYMENT_TARGET’ is set to 5.0, but the range of supported deployment target versions is 9.0 to 14.4.99. (in target ‘leveldb-library’ from project ‘Pods’)
The iOS deployment target ‘IPHONEOS_DEPLOYMENT_TARGET’ is set to 7.0, but the ra

元記事を表示

OTHERカテゴリの最新記事