ブックマーク / dev.classmethod.jp (26)

  • 2024年春以降、Privacy Manifests未対応のiOSアプリはリジェクトされてしまう | DevelopersIO

    AppleはWWDC23でプライバシーの扱いについての大きな変更を発表した。2024年春以降、Privacy Manifestsに対応していないアプリは新規申請・アップデート審査時にリジェクトされてしまうようだ。 「2024年春」が具体的にいつかは不明だが、2024年3月と仮定すると、期限はすでに4ヶ月を切っている。土壇場で慌てないために、記事では私が個人開発しているアプリを使って、Privacy Manifests対応のプロセスを紹介する。 後述するが、Privacy Manifests対応とは「アプリ」と「SDK(ライブラリ)」の両方の対応が必要になる。記事では「アプリ」での対応をメインに書いている。「ライブラリ」のプライバシーマニフェスト対応状況については、別途「サードパーティSDKのPrivacy Manifests対応状況を調査した」にて書いているので、こちらも参考にしていた

    2024年春以降、Privacy Manifests未対応のiOSアプリはリジェクトされてしまう | DevelopersIO
    mobiledeveloper
    mobiledeveloper 2024/03/20
    プライバシーマニフェストの作成手順
  • 3月13日から始まったプライバシーマニフェスト未対応の警告メールを受け取った | DevelopersIO

    このアプリを使って、新しいプライバシー要件に違反して警告メールを受け取ろうと思う。 検証その1:アプリのPrivacyInfoを含めていない場合 警告メールを受け取るため、アプリ側の PrivacyInfo.xcprivacy をわざと含めない形で、アプリのレビューに提出してみた。 結果としては警告メールが届いた。 警告メールを分析する さて、どのような警告メールが届いたのか確認していこう。プライバシーマニフェストを含まないアプリを App Review に提出したところ、以下の警告メールが届いた。 Hello, We noticed one or more issues with a recent submission for App Store review for the following app: FourCropper Version 4.0.2 Build 601 Altho

    3月13日から始まったプライバシーマニフェスト未対応の警告メールを受け取った | DevelopersIO
  • [Xcode 12] ローカルで課金(StoreKit)のテストをする方法について | DevelopersIO

    XCode12からの新機能のひとつとして、ローカル環境で課金(StoreKit)のテストをする環境が追加されました。 この記事では、そんなローカルで課金のテストをする方法を試しています。 はじめに XCode12からの新機能のひとつとして、ローカル環境で課金(StoreKit)のテストをする環境が追加されました。 StoreKit構成ファイルをローカルで作成し有効にすると、App Storeのサーバーに接続しないで課金のテストを実行することが出来ます。 今回はローカルで課金をしてみるまでの流れを簡単にではありますが試してみました。 具体的にどんなことが出来るようになったの? Appleのサイトによると以下の項目が挙げられています。 開発の初期段階、またはApp Store Connectでアプリ内購入を構成する前に課金ができる。 ネットワーク接続が利用できない場合のローカルテスト。 San

    [Xcode 12] ローカルで課金(StoreKit)のテストをする方法について | DevelopersIO
  • AWS システム構築 非機能要件ヒアリングシートを公開してみた | DevelopersIO

    こんにちは。 ご機嫌いかがでしょうか。 "No human labor is no human error" が大好きなネクストモード株式会社の吉井 亮です。 日国内においても多くのシステムがクラウド上で稼働していることと思います。 俊敏性、拡張性、従量課金、IaS、セキュリティなどクラウドのメリットを享受しやすい所謂 SoE で多くの実績があるように感じます。 ここ1~2年は、社内基幹システム・情報システム、SoR 系のシステムのクラウド移行が格化してきたというのが肌感覚であります。 クラウドでのシステムインフラ構築は従来のようにゼロから非機能要件定義を行っていくものではなく、ベストプラクティスをまず実装して少しずつ微調整を行っていくものと考えています。とはいえ、システムごとの要件は予め明らかにしておくことがインフラ構築においても重要になります。 クラウド上では出来ること出来ないこと

    AWS システム構築 非機能要件ヒアリングシートを公開してみた | DevelopersIO
  • [iOS11][ARKit] オブジェクトの位置と回転「常にこっちを向いている怪獣」 | DevelopersIO

    1 はじめに ARLKitでは、空間に自由にオブジェクトを配置することができます。そして、このオブジェクトを配置する位置は、3D空間上の座標(ワールド座標)で指定します。また、オブジェクト自体の向きや傾きも指定することが可能です。 今回は、この位置や向き・傾きの指定についてまとめて見ました。 2 固定位置への配置 以下のコードは、画面をタップしたタイミングで、色の違ったキューブを生成し、シーンの中に配置しているコードです。 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { let node = SCNNode() // ノードを生成 node.geometry = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)

    [iOS11][ARKit] オブジェクトの位置と回転「常にこっちを向いている怪獣」 | DevelopersIO
  • [iOS 11] ARKitでソファー設置からあの子の身長測定まで色々やってみた | DevelopersIO

    1 はじめに iOS 11では、iPhoneiPadにAR(augmented reality)を簡単に作成できるARKitというフレームワークが導入されました。ARKitの大きな特徴は、以下の3つです。 位置(座標)を特定 平面検出 周辺光を把握 位置(座標)の特定は、画面上で指定した点が実世界のどこに該当するかを3次元ベクトルで取得できるという機能です。これを活用すると、画面をタップして地点を指定し、その距離を測定するメジャーのようなものが簡単に作成できます。 続いて平面検出が可能になると、机の上など、実世界の平面に仮想オブジェクトを正確に配置することが可能になります。 そして周辺光の状態を表示する仮想オブジェクトに適用することで、その見え方は、よりリアルになるでしょう。それでは、ARKitの各機能を順に使っていきます。 もくじ 1 はじめに 2 オブジェクトの配置 (1) テンプレ

    [iOS 11] ARKitでソファー設置からあの子の身長測定まで色々やってみた | DevelopersIO
  • [iOS 11][ARKit] 距離の計測について #WWDC2017 | DevelopersIO

    1 はじめに iOS 11で追加されたARKitを利用した、AR巻尺の距離測定アプリ「AR Measure」がYoutubeに公開されています。 今回は、このようなアプリを作る方法について確認してみました。 記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。 2 現実世界の座標取得 下の写真は、クラスメソッド札幌オフィスのエントランスですが、スマフォののカメラで覗いて、画面上でタッチすると、そのポイントは、現実の世界では、赤い点を指していることになります。 ARKitを使用すると、カメラ画像に写っているスマフォ上の位置を指定すると、それに対応する現実世界の位置情報が取得できます。 この機能を利用すると、画面上で地点を指定し、その距離を計算することが可能になるということです

    [iOS 11][ARKit] 距離の計測について #WWDC2017 | DevelopersIO
  • 改めてAWSの「無料利用枠」を知ろう | DevelopersIO

    それぞれの無料利用枠については、次から詳しく解説していきます。 12ヶ月無料枠 冒頭で軽くお話しした、AWSアカウントを 新規作成した日から1年間 有効な無料枠です。 例えば、EC2インスタンスを 750時間/月 無料で利用できるといったものがあります。 ただし、使用できるリソースについては制限がある事があり、EC2インスタンスの場合ですと インスタンスタイプは t2.micro OSは Amazon Linux 1,2、Windows Server、Red Hat Enterprise Linux、SUSE Linux、Ubuntu Server を指定する必要があります。 ▲ コンソール上で対象のAMIを確認できます 「月に750時間」と言われると、「そもそも1ヶ月は何時間存在するんだ」という疑問が湧くので調べてみます。 1ヶ月が28日(最短): 24時間/日 × 28日 = 672時

    改めてAWSの「無料利用枠」を知ろう | DevelopersIO
  • AWSアカウントを作ったら最初にやるべきこと ~令和元年版~ | DevelopersIO

    はじめに 中山(順)です 4年ほど前にこの記事のタイトルと同じテーマで資料を作成したことがあるのですが、古い内容があったり新しいサービスのことが含まれていなかったりするので改めてまとめてみました。令和だし! その時の資料はこちらです(クラスメソッドにジョインするくらい2年前です)。 AWSアカウントを作ったら最初にやるべきこと サインアップ (業務利用の場合)非個人メールアドレスでサインアップ サポートプランの確認 ID管理 / 権限管理 CloudTrailの有効化 ルートアカウントのMFA設定 IAM User / IAM Groupの作成 パスワードポリシーの設定 GuardDutyの有効化 Security Hubの有効化 請求 IAM Userによる請求情報へのアクセス許可 支払通貨の変更 Budgetの設定 Cost Explorerの有効化 Cost Usage Report

    AWSアカウントを作ったら最初にやるべきこと ~令和元年版~ | DevelopersIO
  • [iOS 11] Core MLで焼き鳥を機械学習させてみた

    Core ML Core MLは、学習モデル等をiOS / macOS上で利用する際に、開発者が専門的な知識を必要とせずに扱えるように補助するフレームワークです。WWDC2017で発表された際は、ARKitに並んで現地で反響の大きかった発表でした。 iOSでは、Core ML発表以前から機械学習を取り入れようとはしていました。ただ、そのためにはCIImageを利用した画像処理や、学習モデルへの入出力などのコーディングといった専門的な知識が必要でした。 Core MLの登場で学習モデルを確保できれば、以下の機能を使ってiOS / macOSアプリで機械学習しやすくなります。 学習モデルをiOS / macOSアプリで扱える形式に変換する(Core ML model) Core ML modelへの入力と出力を補助するフレームワーク アプリ内に組み込み、学習結果を受け取ることに特化したCore

    [iOS 11] Core MLで焼き鳥を機械学習させてみた
  • [iOS 11] 初回起動判定などに使える DeviceCheck フレームワークとは #WWDC17 | DevelopersIO

    iOS 11 から DeviceCheck が追加 iOS 11 から DeviceCheck というフレームワークが追加されることが発表されました。その名の通りデバイスをチェックするフレームワークで、デバイス〜開発者間のデータをサーバーサイドのビジネスロジックで利用できるといった機能を提供します。具体的にどういった機能なのか調べてみました。 記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。 DeviceCheck でできること 簡単にまとめると、デバイスごとにトークンを生成し、そのトークンを使ってデバイスごとのフラグ(2つまで)を保持することができます。例えば「アプリの初回起動時のみプレゼント」を実現するための初回起動判定用フラグなどに活用できます。 デバイス用の A

    [iOS 11] 初回起動判定などに使える DeviceCheck フレームワークとは #WWDC17 | DevelopersIO
  • [iOS 9] iOS 9 で追加された App Transport Security の概要 | DevelopersIO

    はじめに iOS 9 で追加された「App Transport Security」について調べてみましたのでご紹介します。 目次 App Transport Security とは App Transport Security の基動作 Info.plist に例外を設定 Info.plist の設定例 SSL/TLS 暗号スイート ログ出力について まとめ App Transport Security とは App Transport Security (以降、ATS と呼びます) は iOS 9.0 または OS X 10.11 以上で有効な機能であり、アプリとウェブサービスとの間のセキュアな接続のために利用できます。 ATS が有効の場合、HTTP での通信はできません。また、Apple が推奨する必要条件を満たさない接続は強制的に接続失敗扱いになります。例えば、Apple 推奨の

    [iOS 9] iOS 9 で追加された App Transport Security の概要 | DevelopersIO
  • [Xcode 8.2] 年末なので Xcode まわりの不要ファイルを一掃してみた | DevelopersIO

    はじめに こんにちは。モバイルアプリサービス部の平屋です。 記事では、Xcode を使い続けるうちに増えてしまうファイルの内容や保存場所を紹介します。 各保存場所に「古い OS のサポートファイル」や「使用していないプロジェクト用のファイル」などの不要ファイルあれば、当に削除しても問題ないかを確認した上で削除してしまいましょう! 今回、不要ファイル削除を試してみたところ、合計約 76 GB のファイルを削除することができました。 検証環境 macOS Sierra 10.12.1(16B2555) Xcode Version 8.2 (8C38) 目次 Device Support Derived Data Archives Simulator Apps Document Device Logs Device Support 内容 実機デバッグを行うために必要なファイル Xcode を

    [Xcode 8.2] 年末なので Xcode まわりの不要ファイルを一掃してみた | DevelopersIO
  • [iOS] TestFlight 全工程解説 2016年春 【配信編】 | DevelopersIO

    はじめに こんにちは!タミー・トッキーこと田宮です! 今回から2回に渡って、TestFlightの内部テスト、外部テストの実施方法について、順を追って見ていきたいと思います。 1回目の今回は、テスト配信側で必要な操作を見ていきます。 Apple版TestFlightについては、サービス開始時から仕様が細かく変更されてきていますので、昔つかったことがある方も、一度ご覧頂ければと思います。 スクリーンショットをもれなく用意するため、複数のアプリの画面を使っています。ご了承下さい。 なお、公式ドキュメントは以下になります。 TestFlight Beta Testing (Optional) 目次 1. TestFlightの解説 内部テストとは 外部テストとは 2. ビルドを用意する ビルドをアップロード アップロードされたビルドを確認 3. 内部テスト iTunes Connectユーザを確

    [iOS] TestFlight 全工程解説 2016年春 【配信編】 | DevelopersIO
  • CocoaPodsによる、外部ライブラリの利用と作成 | DevelopersIO

    CocoaPodsとは CocoaPodsとは、定番のCocoaの依存管理マネージャーです。アプリ開発で煩雑となりがちな外部ライブラリの管理を、簡単な記述とコマンドだけ支援するものです。 https://cocoapods.org/ ざっくりと外観してしまうと・・・CocoaPodsは、Podfileに記述されたライブラリを、メタ情報をもとにダウンロードし、それらをまとめたPodsプロジェクトを生成します。 そして、ワークスペースの仕組みを利用して、既存のプロジェクトから、これを参照できるようにしています。 以下、動作について詳しく見ていきます。 2 インストール及び管理情報 (1) インストール Macには、あらかじめRubyがインストールされているため、下記のコマンドでインストールできます。 $sudo gem update --system <=ruby gemを最新にする $sud

    CocoaPodsによる、外部ライブラリの利用と作成 | DevelopersIO
  • [iOS 10] 各種ユーザーデータへアクセスする目的を記述することが必須になるようです | DevelopersIO

    はじめに こんにちは。モバイルアプリサービス部の平屋です。 「フォトライブラリ」や「カレンダー」などのユーザーデータへアクセスする方法が、iOS 10 で変更になるようです。記事では、対象となる操作や対応方法について説明していきます。 検証環境 Xcode Version 8.2.1 iPhone 6s, iOS 10.2.1 変更履歴 2017/2/17: 表 1 に NSRemindersUsageDescription, NSSiriUsageDescription, NSSpeechRecognitionUsageDescription を追加 対象となる操作 Apple の公式ドキュメント「Information Property List Key Reference」の「Cocoa Keys」セクションの説明によると、以下の表の中のいずれかの操作を行う場合、特定のキーと使用目

    [iOS 10] 各種ユーザーデータへアクセスする目的を記述することが必須になるようです | DevelopersIO
  • [iOS 10] iOS 10 での ATS 対応について | DevelopersIO

    ATS 対応が必須になります 2016 年の年末から ATS (App Transport Security) の有効化が必須となります。 ATS とはアプリとウェブサービスとの間でセキュアな接続を行うための機構です。 http プロトコルで通信を行おうとすると通信エラーが発生するようになり、正常に通信を行うためには https プロトコルを利用することが必要となります。 ATS の詳細に関しては、弊社の平屋が書いた こちらの記事 をご覧ください。 Apple のアナウンス WWDC 2016 では ATS に関して以下のように発表されました。 App Transport Security Enforcement Enforced at the end of 2016 Reasonable justification required for most exceptions NSAllow

    [iOS 10] iOS 10 での ATS 対応について | DevelopersIO
  • iOSアプリ開発で例外の発生した場所を特定する | DevelopersIO

    iOSアプリを開発していて、例外が発生してアプリがクラッシュしてしまうことがしばしばあります。 Xcodeでは、クラッシュ時に得られる情報が少ないので、原因究明に時間がかかってしまいます。 そんなときは、「NSSetUncaughtExceptionHandler」を使用すると便利です。 まず、試しに、よくある例外をわざと発生させてみます。 - (void)viewDidLoad { [super viewDidLoad]; // ここで、わざと例外を発生させてみます。 [[NSArray array] objectAtIndex:0]; } 実行すると以下のようになります。 「UIApplicationMain」で止まってしまって、状況がよくわかりません。 「NSRangeException」が発生したことくらいはわかりますが、もう少し情報が欲しいところです。 そこで、「NSSetUnc

  • [iOS] iOSのDelegateをしっかりと理解する | DevelopersIO

    iOS の通知を知る こんにちは、iPhone アプリ開発担当の荒川です。 この記事では iOS アプリでの「通知」について紹介します。 今回扱う「通知」とは、「プッシュ通知(Push Notification)」や「ローカル通知(Local Notification)」のことではなく、特定のインスタンスから別のインスタンスへ処理を委譲することを指します。 「委譲(いじょう)」と言われると何やら難しいことのように思えますが、あるクラスに書かれた何かの処理を他のクラスで処理する事だと思って下さい。 iOS アプリケーションでは以下の通知方法がよく使われます。 Delegate(処理の委譲) Key Value Observe(キー値監視) Notification Center(情報のブロードキャスト) この中の Delegate について、Objective-C での実装方法を交えて紹介し

    [iOS] iOSのDelegateをしっかりと理解する | DevelopersIO
  • MacBook Airの動作が重くなったのでメンテナンスしたら軽くなった件 | DevelopersIO

    MacBook Airが重い クラスメソッドでは、AWSチーム発足時から、JOINしたメンバーにMacBook Airを標準機として配っていました。最近、動作が遅くて困っているという声を聞くようになりました。全員がVMWare FusionにWindowsを入れていたり、Docker使ったりと、開発環境を整えているので、確かにメモリ8GBでも足りないかもしれません。私のマシンも文字入力で表示がワンテンポ遅れるほどの重さで困った状態でした。 今回試したマシンは、MacBook Air(13-inch, Mid 2013), 1.7GHz Core i7, メモリ8GB、OS X Yosemite(10.10.3)です。 UPDATE : 貴重なご意見頂いていますので追加しています。 解決策 最新マシンに乗り換える エンジニアはマシンが遅いと仕事になりません。そこで、現時点で最新で全部盛りのM

    MacBook Airの動作が重くなったのでメンテナンスしたら軽くなった件 | DevelopersIO