当前位置:首页 » 编程语言 » 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