當前位置:首頁 » 編程語言 » iospython打包

iospython打包

發布時間: 2023-05-27 22:07:38

『壹』 python 腳本實現自動配置iOS工程證書文件

       在實現iOS項目的自動打包工程中,我們需要配置好工程的證書文件信息,為了能夠自動的根據bundle id來設置不同的profile文件,我們可以通過腳本文件來修改工程的projext.pbxproj文件幫助我們進行自動設置。

1. Project.pbxproj

Xcode項目中的xxx.xcodeproj其實是一個文件夾,右鍵單擊xxx.xcodeproj,顯示包內容:

Project.pbxproj的解析

關於這個配置文件的結構,請參考 project.pbxproj,最熟悉的」陌生人 (http://www.olinone.com/?p=215),解析該文件可以使用現有的解析工具mod-pbxproj,該工具是一個python的腳本。其github地址為: https://github.com/kronenthaler/mod-pbxproj 。

為了修改不同taget的profile,我們需要知道這些配置在文件中的具體位置,不難發現:

我們的目標是為不同的bundle id設置不同的profile,所以只需要找到不同target的XCBuildConfiguration,修改其中PROVISIONING_PROFILE的值即可。通過分析project.pbxproj文件結構,你會發現其找到這些target的buildSettings的路徑如下:

rootObject=> PBXNativeTarget=> XCConfigurationList=> XCBuildConfiguration。

XCBuildConfiguration會有Debug和Release兩個版本,這里我們以修改Release版本的為例進行說明。

2. Python腳本修改profile

需要在工程目錄下配置如下腳本文件,通過從json文件中讀取配置信息,然後根據不同的bundle id來設置不同的profile文件和其他欄位信息。其中xcode_configurator_profile.py為修改profile的腳本文件,profile.json為配置的證書信息。demo如下圖所示:

首先在profile.json文件中配置好bundle id和對應的profile文件,如下如所示:

然後在工程目錄下執行xcode_configurator_profile.py:

檢查profile修改結果:

如果設置了以後有任何問題, 你可以在對應的xxx.xcodeproject下找到對應的備份。

『貳』 如何將python文件打包成exe文件

1.需要安裝 py2exe
2.示例代碼:
#exetest.py#創建一個gui界面,只用一個標簽和按鈕,無功能from Tkinter import *win = Tk()
label = Label(win,text = 'hello')
btn = Button(win,text = 'click')
label.pack()
btn.pack()
win.mainloop()

3.配置代碼:
#exeset.pyfrom distutils.core import setupimport py2exe
setup(console=["exetest.py"]) #運行的時候會有CMD窗口#或者setup(windows=["exetest.py"]) 運行的時候只有GUI

4.執行轉換
首先定位到文件目錄,然後運行CMD
python exeset.py py2exe

執行完畢之後會在該目錄中生成一個文件夾dist,裡面是生成的exe程序和相關依賴
5.使用pyinstaller
感覺pyinstaller比py2exe更好用,下載pyinstaller後解壓就好,然後把一個demo.py復制到目錄下,定位到位置後輸入命令:
python pyinstaller.py --onefile --windowed --icon=path\x.ico demo.py

其中 --onefile 表示只生成一個.exe文件,相關依賴都打包了, --windowed 表示生成的是GUI,否則是帶命令窗口的, --icon 是設置.exe的圖標。這些都是可選項。

『叄』 python自動打包ipa

使用如下:
cd到項目鬧畝派亂目錄
把腳本放液羨森入項目目錄下
在終端運行(需要安裝python環境)

『肆』 windows系統的python打包程序,在ios中能運行嗎

無fa可說
關注
python開發的程序在ios上應用_Python開發iOS程序 原創
2020-12-29 09:58:52

無fa可說

碼齡4年

關注
對,你沒有看錯,就是使用Python開發iOS程序!

我們見過使用JS、Lua、Ruby開發iOS程序的,但是基本沒有見過使用Python開發iOS程序(軟體)的,這是為什麼?關於這個問題,我後面會回答。

那麼,怎麼用Python開發iOS程序呢?其實我們最主要解決的就是下面幾件事情:

在iOS App中安裝Python解釋器。

搭建Python和objc通信的橋梁。

如何配置工程並開發。

如果不使用UIKit這些,那麼就要使用OpenGL ES這些了,這種方式,主要是用於開發游戲的,我們這里不涉及這些。

當然,以下所有內容都是在一台已經安裝了Xcode的Mac上進行的。

在iOS App中安裝Python解釋器

Python-iOS-support

pybee開源了一個可以嵌入到iOS工程中的Python編譯腳本,具體位置在這:

默認是使用Python 3.4.2,編譯x86_64、i386、ARMv7、ARMv7s、ARM64共5個版本,然後打成一個臃腫包,可選framework或者.a。

如果真的要用於生產環境的話,只要把Makefile中的

TARGETS-iOS=iphonesimulator.x86_64iphonesimulator.i386iphoneos.armv7iphoneos.armv7siphoneos.arm64

修改為:

TARGETS-iOS=iphoneos.armv7iphoneos.arm64

我們只需要支持ARMv7和ARM64即可,ARMv7s可以兼容ARMv7,所以可以讓包小一些。

『伍』 【python】打包成MAC APP

寫了一個python小程序,想打包成可執行的APP,看網上寫的教程很簡單,大概就是下面這個樣子。

1.生成setup.py文件

生成的默認setup.py內容如下:

2.打包

執行後會生成一個build和dist文件夾,dist下的main.app就是生成的可執行程序,雙擊即可運行。
但實際上,稍稍復雜一點的工程慶毀按照默認的setup.py打包,執行的時候都是會出錯的。
原本的設想是會把工程包按原本的目錄結構全部打包,但實際上需要用到的圖片,音源,文本等等,在執行的時候都會報錯找不到,因為都是要手動配置到setup.py里才能被打包。

如果不知道自己的APP為什麼會報錯,可用以下命令執行APP,就可以看到報錯信息:

所以需要修改setup.py如下:

具體的參數解釋: 官方文檔
icns的生成參考: 【MAC】生成MAC APP圖標icns

================================

追加一個打包後運行時遇到的一個讓我解決了很久的問題。
報錯信息如下:

查了很多信息,應該是動態鏈接庫的問題,當你的依賴庫里又去引用另一個庫的時候,會出現這種找不到的情況。但是網上的解決辦好判法我都沒有試成功,尤其我要保證我的APP去了任何一台機器都可以直接運行。所以最後嘗試了最傻的辦法。就是直接把這個找不到的庫譽襪備打包進我的APP,雖然這個libffi.8.dylib應該是一個shared lib.

所以修改setup.py文件里追加如下設置:

重新打包後,libffi.8.dylib就會自動出現在Frameworks下面,本機雙機運行正常,直接傳到其它機器運行也正常了。

『陸』 如何將一整個python工程打包

1、下載並蘆轎安裝py2exe,可下載最新版本。

2、編寫安裝腳本,比較簡單,不過多解釋,如下:

Screenshot_setup.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from distutils.core import setup
import py2exe

includes = ["encodings", "encodings.*"]
data_files = ['CameraDll.dll']
options = {"py2exe":
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes

}
}

setup(
version = "1.0",
description = "Screenshot Tool",
name = "Screenshot Tool",
options = options,
zipfile=None,
data_files = data_files,
console=[{"script": "陪銷肆Screenshot.py", "icon_resources": [(1, "Screenshot.ico")] }]
)
各參數含義見第5小節或執行python命令行下執行help(py2exe)查看。

3、打包程序:

a、將要找包的程序、文件和打包腳本放在同一目錄下,如下:

E:\tmp\pyexe_tmp>tree /F
文件夾 PATH 列表
卷序列號碼為 0007F240 101F:F68D
E:.
CameraDll.dll
screenshot.ico
Screenshot.py
screenshot_setup.py
沒有子文件夾

E:\tmp\pyexe_tmp>
b、執行打包腳本:
E:\tmp\pyexe_tmp>python screenshot_setup.py py2exe
python screenshot_setup.py py2exe
running py2exe
creating E:\tmp\pyexe_tmp\build
creating E:\tmp\pyexe_tmp\build\bdist.win32
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\collect-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\bundle-2.6
creating E:\斗滲tmp\pyexe_tmp\build\bdist.win32\winexe\temp
creating E:\tmp\pyexe_tmp\dist
*** searching for required moles ***
*** parsing results ***
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
writing byte-compilation script 'e:\tmp\tmp1ecbcw.py'

『柒』 python怎麼打包整個項目

distutils - Python自帶的基本安裝工具, 適用於非常簡單的應用場景使用, 不支持依賴包的安裝

通過distutils來打包,生成安裝包,安裝python包等工作,需要編寫名為setup.py python腳本文件。

setuptools - 針對 distutils 做了大量擴展, 尤其是加入了包依賴機制。不支持python3,安裝完setuptools後會有easy_install

distribute - 類似於setuptools,支持python3,安裝完distribute後會有easy_install。

easy_install - setuptools 和 distribute 自帶的安裝腳本, 也就是一旦setuptools或distribute安裝完畢, easy_install 也便可用了。

pip - 目標是取代easy_install。easy_install 有很多不足: 安裝事務是非原子操作, 只支持 svn, 沒有提供卸載命令, 安裝一系列包時需要寫

腳本; pip 解決了以上問題, 已儼然成為新的事實標准, virtualenv 與它已經成為一對好搭檔;

distutils2 - setuptools 和 distribute 的誕生是因為 distutils 的不濟, 進而導致目前分化的狀況。它將成為 Python 3.3 的標准庫

packaging , 並在其它版本中以distutils2 的身份出現; 換句話說, 它和 pip 將聯手結束目前混亂的狀況。

virtualenv - 用來創建隔離的python環境,處理python環境的多版本和模塊依賴。

常識

sudo apt-get install 安裝的package存放在 /usr/lib/python2.7/dist-packages目錄中

pip 或者 easy_install安裝的package存放在/usr/local/lib/python2.7/dist-packages目錄中

手動從源代碼安裝的package存放在site-packages目錄中。

更多學習內容,請點擊Python學習網!

『捌』 將python打包成exe

return 應該放在一個函數裡面的,

將python打包成exe的程序有很多,比如py2exe、PyInstaller等等,但是到目前為止,它們對python3.1支持的都不好,所以這里我要介紹一下cx_freeze 4.2.2,它還能支持跨平台,可以在windows和linux運行。
cx_freeze的下載網址為 http://sourceforge.net/projects/cx-freeze/files/ ,要根據已安裝的python版本進行選擇。比如我使用的是python3.1,所以就要下載cx_Freeze-4.2.2.win32-py3.1.msi這個文件。運行這個安裝包後,相關程序就會被拷貝到python的目錄下。主要在兩個地方,一個是C:/Python31/Scripts,另一個是C:/Python31/Lib/site-packages/cx_Freeze

在以前版本的cx_Freeze中,是通過FreezePython.py這個腳本將py轉換為exe,而在4.2.2這個版本中,FreezePython.py已經不見了,主要的工作交給了C:/Python31/Scripts下的cxfreeze.bat來完成。
使用cx_Freeze完成python打包exe主要有兩種方法:
第一種,直接運行cxfreeze.bat通過:
先進入cmd命令行,進入C:/Python31/Scripts目錄,然後運行cxfreeze.bat -h 就可以看到它的使用說明了。我們可以用cx_freeze自己的sample做個試驗。
進入到c:/python31/scripts/下,運行
cxfreeze C:/Python31/Lib/site-packages/cx_Freeze/samples/PyQt4/PyQt4app.py --install-dir=d:/123
pytqt4app.py就會被打包成exe,並且它所用到的庫文件,也被一並考到了d:/123目錄下。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:944
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:742
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372