我正在尝试将应用上传到Mac应用商店。我使用py2app创建了一个应用程序包,代码签署了框架和可执行文件,使用<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+members?profile_type=4&displayname=&location=&within=50&lat=0&long=0&order=az&show=&1_4_9_alias_gender=&1_4_10_alias_birthdate%5Bmin%5D=&1_4_10_alias_birthdate%5Bmax%5D=&1_1_5_alias_gender=&1_1_6_alias_birthdate%5Bmin%5D=
RewriteRule ^ /acompanhantes [L,R]
# Ignore sitemap folder (passthrough these requests)
RewriteRule ^myapps/ - [L]
# Get rid of index.php
RewriteCond %{REQUEST_URI} /index\.php
RewriteRule (.*) index.php?rewrite=2 [L,QSA]
# Rewrite all directory-looking urls
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*) index.php?rewrite=1 [L,QSA]
# Try to route missing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} public\/ [OR]
RewriteCond %{REQUEST_FILENAME} \.(jpg|gif|png|ico|flv|htm|html|php|css|js)$
RewriteRule . - [L]
# If the file doesn't exist, rewrite to index
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rewrite=1 [L,QSA]
</IfModule>
创建了一个.pkg并对其进行了签名。在使用应用程序加载器之前,一切似乎都很好这是我收到的错误消息:
productbuild
经过多次反复试验,我将可能存在的问题缩小到一个模块。我的应用程序使用matplotlib来创建图形。因为我使用matplotlib,所以我必须包含numpy模块(它是一个依赖项)。只有当numpy包含在应用程序中时,我才会收到上述错误。一旦我从Package Summary:
1 package(s) were not uploaded because they had problems:
/var/folders/0n/tcm_mnqx7xz7x4z87_96y88r0000gn/T/2202BA63-472B-4357-9F4C-4127EA0E2E25/1050509510.itmsp - Error Messages:
ERROR ITMS-90135: "The executable could not be re-signed for submission to the App Store. The app may have been built or signed with non-compliant or pre-release tools."
删除它的文件夹,错误就会消失,应用程序开始上传。但是,因为现在删除了numpy,我的应用程序不再有效。
我的问题
我尝试过欺骗matplotlib,认为numpy仍然存在,只需添加“空”文件(例如:将numpy中的appName/Contents/Resources/lib/python3.4/numpy
设为空文档),但没有成功。
以下是我为matplotlib导入的模块列表:
__init__.py
我正在使用:
Python 3.4, OSX 10.10.5, Application Loader 3.2(也尝试过3.0)
答案 0 :(得分:0)
我设法用Apple的应用程序加载器解决了这个问题。正如我对原始问题的一些回答中所提到的,numpy与matplotlib的集成过于深入。没有简单的方法来重写,替换或删除numpy。要解决来自应用程序加载器的错误消息,您需要从numpy中删除一个特定文件。相关文件为libnpymath.a
,可在文件夹appName/Contents/Resources/lib/python3.4/numpy/core/lib
中找到。一旦删除它,应用程序加载器就不再对你尖叫(至少对于那个特定的问题)。
我的应用程序似乎在没有删除文件的情况下工作得很好。