pos機電子簽名設置,Pyinstaller 版

 新聞資訊  |   2023-05-17 12:57  |  投稿人:pos機之家

網上有很多關于pos機電子簽名設置,Pyinstaller 版的知識,也有很多人為大家解答關于pos機電子簽名設置的問題,今天pos機之家(www.tonybus.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機電子簽名設置

pos機電子簽名設置

【起因】

根據蘋果官方的說明,自 MacOS 10.15 起,所有從互聯網下載的未公證的 app,默認將無法被打開,因此,在 App Store 外分發的 app,也必須在發布前,將 app 上傳到蘋果的服務器進行公證。

使用 xcode 自帶 archive 工具可以很方便地進行公證,但公司的 app 是使用 python + pyqt5 開發的,沒有辦法使用 xcode 進行公證, 因此,我花時間,詳細研究了一下 python 的打包工具 pyinstaller,以及 macOS 的認證命令, 最終完美解決了 python 程序的公證問題。

【工作環境】

下面介紹的公證方法,其工作環境要求如下:

macOS CLI ( xcode-select —install )Xcodepyinstaller (> 4.5)蘋果開發者賬號

公證的基本思路如下:

第一步:配置開發者證書,并對外部引用程序進行簽名第二步:pyinstaller 打包程序, 并在打包過程中,對代碼、外部引用庫、外部引用文件進行簽名第三步:轉換 app 程序為 dmg 文件第四步:xcrun altool 上傳 dmg 文件到蘋果服務器,進行公證第五步:xcrun altool 查詢公證狀態第六步:xcrun stapler 證書蓋章第七步:正式發布 dmg 程序

下面就詳細介紹一下每一步是如何操作的:

【1. 證書及簽名】配置開發者證書

第一步:打開 鑰匙串訪問

第二步:進入 鑰匙串訪問,在菜單中選擇 ”證書助理“ -> "從證書頒發機構請求證書…"

第三步: 彈窗中填寫申請信息

填寫完成后,保存到本地,文件名為 CertificateSigningRequest.certSigningRequest

第四步:登錄蘋果開發者網站

(https://developer.apple.com/account/), 進入 Certificates, IDs & Profiles 頁面,點擊添加按鈕,選擇 Developer ID Application

上傳剛才添加的 CertificateSigningRequest.certSigningRequest 文件

上傳成功后點擊下載,將證書保存到本地。

第五步:雙擊下載到本地的證書,添加到鑰匙串,如下:

第六步:設置證書的訪問權限

至此,蘋果的開發者證書已安裝完成

外部引用程序簽名

codesign -s "Developer ID Application: XXXXX (4J45KSVBG8)" -v --deep --timestamp -o runtime 外部引用程序

其中 "Developer ID Application: XXXXX (4J45KSVBG8)" 就是鑰匙串里 證書名稱

驗證簽名

codesign -dvvv 外部引用程序

輸出中,看到證書名稱及簽名成功

【2. pyinstaller 打包】打包代碼

# 生成編譯的 spec 文件pyi-makespec -Dw --add-data "../src/*:src" --key "1234567812345678" --osx-bundle-identifier "com.xxx.xxxxx" --codesign-identity "Developer ID Application: XXXXX (4J45KSVBG8)" --osx-entitlements-file entitlements.plist -i “icon.icns" -n “MyAPP" ../main.py# compiler source codepyinstaller --clean -y MyAPP.spec

注意:上面命令中,一定要使用 --osx-bundle-identifier 來指定 app 的 bundle-id, 和 --codesign-identity 來指定開發者賬號,如果不指定的話,app 的外部引用的庫將無法進行簽名, 公證時將報下列錯誤。

【3. 打包層 dmg】

./dmg-create \\--volname “XXXX" \\--volicon “xxxx.icns" \\--background “xxxx.png" \\--window-pos 200 120 \\--window-size 569 400 \\--icon-size 80 \\--icon MyAPP.app 150 150 \\--hide-extension MyAPP.app \\--app-drop-link 430 150 \\MyApplication.dmg \\./dist

【4. 公證】

公證

# 存儲 App 專用密碼xcrun altool --store-password-in-keychain-item "AC_PASSWORD" -u "your-username" -p "your-password"# 上傳 dmg 到蘋果服務器公證xcrun altool --notarize-app -t osx -f MyApplication.dmg --primary-bundle-id com.xxx.xxxxx -u your-username --password "@keychain:AC_PASSWORD"

注意:上面的 password, 是 App 專用密碼, 因此,需要創建一個App 專用密碼, 創建的方法如下:

登錄蘋果 appleid 網站 (https://appleid.apple.com/account/)

創建成功后,一定記下生成的 App 專用密碼,方便后面使用。如果沒有記下的話,再次點擊”生成密碼…”, 會生成新的密碼。

【5 查詢公證結果】

盡管官方說在一小時內,但一般很快,幾分鐘公證就會完成。完成后,下列命令查詢公證結果

# 檢查處理結果xcrun altool --notarization-info "7ad11612-c807-4899-be59-ea535317a3b4" -u your-username --password "@keychain:AC_PASSWORD"

如果公證成功,會發郵件給你。如果公證失敗的話,上述命令會返回日志 URL,通過訪問日志 URL ,可以了解不通過的原因。

注: 7ad11612-c807-4899-be59-ea535317a3b4,這個是公證時返回的 ID, 這個ID 每次公證都是不同

【6. 文件蓋章】

在上面的公證步驟中,Apple 已經創建了一張“票證”,也是一個數據庫記錄,它與應用程序的簽名相匹配,表示應用程序已經公證完成。當 MacOS 運行此應用程序時,MacOS 會聯系 Apple 服務器并索要“票證”。如果存在這樣的票證,則該應用程序被視為“合法”的。這個過程在程序的生命周期中,只會發生一次,MacOS 會把“票證”緩存,為之后應用程序使用。

如果想加速這個初始應用程序的執行,或者希望能夠在離線時運行應用程序,我們需要將這張“票證”裝訂到應用程序中,下載票證并將其附加到應用程序中方法如下:

# 給文件蓋章xcrun stapler staple MyApplication.dmg【7. APP 分發】

在最后分發前,我們最后確認一下應用程序是否被公證

檢驗簽名公證

# 查詢公證spctl --verbose=4 --assess --type execute MyApplication.dmg輸入如下:MyApplication.dmg: acceptedsource=Notarized Developer IDorigin=Developer ID Application: YourName (XXX)

此命令直接使用 Gatekeeper 來評估應用程序是否正確簽名和公證。如果顯示 accepted 的,證明公證已完成。

至此,就可以把 APP 分發給所有用戶了。(完)

以上就是關于pos機電子簽名設置,Pyinstaller 版的知識,后面我們會繼續為大家整理關于pos機電子簽名設置的知識,希望能夠幫助到大家!

轉發請帶上網址:http://www.tonybus.com/news/47502.html

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。