如何在 Apple Silicon (M1) 上開發 Teams App

apple 在幾個月前發布了自家的芯片 M1,由于將多核cpu,多核gpu,神經網絡運算,內存和其他一切處理部件高度整合在一起,大大提高數據傳輸速度。發布后好評如潮,我也沒有忍住,入手了一臺最低配的mac air m1。目前 M1 還是有很多軟件不能很好支持,當然,這個無法阻擋我在上面的開發。我給大家分享一下我在apple silicon上開發的過程。

M1

首先,到寫這篇文章的時候還有很多開發軟件不支持跑在M1上,我們來看看當前的狀態。

  1. Docker正式發布版本不原生支持 apple silicon,preview 版本已經開始支持,但目前問題較多
  2. VScode正式發布版本不原生支持,insider版本已經開始支持,但目前問題較多
  3. .NET目前的LTS版本3.1和最新的5.0都不原生支持,目標是6.0版本支持
  4. NodeJS preview版本支持
  5. Python支持

所以,如果大家是JS, Python語言技術棧的話,恭喜,你已經開始在 M1 上進行原生開發了,只是目前大多數都在preview階段。

如果你和我一樣是 .NET 技術棧的話,一種方式是使用 Rosetta 來轉換,但是轉換的話就無法體驗 M1 給我們帶來的快感。網上有一個視頻比較 VScode 啟動速度的,使用 Rosetta 轉換的話,明顯慢,大概需要 5-8 秒,但是如果是原生的話,基本是瞬間就完成了(1秒以內)。

所以我使用的是另外一種方式,VScode remote,我在azure上開了一臺虛機,vscode使用ssh的方式遠程上去。下面是一些操作的鏈接

  • VScode insider build for Apple Silicon (ARM64)?https://code.visualstudio.com/insiders/
  • 配置SSH遠程開發的步驟?https://code.visualstudio.com/docs/remote/ssh
  • 在遠程虛機上安裝.net?https://docs.microsoft.com/en-gb/dotnet/core/install/linux

使用云端的虛機的好處是:你已經有一個public地址,所以不需要安裝 ngrok 軟件,可以直接把虛機的 ip 地址直接給到 teams,只需要記得打開對應的端口就可以了。如果你的虛機不是在云端的,那需要單獨再安裝 ngrok。

我的虛機是 ubuntu 20.04 LTS版本,如果你使用的是 windows 的遠程虛機,那需要安裝 openssh,但是這里有一個坑,我之前就掉進去,花了3,4小時才發現是一個已知問題,就是如果你的機器名字和用戶名是一樣的話,就死活登入不了。

另外,我自己的經驗是,遠程開發機器盡量使用 linux。這樣如果你用來開發 python 或者 docker 相關的東西也會少遇到很多坑。

One more thing,目前 Teams 本身還不支持 M1,相信這個會被很快解決,因為 Electron 最近也已經支持了 apple silicon 了。https://www.electronjs.org/blog/electron-11-0

TeamsOnM1

最后,如果大家對目前各大軟件支持apple silicon的進度感興趣的話,可以訪問這個網站,非常實用:https://isapplesiliconready.com/for/developer

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277907.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277907.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277907.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

BZOJ5289 洛谷4437:[HNOI/AHOI2018]排列——題解

https://www.lydsy.com/JudgeOnline/problem.php?id5289 https://www.luogu.org/problemnew/show/P4437 考慮對于a[i]m,a[m]n,我們令p[j]i,p[k]m(一定會有一對(j,k)滿足這個條件的),則我們會有p[k]a[p[j]],此時我們要…

集成學習-Adaboost

Adaboost 中文名叫自適應提升算法,是一種boosting算法。 boosting算法的基本思想 對于一個復雜任務來說,單個專家的決策過于片面,需要集合多個專家的決策得到最終的決策,通俗講就是三個臭皮匠頂個諸葛亮。 對于給定的數據集&#…

主動給團隊或用戶安裝Teams App

在寫這篇文章的時候,這個新功能還處在 Public Review,這意味著可能(很小的可能性)這里寫的方法在正式發布前還會有一些改動。 之前有一些做teams app開發的朋友問過我,能不能主動給一個team或者一個用戶安裝一個指定的…

thinkphp5多級控制器是什么?怎么使用?

thinkphp5多級控制器是什么?怎么使用? 一、總結 1、多級控制器是讓控制器的級數變成多級,也就是controller目錄下可以新建其它目錄。 2、使用的話注意目錄下的控制的的命名空間(加上目錄名)(namespace app\…

給Teams消息附加圖片的三種方式

Teams消息支持三種不同的方式來添加圖片,這篇文章我們來一起看一下這三種方式。 Inline圖片 var imagePath Path.Combine(Environment.CurrentDirectory, "abc.png"); var imageData Convert.ToBase64String(File.ReadAllBytes(imagePath)); var image…

4月18日 MySQL學習

正式開始了數據庫的學習 昨天下好的MySQL 今天正式開始學習的,介紹了多種數據庫軟件,當然 學習的這個是開源的 免費的。 DBMS(數據庫管理系統)這就是我們學習的數據庫的軟件 數據庫分為關系型數據庫管理系統和非關系型數據庫管理系統(沒有深入的了解) 今…

企業數據湖構建之旅

摘要:隨著互聯網的發展,數據的規模和類型都呈現一個爆炸性的增長,對于這么多類型的數據,如何進行有效的管理和存儲,包括數據的分析,這是大家要面臨的一個問題。在武漢云棲大會上,阿里云高級產品…

用AzureFunction開發最簡單的Teams Bot

之前我有一篇文章講了如何在azure function上開發最簡單的outgoing webhook,收到一些反饋,建議我介紹一下如果在azure function上開發teams bot,那這篇文章就來講一下如何用function來快速開發bot。 我們先創建一個azure function資源&#…

20189215 2018-2019-2 《密碼與安全新技術專題》第7周作業

課程:《密碼與安全新技術專題》 班級: 1892班 姓名: 李煬 學號:20189215 上課教師:謝四江 上課日期:2019年4月9日 必修/選修: 選修 1.本次講座的學習總結 講座主題:信息隱藏 信息隱藏…

BZOJ1565[NOI2009]植物大戰僵尸——最大權閉合子圖+拓撲排序

題目描述 Plants vs. Zombies(PVZ)是最近十分風靡的一款小游戲。Plants(植物)和Zombies(僵尸)是游戲的主角,其中Plants防守,而Zombies進攻。該款游戲包含多種不同的挑戰系列&#xf…

推送ActivityFeed到Teams

幾個月前,Teams 團隊又推出了新的 Graph API,讓 app 可以給用戶發送 Activity Feed。我們來看看如何做。 首先,我們的app需要使用較新的 manifest 1.7版本,當然如果使用最新的1.8版本就更好了。在manifest json中添加 webApplica…

RecycleView彈性滑動

還有點bug,建議使用 LinearSnapHelper rvPilotList.addOnScrollListener(new RecyclerView.OnScrollListener() {Overridepublic void onScrolled(NonNull RecyclerView recyclerView, int dx, int dy) {super.onScrolled(recyclerView, dx, dy);// …

關于深度學習,這些知識點你需要了解一下

深度學習概述 o 受限玻爾茲曼機和深度信念網絡 o Dropout o 處理不平衡的技巧 o SMOTE:合成少數過采樣技術 o 神經網絡中對成本敏感的學習 深度學習概述 在2006年之前,訓練深度監督前饋神經網絡總是失敗的,其主要原因都是導致…

發送不同類型的ActivityFeed

上一篇文章講到了如何使用最新的Graph API來給一個用戶發送一個簡單的 Activity Feed。我們這篇文章來詳細講一下發送三種不同類型的消息。 發送 Chat 相關的 Activity Notification API 為 POST https://graph.microsoft.com/beta/chats/{chat-id}/sendActivityNotification…

git add * 提示warning: LF will be replaced by CRLF in 解決辦法

在使用git的時候,每次執行 $ git add * 都會提示這樣一個警告消息: 雖然說沒有什么影響吧。 不過就是覺得太礙眼了, 按照這樣設置就沒有問題了: git config core.autocrlf false 這樣設置git的配置后在執行add操作就沒有問題了。 奮斗的年紀你…

git 放棄本地修改,強制拉取更新

開發時,對于本地的項目中修改不做保存操作(或代碼改崩),可以用到Git pull的強制覆蓋,具體代碼如下: git fetch --all git reset --hard origin/master git pull //可以省略 git fetch 指令是下載遠程倉庫最…

發送ActivityFeed的隱藏功能

前兩篇文章介紹了如何發送 activity notification,這篇文章主要介紹兩個隱藏功能,實際上所謂的隱藏功能是指大家在閱讀官方文檔是會忽略的兩個點,但是實際上也是很實用的兩個功能點。 text 類型的 topic 之前文章中提到我們的 activity not…

Dispatch Queue 之 Invoke 當前隊列

 轉載于:https://www.cnblogs.com/huahuahu/p/dispatch-queue-zhi-invoke-dang-qian-dui-lie.html

js或jQuery獲取當前屏幕的各種高度

Javascript: 網頁可見區域寬: document.body.clientWidth 網頁可見區域高: document.body.clientHeight 網頁可見區域寬: document.body.offsetWidth (包括邊線的寬) 網頁可見區域高: document.body.offsetHeight (包括邊線的高) …

Teams數據統計 - 用戶在線離線狀態

前幾天我在wechat的moments里看到以為朋友發了騰迅會議的對用戶個人的年度數據統計,看上去很有大數據感。 實際上 Teams 也具備的類似的能力,只是它把這個能力開放給了開發人員,我們可以通過強大的 Graph API,獲取大量的數據信息&…