iOS関連のことを調べてみた2020年04月28日

iOS関連のことを調べてみた2020年04月28日
目次

【エビデンス資料作成】重要性

#はじめに
エビデンス作成しておいてくださいって言われて、あ、またまとめてやらないと、、、
バージョンアップ対応すると色々と画面が崩れてしまう、、、どうしよう、、、超めんどくさい

ってなっている人に色々とアドバイスできるように記事にまとめておきます。

エビデンスとは証拠となる画像などを残すことです。

### エビデンスの意味
お客様に資料を作成して、今このような状態ですよ。
運用の信用を得るためには、必要なことではあります。

様々な意味があるとは思います。

特に、バージョンアップなどを行う際は、変更箇所が多くなり、アプリ全体の画像を取る必要があります。

ではどのようにしていくと良いのでしょうか?

## 手法は以下の通り
・動画で撮る
・画像(スクショで撮る)
・テスターさんに任せる
・テスターの会社に任せる

## マンパワーで、エビデンス作業を行う。

エビデンスを撮るぞと頑張る!!と決めたらひたすら撮ると言う手法がマンパワーですね。
一生懸命、画面の不具合を洗いざらい出す場合には有効かも知れません。
今の現状を知ることができる最終段階として、良いかも知れません

##

元記事を表示

[Online] potatotips #69 iOS/Android開発Tips共有会 備忘録

# はじめに
補欠から繰り上がり、[[Online] potatotips #69 iOS/Android開発Tips共有会](https://potatotips.connpass.com/event/171532/)に参加できたので、備忘録を残します。

connpass のイベントページにも記載がありますが、
[github](https://github.com/potatotips/potatotips/wiki/potatotips-69)で今までのイベントのテーマや資料を管理していて、取り組みもとても参考になります。

# 各発表に対する感想
どれも面白い発表でしたが、今回は自分がメインで聞いていたテーマに絞ります:bow:

ML Kit (Auto ML Vison Edge)で写真から家族を検出する

[ブログ(スライドは末尾)](https://techblog.timers-inc.com/entry/2020/04/24/143803)

**やりたいこと**

– 写真アプリで家族を検出できるようにする(今回は、大人・子供・猫・犬の区別)
– 使ったのは

元記事を表示

Swiftで、Kotlinのdata class の copy() みたいのが欲しい

Swift と Kotlin を行ったり来たりして開発していると、うーってなることが結構あります。

そんな中で、似ていて違ってうわってなるのが Kotlin の `data class` で暗黙に生成される `copy()` メソッドが Swift では生成されないことです。

実装してみたところ、結構うまくいったので、共有します。

実装したいことは、「引数で指定したプロパティだけ変更して、他の項目は元と同じ別の struct を入手したい」です。

“`swift
struct Bean {
let weight: Double
let size: Double?
let name: String?
}

extension Bean {
func copy(
weight: (() -> Double)? = nil,
size: (() -> Double?)? = nil,
name: (() -> String?)? = nil
) -> Bean {

元記事を表示

iPadでもField Testを開ける

「ショートカット」アプリからFTMInternal-4を指定するとiPadでもField Testが開ける

# 背景・課題

楽天モバイル(MNO)は、**自社(楽天)回線であれば**、データ使用量が**無制限(10GB/day)**であるRakuten UN-LIMITプランを提供しています。

**iPhoneであれば**、`*3001#12345#*`ダイアルして**Field Testを開けば**、パートナー(au)回線であるか自社回線であるかを**判別できる**ことが知られています。一方、**iPadは**、データ通信専用であるため、そもそも**ダイアルが不可能**です。

そのため、回線を判別するには、ダイアルを迂回してField Testを開く必要があります。

# 手法
**脱獄不要**。iOS標準で同梱される**「ショートカット」アプリのみ**を使います。

▼次のショートカットを使用します。
https://www.icloud.com/shortcuts/dbf53f0c94f44ec09d5f0ab150f6e9e3

単に、アプリは存在するので直に指定すれば

元記事を表示

UIToolBarについて、中のボタンタップ時におけるハイライトが不自然にならないように上部の枠線を消す

非常にニッチだが、割と時間がかかったためメモしておく

# やりたいこと
以下のUIToolBarを作る

– ボタンに CustomView でボタンを利用し、ボタンのハイライトをONにする
– 背景に独自画像を設定する
– 上部の枠線は表示したくない

以下がベースのコード
ここで指定している`product_color.png`は1×1サイズの単色画像である

“`swift
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

// イメージカラーの画像を読み込む
let productColorImage = UIImage(named: “product_color.png”)!

// UIViewController の背景をイメージカラーの画像に設定
self.view.backgroundColor = UIColor(patternImage: p

元記事を表示

Sign in with Appleの注意点

# Sign In with Apple
実装は、公式サンプルコードを参照すれば比較的容易です。

[「Appleでサインイン」によるユーザー認証の実装](https://developer.apple.com/jp/documentation/authenticationservices/implementing_user_authentication_with_sign_in_with_apple/)

# 注意点
何処かに記載があるのかもしれませんが、下記コード(公式サイトより引用)内のgetCredentialState()は、現時点のシミュレータ(version 11.4.1)では常に.notFoundを返すようです。動作確認は実機で実行する必要があります。

最初シミュレータでも.authorizedが返ってきていて、試行錯誤しているうちに動かなくなったように見えたのですが、[このやり取りを読むと](https://github.com/invertase/react-native-apple-authentication/issues/9)勘違いのようです。

“`sw

元記事を表示

UILabelのフォントサイズを自動調整させる(adjustsfontsizetofitwidth)

[`adjustsFontSizeToFitWidth`](https://developer.apple.com/documentation/uikit/uilabel/1620546-adjustsfontsizetofitwidth)というプロパティがあるので、それをtrueにすると、
自動調整が効きます。

# adjustsfontsizetofitwidthしてみよう
“`swift
import UIKit

class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let label = UILabel(frame: CGRect(x: view.center.x – 50, y: view.center.y – 7.5, width: 100, height: 15))
lable.text = “12345678901234567891”
label.font =

元記事を表示

iOS対応、スムーズな背景画像の連動。

こんにちは、絶賛24時間プログラミング中のasuchi0819です。
(んなわけない

ちょっと所要にて、背景画像をスクロールしても動かしたくない実装をしなければならなかったので、その覚書です。

まず、iOSでは背景画像の`cover`時に`background-attachment:fixed;`を指定することはできません。
そこで、`:berofe`に背景画像として設定すればよいです。
しかし、ここで少し落とし穴があるのでコードを見てください。

“`CSS
body:before{
content:””;
display:block;
position:fixed;
bottom:0;
left:0;
z-index:-1;
width:100%;
height:100vh;
overflow:hidden;
background: url() center no-repeat;
background-size:cover;
}
“`

多くのコードでは、
`bottom: 0;`が`top: 0;`や、`overflow: hi

元記事を表示

Unityのモバイルゲーム向けクラッキングが行われるポイントを整理してみた

#免責事項

**この記事に記載されている内容を、実際に試して発生した損害に対していかなる責任も負いません(補償しません)。**
**すべて自己責任のもとで行ってください。**

リリースされているアプリやゲーム、[ソフトウェア利用許諾契約(EULA)](https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E5%88%A9%E7%94%A8%E8%A8%B1%E8%AB%BE%E5%A5%91%E7%B4%84#%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0)やアプリケーション利用規約などでリバースエンジニアリングは禁止されています。
実際に試す場合は、自分で開発しているアプリやゲームや脆弱性確認用でリリースされているアプリやゲームを使いましょう。

勘違いして理解しており、誤ったことを記載しているとこ

元記事を表示

[Swift5]Realm Swift – サンプル#2

iOS で`Realm Swift` を 利用し、サンプルを作成してみました。

# 前回
[Realm Swift – クラス#1](https://qiita.com/mario7/items/2df2c3e172f15f1d07cb)
# サンプル
※ Source: [RealmManager.swift](https://github.com/mario7/studyForiOS/blob/realmJsonSample/realmAndJsonSample/realm/RealmManagerAccess.swift)

##Ream 定義

“`swift
import RealmSwift
class Student: Object, Codable, NSCopying {
@objc dynamic var studentId = “”
@objc dynamic var name = “”
@objc dynamic var age = 0

override static func primaryKey() -> S

元記事を表示

iOS でアプリを公開しようとしたらアカウント調査中を理由に何故かリジェクトされる→通った!

##概要
一ヶ月ほど前に、開発したアプリをApp Store Connect に提出したのですが、「アカウントを調査中だよ。調査が終わるまで何もせず待っててね(意訳)」とだけ言われてリジェクトされてしまいました。

しかし、先日ようやく審査が行われ、無事アプリの状態が「配信準備完了」になりました!
同様の問題に悩まされている方がおられるかもしれないので、ここまでの流れを時系列順に記述しておきます。

##時系列

3/13 アプリを申請する。(一回目)

3/14 上記の理由でリジェクトされる。

3/18 BundleID を変えて再び申請。

3/19 同様の理由で無事リジェクト。

〜調査が終わるのを期待してしばらく放置〜

4/23 一ヶ月以上が経過し、流石に何も音沙汰ないことに焦れて問い合わせる。

4/24 Apple から返信。「調査はまだ進行中だよ」と言われる。

4/25 明朝 アプリの状態が「審査中」になる!

4/25 夜 アプリが審査に通り、「配信準備完了」になる!!

##リジェクトの詳細
以下に Apple から受け取った却下理由を掲載しておきます。

元記事を表示

【Unity + AdMob + CocoaPods + iOS】エラーなくビルドを通すための最適解【Androidにも応用できる】

こんにちは!
ねこじょーかー([@nekojoker1234](https://twitter.com/nekojoker1234))と申します。

みなさんは、UnityEditor 上だけでなく、実機で動作確認したことはありますか?

**実機で動作確認をするには「ビルド」が必要になるのですが、これがまた本当にやっかいです。**
何がやっかいなのかと言うと、とにかくエラーが出ることが多く、そしてそのエラー解決も一筋縄ではいきません。

私が遭遇したやっかいなエラーたちは以下の通り。

– GoogleMobileAds/GoogleMobileAds.h’ file not found
– Undefined symbols for architecture arm64
– Undefined symbols for architecture armv7
– linker command failed with exit code 1

エラー内容で調べるといろいろと情報は出てくるのですが、Unity のバージョンが新しいせいか、どれも解決にはいたりませんでした。

> – [Un

元記事を表示

スマートアプリの脆弱性診断

#アプリの脆弱性診断サービスとは

「アプリケーション脆弱性診断サービス」は、お客様が開発したスマートフォンアプリケーションのセキュリティ対策が適切であるかを診断し、問題点の有無をご報告するサービスです。

インターネットを介した不正アクセス被害が日々報じられる昨今、 その手法を理解し攻撃からシステムを守る技術の重要性はかつてなく高まっています。

#脆弱性診断サービスの分類
自動ツールだけに頼らない手動診断と、リバースエンジニアリングによる高度な解析技術によりの手動診断があります。
1.Webアプリ脆弱性診断
2.スマホアプリ脆弱性診断IOS/Android
3.ペネトレーションテスト(侵入テスト)

#スマホアプリ脆弱性診断の項目
OWASP Mobile Top 10を基準とします
1.png

#報告書

元記事を表示

CombineのObservableObjectでinputとoutputを明確にしたい

## はじめに

SwiftUIでも少しでも複雑な画面になってくるとCombineのObservableObjectの入力と出力を分けたいときがあるわけです。ぱっと見で何が入力で出力なのか整理したいし、他の人にも整理してコードを書いてほしい。

RxSwiftのときは[RxSwift研究読本3 ViewModel設計パターン入門](https://booth.pm/ja/items/1223536)のようにRxCocoaがあるので工夫ができるわけだけど、SwiftUI+Combineではどうしていくと整理されるんだろうというわけで、この記事は簡単なサンプルを作って複数のやり方を示してみます。

## かんたんな画面例

2つのTextFieldがあってその2つの文字が同じ場合にButtonを押せるような画面を例とします。

スクリーンショット 2020-04-19 20.46.24.pngアコーディオンテーブルをつくろう!(swift)

# はじめに
以前書いた[デフォルトTableViewサンプル集(swift)](https://qiita.com/am10/items/9bbbe794e88a96e5420e)のテーブルカスタム編です。
アコーディオンテーブルをつくってみよう:punch:

[ソース](https://github.com/adventam10/TableSample)

※ タイトルに「つくろう!」って書いてるけどアコーディオンテーブルを推奨しているわけではないです:rolling_eyes:

# アコーディオンテーブルをつくる(1階層)
完成形はこんな感じ

![single](https://user-images.githubusercontent.com/34936885/80277463-12158d80-872a-11ea-89b2-f648f411aef2.gif)

[ソース](https://github.com/adventam10/TableSample/tree/master/TableSample/TableSample/Tables/Customs/Single

元記事を表示

ReactNativeとFirebaseCloudMessagingでiOS Push通知~react-native-firebase編~

# はじめに
ネイティブアプリ(iOS)の技術検証で
react-native-firebaseのテンプレートとFirebaseCloudMessaging(以下FCM)を使用し、
リモートPush通知(画像のアプリを閉じた状態での通知)を実装したので、簡単な手順と注意点をご紹介します。

Push通知に関する情報はたくさんあるのですが、古くて登録画面のUIが異なっていたり、
バージョン依存で動かなかったり、iOSのreact-native-firebaseの記事が少なかったので参考になれば幸いです。

# 対象読者
– ReactNativeでiOSアプリを作成してみたい人
– Firebaseを初めて触る人
– FCMを初めて触る人

# 使用バージョン
– XCode 11.3.1
– “react”: “16.11.0

元記事を表示

iOSアプリケーションのリバースエンジニアリングガイドを作った

iOSアプリケーションのリバースエンジニアリングガイドを作ったので公開します。日本語です。書きかけです。

ARMアセンブリの読み方とかlldbの使い方に関しても書いてるので興味のある方はぜひ。

[iOS App RE Guide](https://4masaka.github.io/iOS-App-Reversing-guide/)

– [ARMアセンブリの読み方](https://4masaka.github.io/iOS-App-Reversing-guide/docs/side-content/arm-assembly)
– [lldbの使い方](https://4masaka.github.io/iOS-App-Reversing-guide/docs/side-content/lldb)
– [有用なツール集](https://4masaka.github.io/iOS-App-Reversing-guide/docs/side-content/useful-tools)

また、Githubで編集してるのでPRも募集してます。何卒……!
https://gi

元記事を表示

[Swift5]Realm Swift – クラス#1

iOS で`Realm Swift` を 調査し、クラスを作成してみました。
# Realm Swift
プロパティの定義

① `dynamic` キーワードと`@objc`
  ・`dynamic` キーワードを使いたい場合、明示的につける

  ・理由:内部で Objective-C で書かれた専用のアクセスメソッドに置き換えられるため

※参照資料
[ドキュメント](https://realm.io/docs/swift/3.20.0/)
[Realm Swift GitHub](https://github.com/realm/realm-cocoa)
[RealmSwift-introduction](https://dev.classmethod.jp/articles/realmswift-introduction/)

## 動作環境
– Swift 5.0
– Xcode 11.1
– Carthage
– github “realm/realm-cocoa” == 3.20.0

## クラス

* Source: [RealmManager.swif

元記事を表示

【ObjectiveC】ナビゲージョンバーの背景を変更する

# はじめに

ナビゲーションバーを色々設定したいなと思った時にメモとして残しておきます。

~~~ObjectiveC:Appdelegate.m
UINavigationBar *navibar = [UINavigationBar appearance];
~~~

この処理を書くことで、全体的な UINavigationBar に適応されます。

## ナビゲーションバーの背景をイメージで設定する

~~~ObjectiveC:Appdelegate.m

// ナビゲーションバーの背景をイメージで設定する
– (void)setupNavigationBar {
UINavigationBar *navibar = [UINavigationBar appearance];
UIImage *image = [UIImage imageNamed:@”navigation_bar_image”];
[navibar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}

~~~

※ イメー

元記事を表示

iOSアプリのPassword AutoFillでユーザーとパスワードの入力画面を分けるには

[前回の投稿](https://qiita.com/temoki/items/023364f15dd8a56874b1)に引き続き、iOSアプリのPassword AutoFillに関する投稿です。

## 一般的なログイン画面の場合

一般的なログイン画面を作ろうとすると、ユーザー(メールアドレス等)とパスワードを入力するフィールドが並んだこんな画面になると思います。

この場合、ユーザーとパスワードの [UITextField](https://developer.apple.com/documentation/uikit/uitextfield) の [textContentType](https://developer.apple.com/documentation/uikit/uitextinputtraits/1649

元記事を表示

OTHERカテゴリの最新記事