IOS 打包、安装、重签名 .app & .ipa
2015-07-01 18:15
686 查看
打包与签名方法
Xcode 工具可以直接打包,不累赘;xcrun 命令打包:
1,清理:
/usr/bin/xcodebuild -target targetName clean
2,编译:
/usr/bin/xcodebuild -target targetName
3,第三步打包:
/usr/bin/xcrun -sdk iphoneos PackageApplication -v path/xxx.app -o ./xxx.ipa
说明:
xcodebuild负责将工程源文件编译成xxx.app
xcrun负责给xxx.app(签名并)打包成xxx.ipa
关于xcrun,直接打包的参数就是 xcrun -sdk iphoneos PackageApplication -v 源app路径 -o 输出的ipa路径,以上两个命令必需在xxx.xcodeproj所在的目录执行。
下面两个命令都可以为应用签名:
xcodebuild -target targetName CODE_SIGN_IDENTITY="iPhone Distribution:XXXXXX" xcrun -sdk iphoneos PackageApplication -v 源app路径 -o 输出的ipa路径 --sign "iPhone Distribution:XXXXXX"
证书与描述文件放在build.xcconfig时配置运行:
xcodebuild -configuration Debug clean build -xcconfig path/build.xcconfig
CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist CODE_SIGN_IDENTITY = iPhone Developer:xxxx CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer: xxx PROVISIONING_PROFIEL =xxx.mobileprovision PROVISIONING_PROFIEL[sdk=iphoneos*]=xxx.mobileprovision SYMROOT =/Users/iosTest/xxx OBJROOT =/Users/iosTest/xxx
常见error:
.app/ResourceRules.plist: cannot read resourcesClick on your project > Targets > Select your target > Build Settings >Code Signing Resource Rules Path and add : $(SDKROOT)/ResourceRules.plist #sh: echo 'CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist' >> ./build.xcconfig
安装 .ipa||.app 方法
Xcode 、iTunes、助手等工具不累赘ideviceinstaller:
$ideviceinstaller -u 076dbbea77c1 -i xx.app/ || XX.ipa
fruitstrap(appium包支持):
fruitstrap install –id userid –bundle “/Users/shop.app”
.ipa 重签名方法
引用sh封装的脚本(转载作者:vigossjjj(wuxian))
ORIGINAL_FILE=”$1” 待签名的ipa包
CERTIFICATE=”$2” 证书名称
MOBILEPROVISION=”$3” 对应的描述文件
BUNDLE_ID=”$4” app的BundleID, 如果你的描述文件允许你修改任意BundleID那么可以任意填写,否则就老老实实的把原BundleID写上吧
PASSWD=”$5” 当前用户所对于的密码
# !/bin/bash # # Sample: # sh resign.sh 80000.ipa "iPhone Developer: Jsz autotest (xxoo)" Dev_xxoo_iphone.mobileprovision "com.xxoo.iphone" "7766" # ORIGINAL_FILE="$1" CERTIFICATE="$2" MOBILEPROVISION="$3" BUNDLE_ID="$4" PASSWD="$5" function unzip_IPA() { ipa="$ORIGINAL_FILE" unzip -o "$ipa" } function create_EntitlementsPlist() { /usr/libexec/PlistBuddy -x -c "print :Entitlements " /dev/stdin <<< $(security cms -D -i ${MOBILEPROVISION}) > entitlements.plist SN_CODE=$(/usr/libexec/PlistBuddy -c "Print :com.apple.developer.team-identifier" entitlements.plist) /usr/libexec/PlistBuddy -c "Set :application-identifier ${SN_CODE}.${BUNDLE_ID}" entitlements.plist } function set_BundleID() { /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $BUNDLE_ID" Payload/*.app/Info.plist } function del_OldCodeSign() { rm -r Payload/*.app/_CodeSignature/ } function copy_EmbeddedProvision() { cp $MOBILEPROVISION Payload/*.app/embedded.mobileprovision } function reSignFrameworks() { echo "Resigning with certificate: $CERTIFICATE" >&2 find −name"∗.app"−o−name"∗.appex"−o−name"∗.framework"−o−name"∗.dylib" > directories.txt while IFS='' read -r line || [[ -n "$line" ]]; do /usr/bin/codesign --continue -f -s "$CERTIFICATE" --no-strict "t_entitlements.plist" "$line" done < directories.txt } function reSign() { codesign -f -s "$CERTIFICATE" --entitlements entitlements.plist Payload/*.app/ } function rezip_IPA() { original_IPA=`basename "$ORIGINAL_FILE"` re_IPA=`echo ${original_IPA/.ipa/-resigned.ipa}` zip -qr "$re_IPA" Payload/ } security unlock-keychain -p "$PASSWD" ~/Library/Keychains/login.keychain unzip_IPA create_EntitlementsPlist set_BundleID del_OldCodeSign copy_EmbeddedProvision reSignFrameworks reSign rezip_IPA
“持续集成”配置参考链接:
http://blog.devtang.com/blog/2012/02/16/apply-daily-build-in-ios-project/
相关文章推荐
- ipa重签名
- 关于Apk文件,应用重新签名
- iOS逆向必备绝技之ipa重签名
- IOS resign error: dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
- ios重签名教程
- Android技术之ListView分割线显示和隐藏
- android EditText inputType说明
- Android项目开发全程(一)--创建工程
- 【Unity3D】学习第一天
- AS3 复制Object
- 三星Note II (Android 4.1.1)上安装Ubantu 12.04到ext4分区 (2013-05-10 08:54:52)
- Android listview中使用checkbox
- 【Android】【Framework】ActivityThread相关
- 【Android】【Framework】ActivityThread相关
- 【Android】【Framework】ActivityThread相关
- 【Android】【Framework】ActivityThread相关
- 【Android】【Framework】ActivityThread相关
- 【Android】【Framework】ActivityThread相关
- 【Android】【Framework】ActivityThread相关
- cocos2d-x3.x+Lua开发工具