更新Xcode后需要重新配置iOSOpenDev的开发环境(太分散了):
1. 下载安装 iOSOpenDev-1.6-2.pkg (已经很久没更新了)
2. 下载 mobilesubstrate 用于更新iOSOpenDev中的 libsubstrate.dylib 和 substrate.h
3. 使用 Com.apple.product-type.tool解决方法 为xcode添加product-type.tool的模板,如果你看过了,可以直接点击下载 Scripts.zip
4. 免证书签名执行以下crack_codesign.shcrack_codesign.sh (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
添加不成功