修改ipa

目前遇到一个需求:给定一个ipa包,需要修改包里面的plist文件,在重新签名打包。

http://www.modelmetrics.com/tomgersic/codesign-re-signing-an-ipa-between-apple-accounts/

https://gist.github.com/2878446

http://www.ketzler.de/2011/01/resign-an-iphone-app-insert-new-bundle-id-and-send-to-xcode-organizer-for-upload/

https://github.com/maciekish/iReSign

http://stackoverflow.com/questions/6569120/resigning-an-application-outside-xcode


2013.1.15[done] 【python版】

[plain]  view plain copy
  1. #1 解压  
  2. cmd = "unzip -q %s" %(IN_FILE)  
  3. loginfo(cmd)  
  4. os.system(cmd)  
  5.   
  6. #2 删除_CodeSignature  
  7. cmd = "rm -rf  Payload/xxx.app/_CodeSignature"  
  8. loginfo(cmd)  
  9. os.system(cmd)  
  10.   
  11. #3 替换mobileprovision  
  12. cmd = "cp %s Payload/xxx.app/embedded.mobileprovision" %(PROVISION)  
  13. loginfo(cmd)  
  14. os.system(cmd)  
  15.   
  16. #4 签名  
  17. cmd = "%s -f -s \"xxxx\" --resource-rules \"Payload/xxx.app/ResourceRules.plist\" Payload/xxx.app" %(CODESIGN)  
  18. loginfo(cmd)  
  19. os.system(cmd)  
  20.   
  21. # 压缩  
  22. cmd = "zip -rqm %s Payload" %(OUT_FILE)  
  23. loginfo(cmd)  
  24. os.system(cmd)  
  25.   
  26. loginfo('success')  

PS:

附带android修改apk的过程[win版]

1.apktool解压apk

[plain]  view plain copy
  1. call tools\apktool d -f %APK% %TEMP%  

2.sed.exe修改AndroidManifest.xml

[plain]  view plain copy
  1. call tools\sed -i -e /XXX/d %TEMP%/AndroidManifest.xml -e "/\/application/i\<meta-data android:name=\"XXX\" android:value=\"%XXX%\"/>" "%TEMP%/AndroidManifest.xml"  

3.apktool压缩apk

[plain]  view plain copy
  1. call tools\apktool b %TEMP% %TEMP_APK%  

4.jarsigner签名

[plain]  view plain copy
  1. call tools\jarsigner\jarsigner -verbose -keystore key\%KEY_NAME% -storepass %KEY_PASSWORD% -signedjar unaligned.apk %TEMP_APK% %KEY_ALIAS% > NUL  

5.zipalign对齐

[plain]  view plain copy
  1. call tools\zipalign -v 4 unaligned.apk out.apk > NUL  

你可能感兴趣的:(修改ipa)