使用Ant,我正在尝试在发布模式下构建Android应用程序以进行分发.我的问题出在签署过程中.我使用Export Android Application向导通过Eclipse创建了一个密钥库和别名,如果通过Eclipse导出应用程序,则应用程序已正确签名.当我尝试通过Ant完成相同的过程时,我在build.properties文件中引用了我的密钥库和别名:
key.store=C:\\Users\\a512091\\.android\\release.keystore
key.alias=application
key.store.password=android
key.alias.password=android
Run Code Online (Sandbox Code Playgroud)
构建过程成功,我得到一个Application-release.apk文件.我用jarsigner使这个APK变得非常漂亮,所有文件都有"sm"标签.这是输出的尾部:
jar verified.
Warning:
This jar contains entries whose certificate chain is not validated.
Run Code Online (Sandbox Code Playgroud)
当我尝试将此APK安装到模拟器或设备中时,我得到以下内容:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
Run Code Online (Sandbox Code Playgroud)
Logcat显示我的CSS文件和图像资产上的签名问题:
11-07 11:06:20.060: WARN/PackageParser(58): Exception reading assets/www/css/base.css in /data/app/vmdl48898.tmp
11-07 11:06:20.060: WARN/PackageParser(58): java.lang.SecurityException: META-INF/XXXXX.SF has invalid digest for assets/www/res/droidhdpi/favorite_off.png in /data/app/vmdl48898.tmp
11-07 11:06:20.060: WARN/PackageParser(58): at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:369)
11-07 11:06:20.060: WARN/PackageParser(58): at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:272)
11-07 11:06:20.060: WARN/PackageParser(58): at java.util.jar.JarFile.getInputStream(JarFile.java:392)
11-07 11:06:20.060: WARN/PackageParser(58): at android.content.pm.PackageParser.loadCertificates(PackageParser.java:337)
11-07 11:06:20.060: WARN/PackageParser(58): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:508)
11-07 11:06:20.060: WARN/PackageParser(58): at com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:5885)
11-07 11:06:20.060: WARN/PackageParser(58): at com.android.server.PackageManagerService.access$2100(PackageManagerService.java:134) …Run Code Online (Sandbox Code Playgroud) 我正在构建Cordova 3.5.0应用程序.我使用grunt构建一个缩小的Web应用程序,然后我使用cordova CLI和cordova钩子来构建一个特定于平台的包.我使用了10多个不同的插件,一些Cordova官方插件和一些自定义插件.我想知道如何连接和缩小插件中的JS文件与我的其他第三方库.
执行后,cordova prepare我看到生成的cordova_plugins.js文件包含以下内容:
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
{
"file": "plugins/org.apache.cordova.globalization/www/GlobalizationError.js",
"id": "org.apache.cordova.globalization.GlobalizationError",
"clobbers": [
"window.GlobalizationError"
]
},
{
"file": "plugins/org.apache.cordova.globalization/www/globalization.js",
"id": "org.apache.cordova.globalization.globalization",
"clobbers": [
"navigator.globalization"
]
}
];
module.exports.metadata =
// TOP OF METADATA
{
"org.apache.cordova.globalization": "0.3.1"
}
// BOTTOM OF METADATA
});
Run Code Online (Sandbox Code Playgroud)
我知道如何使用这些插件缩小和生成单个文件,但不知道如何调整cordova构建过程以从单个文件但不同的包中获取所有clobbers.我的第一个想法是所有过程都必须在platforms/<platform>/assets/www文件夹内的AFTER_PREPARE步骤中完成
我被困在通过Procfile在Heroku上运行Django 1.4应用程序。我已经阅读了所有相关文章,并且我确定这不是区分大小写的相关问题,因为我已正确命名为Procfile。这是我的项目结构。注意Procfile与manage.py处于同一级别。
.
??? README.md
??? docs
??? project
? ??? Procfile
? ??? client
? ? ??? __init__.py
? ? ??? __init__.pyc
? ? ??? models.py
? ? ??? templates
? ? ? ??? welcome.html
? ? ??? tests.py
? ? ??? views.py
? ? ??? views.pyc
? ??? manage.py
? ??? wings
? ??? __init__.py
? ??? __init__.pyc
? ??? settings.py
? ??? settings.pyc
? ??? urls.py
? ??? urls.pyc
? ??? wsgi.py
? ??? wsgi.pyc
??? requirements.txt …Run Code Online (Sandbox Code Playgroud)