Giter VIP home page Giter VIP logo

Comments (21)

yanashenyang avatar yanashenyang commented on July 24, 2024

same same

from cocoapods-privacy.

wcsdn avatar wcsdn commented on July 24, 2024

是啊,看不懂啊,不能直接帮项目里的*.framework 和pod进来的flutter里的插件也映射生成吗?

from cocoapods-privacy.

ymoyao avatar ymoyao commented on July 24, 2024

这里统一回复一下,目前有两个策略

  • 策略一:基于工程处理,通过 pod install --privacy 和 config.json 配置文件 可以直接查询所有指定的组件,在xcode/Resources 文件夹下自动生成隐私清单文件,并合并所有组件的查询结果,插入主工程的隐私清单文件中。这种策略是只有Xcode 主工程持有一份隐私清单文件,组件本身并不会生成隐私清单。目前而言,除了苹果肯定会审查的那些第三方清单组件需要等待其更新外,其他可能是够用了,苹果前期审查力度应该不会那么大,自己的私有组件,可以等后期再处理。

  • 策略二:基于组件处理,通过 pod privacy spec 'spec_path',以组件为颗粒来管理隐私清单文件,会自动修改podspec 文件和在对应位置创建隐私清单文件,有优点也有缺点,优点是肯定可以通过审核,且可以自定义那些还没支持的第三方组件,比如AFNetworking,使用该插件改造支持隐私清单,上传到自己的私有组件服务器; 缺点是如果组件数量大的话,那么需要每一个组件改过去!

  • 推荐策略:优先使用策略一 + 使用策略二兼容部分第三方SDK + 极个别使用了隐私数据的组件

  • 注意:这个插件仅支持自动管理 隐私API(NSPrivacyAccessedAPITypes),隐私数据(NSPrivacyCollectedDataTypes)相关涉及到相关功能,无法直接通过api确认,需要自行管理(不过目前好像苹果没怎么提到隐私数据这块,可以酌情处理)

from cocoapods-privacy.

wcsdn avatar wcsdn commented on July 24, 2024

这里统一回复一下,目前有两个策略

  • 策略一:基于工程处理,通过 pod install --privacy 和 config.json 配置文件 可以直接查询所有指定的组件,在xcode/Resources 文件夹下自动生成隐私清单文件,并合并所有组件的查询结果,插入主工程的隐私清单文件中。这种策略是只有Xcode 主工程持有一份隐私清单文件,组件本身并不会生成隐私清单。目前而言,除了苹果肯定会审查的那些第三方清单组件需要等待其更新外,其他可能是够用了,苹果前期审查力度应该不会那么大,自己的私有组件,可以等后期再处理。
  • 策略二:基于组件处理,通过 pod privacy spec 'spec_path',以组件为颗粒来管理隐私清单文件,会自动修改podspec 文件和在对应位置创建隐私清单文件,有优点也有缺点,优点是肯定可以通过审核,且可以自定义那些还没支持的第三方组件,比如AFNetworking,使用该插件改造支持隐私清单,上传到自己的私有组件服务器; 缺点是如果组件数量大的话,那么需要每一个组件改过去!
  • 推荐策略:优先使用策略一 + 使用策略二兼容部分第三方SDK + 极个别使用了隐私数据的组件
  • 注意:这个插件仅支持自动管理 隐私API(NSPrivacyAccessedAPITypes),隐私数据(NSPrivacyCollectedDataTypes)相关涉及到相关功能,无法直接通过api确认,需要自行管理(不过目前好像苹果没怎么提到隐私数据这块,可以酌情处理)

”注意:这个插件仅支持自动管理 隐私API(NSPrivacyAccessedAPITypes)“我一堆sdk 使用你这个命令就生成了 PrivacyAccessedAPITypes 空数组?内容需要自行管理?啥意思,就创建了一个文件夹啊,是我肤浅了。
策略二不错。

from cocoapods-privacy.

ymoyao avatar ymoyao commented on July 24, 2024

”注意:这个插件仅支持自动管理 隐私API(NSPrivacyAccessedAPITypes)“我一堆sdk 使用你这个命令就生成了 PrivacyAccessedAPITypes 空数组?内容需要自行管理?啥意思,就创建了一个文件夹啊,是我肤浅了。
策略二不错。

你是指 pod install --privacy 之后是空的?默认config.json 是屏蔽所有 source包含 ‘github.com' 域名的组件【苹果文档中有提到,原则上第三方隐私要自己管理,这个命令主要意图是想要检测主工程和自己所有的私有组件代码,所以默认屏蔽了github的组件】,你如果想使用 pod install --privacy 也检测这些github组件,那么需要修改 config.json(参考ReadMe,有具体的例子),重新设置配置 pod privacy config '修改之后的配置文件', 然后再重新执行命令

from cocoapods-privacy.

wcsdn avatar wcsdn commented on July 24, 2024

”注意:这个插件仅支持自动管理 隐私API(NSPrivacyAccessedAPITypes)“我一堆sdk 使用你这个命令就生成了 PrivacyAccessedAPITypes 空数组?内容需要自行管理?啥意思,就创建了一个文件夹啊,是我肤浅了。
策略二不错。

你是指 pod install --privacy 之后是空的?默认config.json 是屏蔽所有 source包含 ‘github.com' 域名的组件【苹果文档中有提到,原则上第三方隐私要自己管理,这个命令主要意图是想要检测主工程和自己所有的私有组件代码,所以默认屏蔽了github的组件】,你如果想使用 pod install --privacy 也检测这些github组件,那么需要修改 config.json(参考ReadMe,有具体的例子),重新设置配置 pod privacy config '修改之后的配置文件', 然后再重新执行命令

OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)

可以了,我升级了pod,rbenv,Ruby后正常了。nick

from cocoapods-privacy.

WsmGitHub avatar WsmGitHub commented on July 24, 2024

好像无法区分注释,被注释情况下依然可以生成

// NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
// [user setObject:@"" forKey:@"test"];

from cocoapods-privacy.

ymoyao avatar ymoyao commented on July 24, 2024

好像无法区分注释,被注释情况下依然可以生成

// NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; // [user setObject:@"" forKey:@"test"];

这个问题在 >= 0.5.1 版本修复了

from cocoapods-privacy.

WsmGitHub avatar WsmGitHub commented on July 24, 2024

作者能提供脚本源码吗

from cocoapods-privacy.

wcsdn avatar wcsdn commented on July 24, 2024

好像无法区分注释,被注释情况下依然可以生成
// NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; // [user setObject:@"" forKey:@"test"];

这个问题在 >= 0.5.1 版本修复了

请问一下,你这个命令怎么给老版本的flutter 添加隐私文件。

from cocoapods-privacy.

WsmGitHub avatar WsmGitHub commented on July 24, 2024

好像无法区分注释,被注释情况下依然可以生成
// NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; // [user setObject:@"" forKey:@"test"];

这个问题在 >= 0.5.1 版本修复了

请问一下,你这个命令怎么给老版本的flutter 添加隐私文件。

关于flutter 插件适配方案,我们将插件放到公司的git源,本地跑脚本生成清单文件,提交到公司的仓库

from cocoapods-privacy.

wcsdn avatar wcsdn commented on July 24, 2024

好像无法区分注释,被注释情况下依然可以生成
// NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; // [user setObject:@"" forKey:@"test"];

这个问题在 >= 0.5.1 版本修复了

请问一下,你这个命令怎么给老版本的flutter 添加隐私文件。

关于flutter 插件适配方案,我们将插件放到公司的git源,本地跑脚本生成清单文件,提交到公司的仓库

#!/bin/bash

保存开始执行时的目录

start_dir=$(pwd)
count=0

检查是否已安装 cocoapods-privacy

if ! gem list -i cocoapods-privacy > /dev/null 2>&1; then
echo "cocoapods-privacy 未安装,正在安装..."
gem install cocoapods-privacy
echo "首次运行,正在设置配置..."
pod privacy config https://raw.githubusercontent.com/ymoyao/cocoapods-privacy/main/resources/config.json
fi

定义目标文件夹路径 pub.flutter-io.cn

flutter_sdk_path=$(dirname $(dirname $(which flutter)))
destination_folder="$flutter_sdk_path/.pub-cache/hosted/pub.flutter-io.cn/"
echo $destination_folder

遍历目标文件夹下的子目录

for folder in "$destination_folder"/; do
if [ -d "$folder" ]; then
subdir="$folder/ios"
if [ -d "$subdir" ]; then
if [ ! -d "$subdir/pod" ]; then
echo "执行 pod privacy spec 拼接 .podspec 文件..."
cd "$subdir" || exit 1
for podspec_file in ./
.podspec; do
echo ""
echo "======================> $podspec_file"
echo ""
pod privacy spec "$podspec_file"
((count++))
done
cd "$start_dir" || exit 1
fi
fi
fi
done
echo "=========>处理了 $count 个文件"
我直接在pod前执行了上诉命令,就是不知道 楼主的 pod privacy spec 给不给力,能不能检测出来啊,不过目前来看,楼主的命令生成出来的都是 既有的4条空配置,也没扫出来不一样的,回头我在确认一下是真的没有还是扫不出来。。。。
image

from cocoapods-privacy.

wscqs avatar wscqs commented on July 24, 2024

用 Swift Package Manager 管理的第三方库,能支持吗?

from cocoapods-privacy.

ymoyao avatar ymoyao commented on July 24, 2024

用 Swift Package Manager 管理的第三方库,能支持吗?

目前不支持SPM,这个是基于cocoapods的插件

from cocoapods-privacy.

ymoyao avatar ymoyao commented on July 24, 2024

作者能提供脚本源码吗

这个仓库本身就是源码

from cocoapods-privacy.

caihongyu2022 avatar caihongyu2022 commented on July 24, 2024

@ymoyao
前提条件:
1.修改了本地 config.json 中的source.white.list 和 source.black.list 都设置为[]
2.pod privacy config 本地config.json 更新config
3.通过 pod privacy install 执行后,程序正常进行完毕。

主项目下确实生成了resource目录并包含了隐私文件,但是查看查看privacy.log,并没有看到对podfile中 pod的第三方库进行检测 (例如 AFNetWorking )框架的隐私检测

另外:针对afn这种不维护的库,都是通过pod 方式加入到项目的,苹果提供的第三方列表中的库(库本身要提供隐私文件),这种如何应对呢?仅仅在主框架里生成隐私文件是不行的吧?难道要放弃pod,下载afn源码,把afn源码加进入到项目里吗?

from cocoapods-privacy.

ymoyao avatar ymoyao commented on July 24, 2024

@ymoyao 前提条件: 1.修改了本地 config.json 中的source.white.list 和 source.black.list 都设置为[] 2.pod privacy config 本地config.json 更新config 3.通过 pod privacy install 执行后,程序正常进行完毕。

主项目下确实生成了resource目录并包含了隐私文件,但是查看查看privacy.log,并没有看到对podfile中 pod的第三方库进行检测 (例如 AFNetWorking )框架的隐私检测

另外:针对afn这种不维护的库,都是通过pod 方式加入到项目的,苹果提供的第三方列表中的库(库本身要提供隐私文件),这种如何应对呢?仅仅在主框架里生成隐私文件是不行的吧?难道要放弃pod,下载afn源码,把afn源码加进入到项目里吗?

问题1:只有有包含隐私api 的文件才会出现在log 中,af 目前发现有没有隐私api
问题2: af 这种不维护的库确实是只能clone 一份使用 pod privacy spec 添加隐私清单后,上传到你们自己的服务器上,可以参考 #2 (comment) @wcsdn @WsmGitHub 他们上面的聊天记录

from cocoapods-privacy.

wcsdn avatar wcsdn commented on July 24, 2024

好像无法区分注释,被注释情况下依然可以生成
// NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; // [user setObject:@"" forKey:@"test"];

这个问题在 >= 0.5.1 版本修复了

请问一下,你这个命令怎么给老版本的flutter 添加隐私文件。

关于flutter 插件适配方案,我们将插件放到公司的git源,本地跑脚本生成清单文件,提交到公司的仓库

#!/bin/bash

保存开始执行时的目录

start_dir=$(pwd) count=0

检查是否已安装 cocoapods-privacy

if ! gem list -i cocoapods-privacy > /dev/null 2>&1; then echo "cocoapods-privacy 未安装,正在安装..." gem install cocoapods-privacy echo "首次运行,正在设置配置..." pod privacy config https://raw.githubusercontent.com/ymoyao/cocoapods-privacy/main/resources/config.json fi

定义目标文件夹路径 pub.flutter-io.cn

flutter_sdk_path=$(dirname (dirname(which flutter))) destination_folder="$flutter_sdk_path/.pub-cache/hosted/pub.flutter-io.cn/" echo $destination_folder

遍历目标文件夹下的子目录

for folder in "$destination_folder"/; do if [ -d "$folder" ]; then subdir="$folder/ios" if [ -d "$subdir" ]; then if [ ! -d "$subdir/pod" ]; then echo "执行 pod privacy spec 拼接 .podspec 文件..." cd "$subdir" || exit 1 for podspec_file in ./.podspec; do echo "" echo "======================> $podspec_file" echo "" pod privacy spec "$podspec_file" ((count++)) done cd "$start_dir" || exit 1 fi fi fi done echo "=========>处理了 $count 个文件" 我直接在pod前执行了上诉命令,就是不知道 楼主的 pod privacy spec 给不给力,能不能检测出来啊,不过目前来看,楼主的命令生成出来的都是 既有的4条空配置,也没扫出来不一样的,回头我在确认一下是真的没有还是扫不出来。。。。 image

补充一下 :
1、m1 和 intel 处理器 读取的地址不一样,需要特殊处理
flutter_sdk_path=$(dirname $(dirname $(which flutter)))
destination_folder1="$flutter_sdk_path/.pub-cache/hosted/pub.flutter-io.cn/"
destination_folder2="$flutter_sdk_path/.pub-cache/hosted/pub.dartlang.org/"
for destination_folder in "$destination_folder1" "$destination_folder2"; do
2、fastlane(如果用了) 和 pod 冲突比较难缠。gem环境配置很重要。

from cocoapods-privacy.

caihongyu2022 avatar caihongyu2022 commented on July 24, 2024

@ymoyao 前提条件: 1.修改了本地 config.json 中的source.white.list 和 source.black.list 都设置为[] 2.pod privacy config 本地config.json 更新config 3.通过 pod privacy install 执行后,程序正常进行完毕。
主项目下确实生成了resource目录并包含了隐私文件,但是查看查看privacy.log,并没有看到对podfile中 pod的第三方库进行检测 (例如 AFNetWorking )框架的隐私检测
另外:针对afn这种不维护的库,都是通过pod 方式加入到项目的,苹果提供的第三方列表中的库(库本身要提供隐私文件),这种如何应对呢?仅仅在主框架里生成隐私文件是不行的吧?难道要放弃pod,下载afn源码,把afn源码加进入到项目里吗?

问题1:只有有包含隐私api 的文件才会出现在log 中,af 目前发现有没有隐私api 问题2: af 这种不维护的库确实是只能clone 一份使用 pod privacy spec 添加隐私清单后,上传到你们自己的服务器上,可以参考 #2 (comment) @wcsdn @WsmGitHub 他们上面的聊天记录

通过在 post_install 写代码已经成功对afn的隐私文件添加

from cocoapods-privacy.

iliYF avatar iliYF commented on July 24, 2024

@ymoyao 前提条件: 1.修改了本地 config.json 中的source.white.list 和 source.black.list 都设置为[] 2.pod privacy config 本地config.json 更新config 3.通过 pod privacy install 执行后,程序正常进行完毕。
主项目下确实生成了resource目录并包含了隐私文件,但是查看查看privacy.log,并没有看到对podfile中 pod的第三方库进行检测 (例如 AFNetWorking )框架的隐私检测
另外:针对afn这种不维护的库,都是通过pod 方式加入到项目的,苹果提供的第三方列表中的库(库本身要提供隐私文件),这种如何应对呢?仅仅在主框架里生成隐私文件是不行的吧?难道要放弃pod,下载afn源码,把afn源码加进入到项目里吗?

问题1:只有有包含隐私api 的文件才会出现在log 中,af 目前发现有没有隐私api 问题2: af 这种不维护的库确实是只能clone 一份使用 pod privacy spec 添加隐私清单后,上传到你们自己的服务器上,可以参考 #2 (comment) @wcsdn @WsmGitHub 他们上面的聊天记录

通过在 post_install 写代码已经成功对afn的隐私文件添加

求分享下解决方法?

from cocoapods-privacy.

wscqs avatar wscqs commented on July 24, 2024

from cocoapods-privacy.

Related Issues (11)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.