欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

XZ_Python3之使用Python批量打企业ipa包遇到的问题和解决

程序员文章站 2022-05-12 16:20:02
如果电脑上没有Python环境,可以按照这个安装一遍 我的是安装的python2,升级到python3需要在终端输入:brew upgrade python 安装完3.0之...

如果电脑上没有Python环境,可以按照这个安装一遍

我的是安装的python2,升级到python3需要在终端输入:brew upgrade python
安装完3.0之后,终端给的切换指令:
Ifyou need Homebrew's Python 2, `brew install python@2`.

执行Python语句

终端输入:python3 pack.py

以下是我遇到的问题及解决方法:

问题1:执行重签名指令,重签名失败 ==>iPhone Developer: xxx (xxx): ambiguous (matches "iPhoneDeveloper: xxx)

解决:出现原因:钥匙串中有两个一摸一样的证书,删除一个,

问题2:** EXPORT FAILED**

打包成功,导出错误:因为推送需要描述文件,而使用这个打包不能使用Xcode自动生成的描述文件,需要在开发者账号中创建好并下载安装到Xcode,然后在导出的plist中做出修改:DistributionSummary.plist 和 ExportOptions.plist 是Xcode打包之后生成的那个,可以拿来直接用,如果自动创建了描述文件,就需要在ExportOptions.plis中添加provisioningProfiles字典,在字典中添加键值对,其中,key和bundleid一样 value和描述文件的名字一样。

问题3:IndentationError: expected an indented block

解决:说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。
注意:在Python中有冒号的下一行往往要缩进,该缩进就缩进

问题4:ModuleNotFoundError: No module named 'xlrd'

解决:该错误是因为Excel需要单独的模块支持,所以需要安装xlrd模块,
Python3可以在命令提示符中输入:pip3install xlrd

Python2直接输入:pip install xlrd

问题5:ModuleNotFoundError: No module named 'tkMessageBox'

很有可能是因为找到的代码是python2.x的,然而却把它放在python3.x的环境下跑。其实上面的Tkinter库在python3里是tkinter,只是首字母变小写了,但是import语句是对大小写敏感的!

import?tkMessageBox??改成from?tkinter?import?messagebox?#对应着tkinter文件夹底下的messagebox.py

则可以写成messagebox.showinfo("title","hello?world")?

问题6:NameError: name 'xrang' is not defined

解决:将代码中for i in xrang(0, lines): 改成 for i in rang(0, lines):;

问题7:创建图形化界面遇到问题:SyntaxError:invalid syntax

解决:root= tk.Tk()

问题8:ModuleNotFoundError: No module named'tkFileDialog'

在顶部引入importtkinter as tk

XZ_Python3之使用Python批量打企业ipa包遇到的问题和解决

问题9:NameError:name 'Entry' is not defined

解决:在Entry前面加上tk.,创建的时候使用tk.Entry进行创建

问题10:NameError: name 'StringVar' is notdefined

解决:在顶部引入tkinter即,from tkinter import *

问题11:AttributeError: module 'os' has noattribute 'startfile'

在Windows?系统上,Python3.X?有一个os.startfile函数,用于模拟双击一个文件的操作

这一操作在非?Windows?系统上不受支持,但是采用?OS X?命令行中实现的open命令来实现类似的效果

# Win32

 import os

 os.startfile(filename) 

# OS X

 import subprocess 

subprocess.call(["open", filename])

后者实现的是执行open 命令,列表对象会以空格隔开的形式组成最终传递给Shell?的命令,更多详细控制可以参考man open

问题12:SyntaxError: invalid syntax

解决:终端输入:sudo easy_install biplist?安装python下的plist库--biplist

问题13:AttributeError: module 'os' has noattribute 'quit'

解决:python交互界面的退出

import sys

sys.exit()

问题14:error: exportArchive: "XXXX.app" requires aprovisioning profile with the Push Notifications and App Groups features.

解决:在Xcode上换成企业版的BundleID和 Team再打包就可以了