症狀:外包協作者需要用遠端 Mac 建置 iOS App,但你不確定該開哪些權限。
最快解法:使用獨立身分、只授予完成任務所需的存取權,並預先訂好撤權流程;不要把主帳號、長期有效的簽名私鑰和整台 Mac 的無限制存取一併交出去。若發布憑據無法隔離,就由你保留簽名與正式上傳。

這篇適合需要委託程式碼修改、建置或測試,卻不想交出 Apple 帳號與發布憑據的獨立開發者。
小型團隊負責人和外包技術負責人,也可用下列步驟規劃授權、交付和撤權。

開工前:把外包工作拆成權限邊界

先寫清楚協作者要完成什麼,再決定需要開放哪些資源。不要用「要做 iOS 開發」作為一次授權主機、程式碼倉庫、開發者團隊和發行流程的理由。

建議把工作拆成幾項,各自指定負責人:

  • 修改程式碼:只授權指定倉庫和必要分支。記錄協作者能讀取、提交或管理哪些內容。
  • 遠端建置與測試:提供專案所需的主機連線方式,並確認 macOS 登入身分。不要假設主機帳號隔離就必然隔離了所有金鑰或簽名資產。
  • Apple 團隊資源:依任務檢查 Apple Developer Program 團隊角色,以及 App Store Connect 的使用者角色和 App 存取範圍。這些是不同的權限面向,不應由「能登入」推定已經只取得必要權限。
  • 正式發布:另行指定誰管理簽名材料、誰核准上傳,以及誰負責正式提交。

Apple 說明個人帳號新增的 App Store Connect 使用者,與組織團隊成員可使用的團隊資源並不相同。實際角色能力要按帳號類型和工作內容核對,不能把個人帳號的使用者當成組織團隊成員處理。Apple 對帳號類型與角色的說明

外包開發者需要你的 Apple Developer 帳號嗎?
通常不應交出你的帳號密碼。先確認工作是否真的需要 Apple 團隊資源;若需要,建立可識別的協作者身分,按任務授權。Apple 的角色說明與登入安全指引應分開查閱,避免把共用帳號當成授權機制。Apple Developer 帳號登入與安全說明

首次連線:建立獨立身分與停用責任

不要讓協作者使用你的 macOS 登入帳號、Apple 帳號或長期有效的共用憑據。為每位協作者設定獨立身分,並記下授權人、資源、用途、到期條件和停用負責人。人員更換、任務完成或裝置遺失時,誰負責停權也要先說明。

遠端 Mac 可以為外包人員建立獨立帳號嗎?
應先確認你使用的主機環境實際支援哪些帳號與遠端存取設定,再安排獨立登入。不要只憑「建立了另一個 macOS 使用者」就認定憑據、鑰匙圈或其他系統資源已隔離;這些能力需要在實際環境中核驗。

為程式碼倉庫另設授權,勿因協作者能登入主機就預設其能讀取所有專案。GitHub 組織倉庫提供 Read、Triage、Write、Maintain、Admin 五種角色;依工作需要選取,而非直接授予管理權。GitHub 組織倉庫角色與個別成員存取管理

首次建置:分開驗收主機、程式碼與 Apple 權限

首次登入後先用低風險任務驗證協作範圍。確認協作者能取用指定專案、執行約定的建置或測試,也確認他看不到未授權的倉庫或不需要的系統管理項目。授權記錄和目前的登入帳戶清單要留存;口頭確認不算驗收證據。

用這份清單逐項核對:

  • [ ] 已為協作者建立可識別的獨立身分,沒有交付所有者帳號密碼。
  • [ ] 已記錄遠端 Mac 的登入帳號、連線方式、授權人和停用負責人。
  • [ ] 程式碼倉庫只授予完成任務所需的範圍,並記錄可執行的操作。
  • [ ] 已分別核對 Apple Developer 團隊角色、App Store Connect 角色,以及 App 存取範圍。
  • [ ] 已用測試任務確認協作者能完成工作,且不能存取不相關的專案或管理功能。
  • [ ] 已記下憑據保管人、交付物位置、失效條件和緊急停權聯絡人。

Apple 的角色與 App 存取設定需要分開檢查:使用者角色不等於對所有 App 的存取範圍。可按指定 App 限制存取,並在授權後再次確認實際設定。Apple 的 App 存取範圍設定說明;Apple Developer Program 角色說明

發布交接:由專案方守住簽名與正式提交

把程式碼修改、開發建置、簽名產物交接和正式上傳分開安排。協作者是否需要接觸發布憑據,要看實際流程和風險;不要把憑據當成一般專案檔案,放進倉庫或傳給對方。任何情況下,都不要要求協作者傳送密碼、私鑰或完整令牌。

無法把發布憑據與協作者工作範圍隔開時,由你在受控環境完成簽名和正式上傳。若確實需要 App Store Connect API 金鑰,先確認它是團隊或個人金鑰、可執行的操作、保管人和撤銷方式。Apple 的文件分別說明 API 金鑰建立與管理;官方亦指出,已撤銷的金鑰不能恢復,撤銷前應確認其使用情況與影響。Apple 的 API 金鑰建立說明;Apple 的 App Store Connect API 金鑰管理說明

如何讓外包協作者建置 App,卻不接觸發布證書?
把工作限定為取用程式碼、執行建置與交付產物;由你保管簽名材料,並在自己的受控環境完成簽名與正式上傳。如果建置流程必須在協作者可登入的主機上使用簽名憑據,就先調整流程或把簽名步驟移回專案方,不要假設主機登入隔離會自動保護簽名資產。

合作結束:撤回各入口並確認舊存取失效

刪除一個帳號,不代表整條存取鏈已經中止。按清單逐項檢查主機帳戶與遠端連線方式、程式碼倉庫成員、App Store Connect 使用者、API 金鑰,以及專案內曾使用的臨時憑據。完成後由專案方帳號確認成員清單和仍有效的存取入口,並保存交接記錄與必要的建置產物。

外包結束後要撤回哪些 iOS 開發權限?
撤回所有因該任務開放的主機、倉庫、Apple 團隊、App 存取和 API 金鑰權限,再檢查是否留有臨時憑據。若曾共享憑據或無法確認使用範圍,先限制其存取、評估輪換影響,再按官方程序撤銷或替換。不要在正式發布窗口內未評估影響便撤銷仍在使用的金鑰。

結束合作前可安排一次完整交接演練:由協作者登入、取得指定程式碼、執行約定建置並交付結果;再由專案方撤權,確認舊入口已無法使用。驗收要同時證明協作者做得到授權工作、無法接觸未授權資源,而且專案方能自行接手建置與發布。把連線方式、產物位置、憑據負責人和緊急停權聯絡人寫入交接紀錄。

若你正評估遠端 Mac 是否適合承接外包工作,可先查看 MACCOME 的遠端 Mac 方案,並透過 MACCOME 服務頁了解租用入口。自行購買主機需要承擔硬體成本與維護;借用個人 Mac 會混合個人環境和專案存取;一般雲端建置流程則未必符合你對圖形操作或特定工具的需求。若只是短期委託、缺少合適的 macOS 建置環境,MACCOME 租用遠端 Mac 可作為另一種選擇;簽約前仍要逐項確認主機帳號隔離、交付方式與撤權流程,並由專案方保留無法安全委派的簽名和發布步驟。