{"id":1819,"date":"2024-12-29T16:32:11","date_gmt":"2024-12-29T07:32:11","guid":{"rendered":"https:\/\/www.typea.info\/blog\/?p=1819"},"modified":"2024-12-29T16:32:11","modified_gmt":"2024-12-29T07:32:11","slug":"vscode_and_github_copilot_dev_iphone_app","status":"publish","type":"post","link":"https:\/\/www.typea.info\/blog\/index.php\/2024\/12\/29\/vscode_and_github_copilot_dev_iphone_app\/","title":{"rendered":"VSCode + Github Copilot \u3067 iPhone \u30a2\u30d7\u30ea\u958b\u767a"},"content":{"rendered":"<p>Github Copilot \u8a66\u3057\u306b\u3057\u3070\u3089\u304f\u6709\u6599\u5951\u7d04\u3057\u3066\u307f\u3066\u3001\u3078\u30fc\u30fc\u3068\u611f\u5fc3\u3057\u3066\u3044\u305f\u306e\u3060\u3051\u308c\u3069\u3001<\/p>\n<p>\u8da3\u5473\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u306f\u305d\u3082\u305d\u3082\u305d\u3093\u306a\u306b\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3059\u308b\u6642\u9593\u304c\u53d6\u308c\u306a\u3044(\u6700\u8fd1\u306f\u30ae\u30bf\u30fc\u306e\u7df4\u7fd2\u304c\u697d\u3057\u3044)\u72b6\u6cc1\u3060\u3063\u305f\u306e\u3067\u3001\u89e3\u7d04\u3057\u3066\u3044\u305f\u3002<\/p>\n<p>\u306e\u3060\u3051\u308c\u3069\u3001\u306a\u3093\u3068\u3001\u7121\u6599\u5316\u3068\u3044\u3046\u30cb\u30e5\u30fc\u30b9\u304c\u3001X\u3068\u304b\u306b\u98db\u3073\u8fbc\u3093\u3067\u304d\u305f\u3002<\/p>\n<p><a href=\"https:\/\/gihyo.jp\/article\/2024\/12\/github-copilot-free\">https:\/\/gihyo.jp\/article\/2024\/12\/github-copilot-free<\/a><\/p>\n<p>XCode\u3067iPhone\u30a2\u30d7\u30ea\u3092\u4f5c\u308a\u305f\u3044\u306a\u3068\u5b66\u7fd2\u4e2d\u3060\u3063\u305f\u306e\u3060\u304c\u3001VSCode\uff0bGithub Copilot \u3067\u306a\u3093\u3068\u304b\u3067\u304d\u306a\u3044\u304b\u3068\u74b0\u5883\u4f5c\u3063\u305f\u306e\u3067\u30e1\u30e2\u3059\u308b\u3002<\/p>\n<p>\u00a0<\/p>\n<h2>GitHub Copilot \u306eVSCode\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3068\u304f<\/h2>\n<p>GitHub Copilot \u3068GitHub Copilot Chat<\/p>\n<p>\u305d\u3082\u305d\u3082\u3001GitHub\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u767b\u9332\u3068\u304b\u306f\u4e8b\u524d\u306b\u5fc5\u8981\u3002Copilot\u306e\u8a2d\u5b9a\u3082\u5fc5\u8981\u304b\u3082\u3002<\/p>\n<p>\u81ea\u5206\u306f\u6709\u511f\u6642\u4ee3\u306b\u5b9f\u65bd\u6e08\u307f\u3060\u3063\u305f\u306e\u304b\u3001\u305d\u3082\u305d\u3082\u4e0d\u8981\u306a\u306e\u304b\u3088\u304f\u308f\u304b\u3089\u306a\u3044\u3051\u3069\u3001\u7279\u306b\u4f55\u3082\u305b\u305a\u884c\u3051\u307e\u3057\u305f\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"vscode_github_copilot_plugin.png\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/2024\/12\/vscode_github_copilot_plugin.png\" alt=\"Vscode github copilot plugin.\" width=\"410\" height=\"225\" border=\"0\" \/><\/p>\n<h2>VSCode \u306b Xcodebuild Tools\u3092\u5c0e\u5165<\/h2>\n<p>VSCode\u3067XCode\u306e\u30d3\u30eb\u30c9\u3092\u5b9f\u65bd\u3059\u308b\u62e1\u5f35\u6a5f\u80fd\uff08Xcodebuild Tools)\u3092\u5c0e\u5165<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"xcode_build_tool.png\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/2024\/12\/xcode_build_tool.png\" alt=\"Xcode build tool.\" width=\"467\" height=\"310\" border=\"0\" \/><\/p>\n<h3>npm\u3092\u4f7f\u3063\u3066ios-sim\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/h3>\n<pre class=\"prettyprint\">&gt; npm install --global ios-sim\n<\/pre>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u3001.vscode\u30d5\u30a9\u30eb\u30c0\u914d\u4e0b\u306b\u3001xcodebuild-tools.json \u3068\u3044\u3046\u540d\u524d\u3067\u4f5c\u6210\u3059\u308b\u3068\u306e\u3053\u3068\u3060\u304c\u3001\u8d64\u6587\u5b57\u90e8\u5206\u306a\u3069\u304c\u3088\u304f\u308f\u304b\u3089\u306a\u3044\u306e\u3067\u8abf\u3079\u3066\u3044\u304f\u3002<\/p>\n<pre class=\"prettyprint\">{\n    \"variables\": {\n        \"SDK_VERSION\": <span style=\"color: #ff2600; font-family: Courier;\">\"11.4\"<\/span>\n    },\n    \"sdk\": <span style=\"color: #ff2600;\">\"iphonesimulator${SDK_VERSION}\"<\/span>,\n    \"workspace\": \"${workspaceRoot}<span style=\"color: #ff2600;\">\/helloworld-ios.xcworkspace\"<\/span>,\n    \"scheme\": <span style=\"color: #ff2600;\">\"build\"<\/span>,\n    \"debugConfigurations\": [\n        {\n            \"name\": \"Simulator\",\n            \"cwd\": \"${buildPath}\",\n            \"program\": \"ios-sim\",\n            \"args\": [\n                \"launch\", \"project.app\/\",\n                \"--devicetypeid\",  <span style=\"color: #ff2600;\">\"com.apple.CoreSimulator.SimDeviceType.iPhone-7, ${SDK_VERSION}\"<\/span>\n            ]\n        } \n    ]\n}<\/pre>\n<p>\u3068\u308a\u3042\u3048\u305a\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u3068\u3001\u753b\u9762\u4e0b\u90e8\u306b\u3001\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u8d77\u52d5\u30a2\u30a4\u30b3\u30f3\u304c\u51fa\u73fe\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"xcode_build_simulator.png\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/2024\/12\/xcode_build_simulator.png\" alt=\"Xcode build simulator.\" width=\"597\" height=\"143\" border=\"0\" \/><\/p>\n<h3>SDK_VERSION \u3068 SDK<\/h3>\n<p>Mac\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308bSDK\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u78ba\u8a8d\u3057\u3066\u8a2d\u5b9a\u3059\u308b\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u8868\u793a\u3055\u308c\u305f\u9069\u5f53\u306a\u7269\u3092\u9078\u3076<\/p>\n<pre class=\"prettyprint\">xcodebuild -showsdks\n<\/pre>\n<p>\u00a0<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"mac_installed_sdk_versions.png\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/2024\/12\/mac_installed_sdk_versions.png\" alt=\"Mac installed sdk versions.\" width=\"464\" height=\"422\" border=\"0\" \/><\/p>\n<h3>Workspace<\/h3>\n<p>.xcodeproj \u306e\u5b9f\u4f53\u306f\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea(XCode\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u3001\u30d5\u30a1\u30a4\u30eb\u306b\u898b\u3048\u308b\uff1f)\u306a\u306e\u3067\u3001\u4e2d\u306b\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u3001project.xcworkspace \u3092\u6307\u5b9a\u3059\u308b\u3002<\/p>\n<h3>Scheme<\/h3>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u540c\u540d\u306e\u3082\u306e\u304c\u4f5c\u6210\u3055\u308c\u308b\u306e\u3067\u3001\u3068\u308a\u3042\u3048\u305a\u540c\u3058\u306b\u3057\u3066\u304a\u304f\u3002<\/p>\n<h3>devicetypeid<\/h3>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3001iPhone\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u306e\u30c7\u30d0\u30a4\u30b9\u30bf\u30a4\u30d7ID\u3092\u78ba\u8a8d\u3057\u3066\u8a2d\u5b9a\u3059\u308b<\/p>\n<pre class=\"prettyprint\">xcrun simctl list devicetypes\n<\/pre>\n<p>\u00a0<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"mac_installed_simulators.png\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/2024\/12\/mac_installed_simulators.png\" alt=\"Mac installed simulators.\" width=\"506\" height=\"279\" border=\"0\" \/><\/p>\n<p>\u00a0<\/p>\n<p>\u7d50\u679c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u8a2d\u5b9a\u306b<\/p>\n<pre class=\"prettyprint\">{\n    \"variables\": {\n        \"SDK_VERSION\": \"18.2\"\n    },\n    \"sdk\": \"iphonesimulator${SDK_VERSION}\",\n    \"workspace\": \"\/Users\/piroto\/Workspaces\/GuitarTheoryApp_VSCode\/GuitarTheory\/GuitarTheory.xcodeproj\/project.xcworkspace\",\n    \"scheme\": \"GuitarTheory\",\n    \"debugConfigurations\": [\n        {\n            \"name\": \"Simulator\",\n            \"cwd\": \"${buildPath}\",\n            \"program\": \"ios-sim\",\n            \"args\": [\n                \"launch\", \"GuitarTheory.app\/\",\n                \"--devicetypeid\",  \"com.apple.CoreSimulator.SimDeviceType.iPhone-16, ${SDK_VERSION}\"\n            ]\n        } \n    ]\n}\n<\/pre>\n<h2>\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u306e\u5b9f\u884c<\/h2>\n<p>\u5b9f\u884c\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u3001\u30d3\u30eb\u30c9\u304c\u8d70\u3063\u3066\u3001\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u5b9f\u884c\u3055\u308c\u308b\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"iphone_sim_run_with_vscode.png\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/2024\/12\/iphone_sim_run_with_vscode.png\" alt=\"Iphone sim run with vscode.\" width=\"600\" height=\"339\" border=\"0\" \/><\/p>\n<p>\u00a0<\/p>\n<p><strong>&#8220;xcode-select: error: tool &#8216;xcodebuild&#8217; requires Xcode, but active developer directory &#8216;\/Library\/Developer\/Comm<\/strong><\/p>\n<p>\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u304c\u51fa\u305f\u5834\u5408\u306e\u5bfe\u51e6<\/p>\n<p><a href=\"https:\/\/scrapbox.io\/r-hanafusa\/xcode-select:_error:_tool_'xcodebuild'_requires_Xcode,_but...%E3%81%A8%E3%81%84%E3%81%86%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95\">Licence<\/a> xcodebuild\u30b3\u30de\u30f3\u30c9\u304c\u52b9\u304f\u304b\u78ba\u8a8d\u3002\u30e9\u30a4\u30bb\u30f3\u30b9\u304c\u51fa\u308c\u3070\u6210\u529f<\/p>\n<pre class=\"prettyprint\">$ sudo xcode-select -s \/Applications\/Xcode.app\/Contents\/Developer\n$ sudo xcodebuild -license\n<\/pre>\n<h2>Copilot\u3055\u3093<\/h2>\n<p>\u3061\u3083\u3093\u3068\u3044\u308d\u3044\u308d\u63d0\u6848\u3057\u3066\u304f\u308c\u308b\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"vscode_with_github_copilot.png\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/2024\/12\/vscode_with_github_copilot.png\" alt=\"Vscode with github copilot.\" width=\"599\" height=\"383\" border=\"0\" \/><\/p>\n<p>\u00a0<\/p>\n<p>VSCode\u3068\u540c\u6642\u306b\u3001XCode\u3082\u958b\u3044\u3066\u3001VSCode\u5074\u3067\u30b3\u30fc\u30c9\u7de8\u96c6\u3059\u308b\u3068\u3001XCode\u5074\u306e\u30d7\u30ec\u30d3\u30e5\u30fc\u306a\u3069\u3082\u5373\u6642\u53cd\u6620\u3055\u308c\u308b\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"xcode_preview.png\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/2024\/12\/xcode_preview.png\" alt=\"Xcode preview.\" width=\"599\" height=\"303\" border=\"0\" \/><\/p>\n<p>\u3081\u3067\u305f\u3057\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Github Copilot \u8a66\u3057\u306b\u3057\u3070\u3089\u304f\u6709\u6599\u5951\u7d04\u3057\u3066\u307f\u3066\u3001\u3078\u30fc\u30fc\u3068\u611f\u5fc3\u3057\u3066\u3044\u305f\u306e\u3060\u3051\u308c\u3069\u3001 \u8da3\u5473\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u306f\u305d\u3082\u305d\u3082\u305d\u3093\u306a\u306b\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3059\u308b\u6642\u9593\u304c\u53d6\u308c\u306a\u3044(\u6700\u8fd1\u306f\u30ae\u30bf\u30fc\u306e\u7df4\u7fd2\u304c\u697d\u3057\u3044)\u72b6\u6cc1\u3060\u3063\u305f\u306e\u3067\u3001\u89e3\u7d04\u3057\u3066 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1818,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"","vkexunit_cta_each_option":"","footnotes":""},"categories":[215,108,96],"tags":[216,187,125],"class_list":["post-1819","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-github-copilot","category-ios","category-visual-studio-code","tag-github-copilot","tag-ios","tag-vscode"],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=1819"}],"version-history":[{"count":1,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1819\/revisions"}],"predecessor-version":[{"id":1820,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1819\/revisions\/1820"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/media\/1818"}],"wp:attachment":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=1819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=1819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=1819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}