鉴于我不需要捆绑SKAdvisorResources,因为我不使用任何语音建议或导航,我怎样才能避免它最终出现在我的ipa中?
我已将SKMaps作为pod依赖添加到我的项目中,只需将pod“ScoutMaps-iOS-SDK”添加到我的Podfile中。
我提出的解决方案是在我的项目中添加一个自定义脚本阶段,在导出之前删除它;这是安全的,如果你想更新您的pod但我不喜欢,我更喜欢在我的Podfile中指定一些排除规则,但我不知道这是否可能......
rm -rf "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SKAdvisorResources.bundle"
rm -rf "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SKAdvisorResources.bundle"
答案 0 :(得分:1)
我知道这是一个老问题,可能你有一个解决方案(或决定使用另一个库)
但仅限于以后的参考
这适用于MacOS ,您需要检查可用工具的其他系统
find
,sed
您可以在Podfile
post_install do |installer|
app_target = "your_target_goes_here"
puts("* Commenting file `Pods-#{app_target}-resources.sh` line having `SKAdvisorResources.bundle`")
system("find . -name \"Pods-#{app_target}-resources.sh\" -exec sed -i '' -e \"/SKAdvisorResources.bundle/s/^/#/\" {} +")
end
让我们在这里添加一些解释,并且需要更新xD
说明:
/SKAdvisorResources.bundle/
匹配一行
SKAdvisorResources.bundle 在其中s
在上面匹配的行上执行替换#
在行^
答案 1 :(得分:0)
根据@yeradis建议,我的最终解决方案会循环播放podfile中定义的聚合目标列表,并将替换应用于所有文件。
post_install do |installer|
installer.aggregate_targets.each do |target|
puts("* Commenting file `#{target.label}-resources.sh` lines having `SKAdvisorResources.bundle`")
system("find . -name \"#{target.label}-resources.sh\" -exec sed -i '' -e \"/SKAdvisorResources.bundle/s/^/#/\" {} +")
end
end
请注意,target.label
会返回包含Pods-
前缀