[update] Xcode8.3.3 + iOSOpenDev + Crack_Xcode_Codesign


#1

更新Xcode后需要重新配置iOSOpenDev的开发环境(太分散了):

  1. 下载安装 iOSOpenDev-1.6-2.pkg7 (已经很久没更新了)

  2. 下载 mobilesubstrate 用于更新iOSOpenDev中的 libsubstrate.dylib 和 substrate.h

  3. 使用 Com.apple.product-type.tool解决方法 为xcode添加product-type.tool的模板,如果你看过了,可以直接点击下载 Scripts.zip

  4. 免证书签名执行以下crack_codesign.shcrack_codesign.sh2 (1.7 KB)

Crack Xcode codesign

SDKSettings.plist

SDK_ROOT="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"
#sudo cp ${SDK_ROOT}/SDKSettings.plist ${SDK_ROOT}/SDKSettings.plist.bak

cp -f ${SDK_ROOT}/SDKSettings.plist ./sdk.plist
plutil -convert json sdk.plist

sed -e ‘s/“CODE_SIGNING_REQUIRED”:“YES”/“CODE_SIGNING_REQUIRED”:“NO”/g’ sdk.plist > tmp.plist
sed -e ‘s/“ENTITLEMENTS_REQUIRED”:“YES”/“ENTITLEMENTS_REQUIRED”:“NO”/g’ tmp.plist > SDKSettings.plist
plutil -convert binary1 SDKSettings.plist
rm -f sdk.plist tmp.plist

sudo cp -fv SDKSettings.plist ${SDK_ROOT}/SDKSettings.plist
plutil -p ${SDK_ROOT}/SDKSettings.plist | grep -A1 “ENTITLEMENTS_REQUIRED”

Info.plist

PLATFORM_ROOT="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform"
#sudo cp ${PLATFORM_ROOT}/Info.plist ${PLATFORM_ROOT}/Info.plist.bak

cp -f ${PLATFORM_ROOT}/Info.plist ./itmp.plist
plutil -convert json itmp.plist

sed -e ‘s/XCiPhoneOSCodeSignContext/XCCodeSignContext/g’ itmp.plist > tmp.plist
sed -e ‘s/“Version”:“10.3”,/“Version”:“10.3”,“PROVISIONING_PROFILE_ALLOWED”:“NO”,“PROVISIONING_PROFILE_REQUIRED”:“NO”,/g’ tmp.plist > Info.plist
plutil -convert binary1 Info.plist
rm -f itmp.plist tmp.plist

sudo cp -fv Info.plist ${PLATFORM_ROOT}/Info.plist
plutil -p ${PLATFORM_ROOT}/Info.plist | grep “XCCodeSignContext”

cleanup

rm -f SDKSettings.plist Info.plist

添加对com.apple.product-type.tool的支持

cd /Scripts
sudo ./configure-xcode-for-ios-development

修改XCode配置文件,免签名安装

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/

SDKSettings.plist

CODE_SIGNING_REQUIRED: NO
ENTITLEMENTS_REQUIRED: NO

Info.plist

+ PROVISIONING_PROFILE_ALLOWED: NO
+ PROVISIONING_PROFILE_REQUIRED: NO

XCiPhoneOSCodeSignContext -> XCCodeSignContext

PS:

sed -e 's/"Version":"10.3",/"Version":"10.3","PROVISIONING_PROFILE_ALLOWED":"NO","PROVISIONING_PROFILE_REQUIRED":"NO",/g' tmp.plist > Info.plist

这边使用的是字符串替换,所以根据/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist 中的Version来修改,否则你会发现

+ PROVISIONING_PROFILE_ALLOWED: NO
+ PROVISIONING_PROFILE_REQUIRED: NO

添加不成功