携手创作,一起生长!这是我参加「日新计划 8 月更文应战」的第36天,点击检查活动详情
导言
- Xcode13新建项目不显现Products目录的处理方案
- Xcode13新建的工程恢复从前的Info.plist同步机制的办法
- 主动办理签名证书时拉取更新设备描绘文件的办法。
I 显现Products目录的处理方案
问题:Xcode13 新建的项目不显现Products目录
处理办法: 修正project.pbxproj 文件的productRefGroup装备信息
效果: 运用场景:Products目录的app包用于快速打测试包。
1.1 从Xcodeeproj 翻开project.pbxproj
1.2 修正productRefGroup 的值
将mainGroup 对应的值复制给productRefGroup 的值,按command+s保存project.pbxproj文件,Xcode将主动刷新,Products目录显现出来了。
1.3 运用场景
经过Products目录快速定位获取真机调试包途径,运用脚本快速打包。
打包脚本核心逻辑:在含有真机包途径下复制.app 到新建的Payload目录,zip紧缩Payload目录并依据当时时刻来命名为xxx.ipa。
#!/bin/bash
echo "==================(create ipa file...)=================="
# cd `dirname $0`;
rm -rf ./Target.ipa;
rm -rf ./Payload;
mkdir Payload;
APP=$(find . -type d | grep ".app$" | head -n 1)
cp -rf "$APP" ./Payload;
data="`date +%F-%T-%N`"
postName="$data"-".ipa"
zip -r -q "$postName" ./Payload;
rm -rf ./Payload;
open .
# 移动ipa包到特定目录
mkdir -p ~/Downloads/knPayload
cp -a "$postName" ~/Downloads/knPayload
open ~/Downloads/knPayload
echo "==================(done)=================="
exit;
II 封闭打包兼并Info.plist功用
Xcode13之前Custom iOS Target Properties
面板和Info.plist的装备信息会主动同步。
Xcode13新建的工程默认开启打包兼并Info.plist功用,不再运用装备文件(Info.plist、entitlements),假如需要修正装备,直接在Xcode面板target - Info - Custom iOS Target Properties
和build settings
中设置。
Projects created from several templates no longer require configuration files such as entitlements and Info.plist files. Configure common fields in the target’s Info tab, and build settings in the project editor.
2.1 设置Info.plist为主装备文件
因为GUI装备面板没有装备文件plist的灵活,不支持检查源代码。所以我们能够在BuildSetting
将Generate Info.plist File
设置为NO,来封闭打包兼并功用。
封闭打包兼并功用,重启Xcode使装备生效,Custom iOS Target Properties
面板的信息以info.plist
的内容为准。
每次修正
info.plist
都要重启Xcode,info.plist的信息才会同步到Custom iOS Target Properties
面板。
2.2 注意事项
注意: 封闭打包兼并Info.plist功用 之前记住先手动同步Custom iOS Target Properties
面板的信息到Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>iOS逆向</string>
<key>CFBundleIdentifier</key>
<string>blog.csdn.net.z929118967</string>
<key>CFBundleName</key>
<string>YourAppName</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
</dict>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchScreen</key>
<dict>
<key>UILaunchScreen</key>
<dict/>
</dict>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~iphone</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
III 主动办理签名证书时如何拉取最新设备描绘文件?
办法:依据描绘文件的创建时刻来删去旧的主动办理证书的描绘文件
原理:在~/Library/MobileDevice/Provisioning\ Profiles
文件夹中删去之前的描绘文件,然后体系检测到没有描绘文件则会主动生成一个新的
see also
iOS第三方库办理标准:以Cocoapods为案例
kunnan.blog.csdn.net/article/det…
kunnan.blog.csdn.net/article/det…