0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacアプリがWebクローリング出来ない問題の解決手順

Posted at

MacアプリがWebクローリング出来ない

前回の続きで、Webページからデータをクローリングする
Macアプリを開発中なのですが
URLを入力してボタンを押しても
「A server with the specified hostname could not be found.」
となりクローリングが出来ません

今回はその解決手順のメモです

結論から言うと2つの手順が必要でした
①App Transport Security (ATS) の設定
②ネットワーク権限の追加


①のApp Transport Security(ATS)が何かと言うと
Appleがセキュリティ強化のために導入した仕組みです。
iOS 9、macOS 10.11から標準で有効になっています。
ATSの目的は、「アプリから安全でないネットワーク通信を防ぐ」 ことです。

要はこいつに一時的に「すべてのネットワーク通信を許可する」 設定を行います。

①の手順は、

  1. Info.plistファイルを見つける
    Xcodeでプロジェクトを開く
    左側のプロジェクトナビゲーター(ファイル一覧)で Info.plist
    (Infoとだけ書いてあるファイル) を探す
    通常は プロジェクト名のフォルダ内にあります

  2. Info.plistを開く
    Info.plist をクリックして開きます。

  3. 設定を追加
    Xcodeの表形式で追加
    Info.plistが開いたら、右クリック → "Add Row" をクリック
    新しい行が追加されるので、キー名に App Transport Security Settings と入力
    型が自動的に Dictionary になります
    その行の左側の三角をクリックして展開
    展開された中で右クリック → "Add Row"
    キー名に Allow Arbitrary Loads と入力
    型を Boolean に変更
    値を YES に設定

成功すると図のようになります。

スクリーンショット 2025-06-02 17.15.44.png

②の手順は以下の通りです

  1. プロジェクト設定を開く
    Xcodeでプロジェクトを開いている状態で
    左側のプロジェクトナビゲーター(ファイル一覧)の一番上にあるプロジェクト名
    (青いアイコン)をクリック
    メイン画面の中央にプロジェクト設定が表示されます

  2. ターゲットを選択
    プロジェクト設定が開いたら、左側のアプリ名(通常はプロジェクト名と同じ)を
    クリックして選択
    選択されると青くハイライトされます

  3. Signing & Capabilitiesタブを開く
    上部のタブで 「Signing & Capabilities」 をクリック
    画面には現在の設定が表示されます

  4. Capabilityを追加
    「App Sandbox」の中にある2つの設定、
    「Outgoing Connections (Client)」 ← これを選択
    「Incoming Connections (Server)」 ← これも選択

この2つにチェックを入れて完了です

下の画像をご参照下さい。

スクリーンショット 2025-06-02 16.59.24.png

これでMacアプリがクローリングできるようになりました😊

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?