[
  {
    "path": "README.md",
    "content": "# iOS_resign_scripts\nScripts for resign iOS App (With Framework and dylib included). Only works on Mac OS X\n\n## Requirement\n\nXcode command line tool\n\n## Usage\n\n* ios_resign_from_app_to_ipa\n\nAssume folder app-extracted is the folder that created by running `unzip app.ipa -d app-extracted`\n```\n$ ls app-extracted\nMETA-INF             Payload              iTunesArtwork        iTunesMetadata.plist\n```\n\nThen it should be use like below:\n```\n$ ios_resign_from_app_to_ipa app-extracted $Developer_code_sign $mobileprovision $target_ipa_related_path\n```\n\nexample:\n```\n$ ios_resign_from_app_to_ipa app-extracted \"iPhone Developer: hengjie chen (XXXXXXXX)\" embedded.mobileprovision Testerhome-resigned.ipa\n```\n\n* ios_resign_with_app\n\nUsage:\n```\n$ ios_resign_with_app $source_app_file $Developer_code_sign $mobileprovision $target_app_related_path\n```\n\nExample:\n```\n$ ios_resign_with_app Testerhome.app \"iPhone Developer: hengjie chen (XXXXXXXX)\" embedded.mobileprovision Testerhome-resigned.app\n```\n\n* ios_resign_with_ipa\n\nUsage:\n```\n$ ios_resign_with_ipa $source_ipa_file $Developer_code_sign $mobileprovision $target_app_related_path\n```\n\nExample:\n```\n$ ios_resign_with_ipa Testerhome.ipa \"iPhone Developer: hengjie chen (XXXXXXXX)\" embedded.mobileprovision Testerhome-resigned.ipa\n```\n\n# Thanks\n\nThanks http://www.xgiovio.com/blog-photos-videos-other/blog/resign-your-ios-ipa-frameworks-and-plugins-included/ . I created these scripts beyond it.\n"
  },
  {
    "path": "ios_resign_from_app_to_ipa",
    "content": "# !/bin/bash\n# from http://www.xgiovio.com/blog-photos-videos-other/blog/resign-your-ios-ipa-frameworks-and-plugins-included/\n\nSOURCEAPPFOLDER=\"$1\"\nDEVELOPER=\"$2\"\nMOBILEPROV=\"$3\"\nTARGET=\"$4\" # target ipa name(relative path)\n# ENTITLEMENTS=\"$5\"\n\n# unzip -qo \"$SOURCEAPPFOLDER\" -d extracted\n\n# APPLICATION=$(ls extracted/Payload/)\n\ncp -r \"$SOURCEAPPFOLDER\" extracted\n\nAPPLICATION=$(ls extracted/Payload/)\n\ncp \"$MOBILEPROV\" \"extracted/Payload/$APPLICATION/embedded.mobileprovision\"\n\necho \"Resigning with certificate: $DEVELOPER\" >&2\nfind -d extracted  \\( -name \"*.app\" -o -name \"*.appex\" -o -name \"*.framework\" -o -name \"*.dylib\" \\) > directories.txt\nsecurity cms -D -i \"extracted/Payload/$APPLICATION/embedded.mobileprovision\" > t_entitlements_full.plist\n/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' t_entitlements_full.plist > t_entitlements.plist\n#/usr/libexec/PlistBuddy -c 'Print:application-identifier' t_entitlements.plist > t_entitlements_application-identifier   #save developer application-identifier to file\n#/usr/libexec/PlistBuddy -c 'Print:com.apple.developer.team-identifier' t_entitlements.plist > t_entitlements_com.apple.developer.team-identifier  #save com.apple.developer.team-identifier application-identifier to file\nwhile IFS='' read -r line || [[ -n \"$line\" ]]; do\n    #/usr/bin/codesign -d --entitlements :-  \"$line\" > t_entitlements_original.plist    #save original entitlements from the app\n    #/usr/libexec/PlistBuddy -x -c 'Import application-identifier t_entitlements_application-identifier' t_entitlements_original.plist #overwrite application-identifier\n    #/usr/libexec/PlistBuddy -x -c 'Import com.apple.developer.team-identifier t_entitlements_com.apple.developer.team-identifier' t_entitlements_original.plist #overwrite com.apple.developer.team-identifier\n    /usr/bin/codesign --continue -f -s \"$DEVELOPER\" --entitlements \"t_entitlements.plist\"  \"$line\"\ndone < directories.txt\n\necho \"Creating the Signed IPA\"\nxcrun -sdk iphoneos PackageApplication -v extracted/Payload/$APPLICATION  -o `pwd`/\"$TARGET\"\necho \"Created ipa $TARGET\"\n\nrm -rf \"extracted\"\nrm directories.txt\nrm t_entitlements.plist\nrm t_entitlements_full.plist\n#rm t_entitlements_original.plist\n#rm t_entitlements_application-identifier\n#rm t_entitlements_com.apple.developer.team-identifier\n"
  },
  {
    "path": "ios_resign_with_app",
    "content": "# !/bin/bash\n# from http://www.xgiovio.com/blog-photos-videos-other/blog/resign-your-ios-ipa-frameworks-and-plugins-included/\n\nSOURCEAPP=\"$1\"\nDEVELOPER=\"$2\"\nMOBILEPROV=\"$3\"\nTARGET=\"$4\" # target app name\n# ENTITLEMENTS=\"$5\"\n\n# unzip -qo \"$SOURCEAPP\" -d extracted\n\n# APPLICATION=$(ls extracted/Payload/)\n\ncp -r \"$SOURCEAPP\" \"tmp.app\"\n\nAPPLICATION=\"tmp.app\"\n\ncp \"$MOBILEPROV\" \"$APPLICATION/embedded.mobileprovision\"\n\necho \"Resigning with certificate: $DEVELOPER\" >&2\nfind -d $APPLICATION  \\( -name \"*.app\" -o -name \"*.appex\" -o -name \"*.framework\" -o -name \"*.dylib\" \\) > directories.txt\nsecurity cms -D -i \"$APPLICATION/embedded.mobileprovision\" > t_entitlements_full.plist\n/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' t_entitlements_full.plist > t_entitlements.plist\n#/usr/libexec/PlistBuddy -c 'Print:application-identifier' t_entitlements.plist > t_entitlements_application-identifier   #save developer application-identifier to file\n#/usr/libexec/PlistBuddy -c 'Print:com.apple.developer.team-identifier' t_entitlements.plist > t_entitlements_com.apple.developer.team-identifier  #save com.apple.developer.team-identifier application-identifier to file\nwhile IFS='' read -r line || [[ -n \"$line\" ]]; do\n    #/usr/bin/codesign -d --entitlements :-  \"$line\" > t_entitlements_original.plist    #save original entitlements from the app\n    #/usr/libexec/PlistBuddy -x -c 'Import application-identifier t_entitlements_application-identifier' t_entitlements_original.plist #overwrite application-identifier\n    #/usr/libexec/PlistBuddy -x -c 'Import com.apple.developer.team-identifier t_entitlements_com.apple.developer.team-identifier' t_entitlements_original.plist #overwrite com.apple.developer.team-identifier\n    /usr/bin/codesign --continue -f -s \"$DEVELOPER\" --entitlements \"t_entitlements.plist\"  \"$line\"\ndone < directories.txt\n\necho \"Creating the Signed APP\"\nmv tmp.app \"$TARGET\"\necho \"Created app: $TARGET\"\n\n# rm -rf \"extracted\"\nrm directories.txt\nrm t_entitlements.plist\nrm t_entitlements_full.plist\n#rm t_entitlements_original.plist\n#rm t_entitlements_application-identifier\n#rm t_entitlements_com.apple.developer.team-identifier\n"
  },
  {
    "path": "ios_resign_with_ipa",
    "content": "# !/bin/bash\n# from http://www.xgiovio.com/blog-photos-videos-other/blog/resign-your-ios-ipa-frameworks-and-plugins-included/\n\nSOURCEIPA=\"$1\"\nDEVELOPER=\"$2\"\nMOBILEPROV=\"$3\"\nTARGET=\"$4\"\n \nunzip -qo \"$SOURCEIPA\" -d extracted\n \nAPPLICATION=$(ls extracted/Payload/)\n \ncp \"$MOBILEPROV\" \"extracted/Payload/$APPLICATION/embedded.mobileprovision\"\n \necho \"Resigning with certificate: $DEVELOPER\" >&2\nfind -d extracted  \\( -name \"*.app\" -o -name \"*.appex\" -o -name \"*.framework\" -o -name \"*.dylib\" \\) > directories.txt\nsecurity cms -D -i \"extracted/Payload/$APPLICATION/embedded.mobileprovision\" > t_entitlements_full.plist\n/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' t_entitlements_full.plist > t_entitlements.plist\n#/usr/libexec/PlistBuddy -c 'Print:application-identifier' t_entitlements.plist > t_entitlements_application-identifier   #save developer application-identifier to file\n#/usr/libexec/PlistBuddy -c 'Print:com.apple.developer.team-identifier' t_entitlements.plist > t_entitlements_com.apple.developer.team-identifier  #save com.apple.developer.team-identifier application-identifier to file\nwhile IFS='' read -r line || [[ -n \"$line\" ]]; do\n    #/usr/bin/codesign -d --entitlements :-  \"$line\" > t_entitlements_original.plist    #save original entitlements from the app\n    #/usr/libexec/PlistBuddy -x -c 'Import application-identifier t_entitlements_application-identifier' t_entitlements_original.plist #overwrite application-identifier\n    #/usr/libexec/PlistBuddy -x -c 'Import com.apple.developer.team-identifier t_entitlements_com.apple.developer.team-identifier' t_entitlements_original.plist #overwrite com.apple.developer.team-identifier\n    /usr/bin/codesign --continue -f -s \"$DEVELOPER\" --entitlements \"t_entitlements.plist\"  \"$line\"\ndone < directories.txt\n \necho \"Creating the Signed IPA\"\ncd extracted\nzip -qry ../extracted.ipa *\ncd ..\nmv extracted.ipa \"$TARGET\"\n \nrm -rf \"extracted\"\nrm directories.txt\nrm t_entitlements.plist\nrm t_entitlements_full.plist\n#rm t_entitlements_original.plist\n#rm t_entitlements_application-identifier\n#rm t_entitlements_com.apple.developer.team-identifier\n\n"
  }
]