xcode iOS 一键运行自动打包shell脚本

2021-3-18
增加Display_name的设置判断

2020-11-18
增加上传到蒲公英功能,并可以添加版本更新说明
具体使用请看脚本里面的详细说明

2020-04-13
将文件放到 项目根目录下,然后就可以直接运行(只需要根据实际情况改变 PROJECT_TYPE 这个变量)
下载地址

# 项目自动、打包

# 赋予权限
# chmod 777 auto_ipa.sh

# ps:脚本需要放在项目根目录, 同时需要 ExportOptions.plist 也放在项目根目录
# 1、如果只需要导出ipa则只需要设置 PROJECT_TYPE 的值, 其它值不需要填写
# 2、如果TARGET_NAME 和 Display_Name 不一样则需要手动设置Display_Name(Display_Name 和项目里面设置的保持一样), 如果是一样则忽略 Display_Name
# 3、如果你不需要提交到蒲公英 就将 UPLOADPGYER=flase 和 pgyerApiKey=””
# 4、如果需要添加蒲公英更新说明则在 脚本后面 添加 举个栗子: ./auth_ipa.sh 我是版本更新内容
# 5、导出的ipa 在你的桌面

# 选择项目 xcodeproj or xcworkspace 这里是二选一
PROJECT_TYPE=”xcworkspace”
# 是否需要上传到蒲公英
UPLOADPGYER=true
# 蒲公英的key
PgyerApiKey=123456
#Display_NAME
DISPLAY_NAME=””

# ————–我是分割线——————-
# ————–我是分割线——————-

# 项目的根目录路径
PROJECT_PATH=”$( cd “$( dirname “$0″ )” && pwd )”;

# 项目target名字
TARGET_NAME=””

function getFileName(){

for file in $(ls $PROJECT_PATH)
do
local lastFileName=${file##*.}
if [[ $lastFileName =~ $PROJECT_TYPE ]]
then
TARGET_NAME=$(basename ${file} .$PROJECT_TYPE)
fi
done
}
getFileName

# 判断是否获取到当前目录含有 xcode的项目文件
if [[ “${#TARGET_NAME}” -eq 0 ]]; then
echo “没有获取到项目名称”
exit;
fi

# 打包环境 Release / Debug
CONFIGURATION=Release

# 工程文件路径

APP_PATH=”${PROJECT_PATH}/${TARGET_NAME}.$PROJECT_TYPE”

# Xcode clean
xcodebuild clean -workspace “${APP_PATH}” -configuration “${CONFIGURATION}” -scheme “${TARGET_NAME}”

# 打包目录
HOME_PATH=$(echo ${HOME})
DESKTOP_PATH=”${HOME_PATH}/Desktop”

# 时间戳
CURRENT_TIME=$(date “+%Y-%m-%d %H-%M-%S”)

# 归档路径
ARCHIVE_PATH=”${DESKTOP_PATH}/${TARGET_NAME} ${CURRENT_TIME}/${TARGET_NAME}.xcarchive”

# 导出路径
EXPORT_PATH=”${DESKTOP_PATH}/${TARGET_NAME} ${CURRENT_TIME}”

# plist路径
PLIST_PATH=”${PROJECT_PATH}/ExportOptions.plist”

# archive 这边使用的工作区间 也可以使用project
xcodebuild archive -workspace “${APP_PATH}” -scheme “${TARGET_NAME}” -configuration “${CONFIGURATION}” -archivePath “${ARCHIVE_PATH}”

# 导出ipa
xcodebuild -exportArchive -archivePath “${ARCHIVE_PATH}” -exportPath “${EXPORT_PATH}” -exportOptionsPlist “${PLIST_PATH}”

# 上传到蒲公英
if [ $UPLOADPGYER = true ]; then
# 获取*个参数
varBuildUpdateDescription=$1

#如果有设置DISPLAY_NAME怎取DISPLAY_NAME ,否则默认取TARGET_NAME
IPAPATH=””
if [ -n “$DISPLAY_NAME” ]
then
IPAPATH=”${EXPORT_PATH}/${DISPLAY_NAME}.ipa”
else
IPAPATH=”${EXPORT_PATH}/${TARGET_NAME}.ipa”
fi
echo $IPAPATH

# 上传蒲公英
echo “~~~~~~~~~~~~~~~~上传ipa到蒲公英~~~~~~~~~~~~~~~~~~~”\
RESULT=$(curl -F “file=@${IPAPATH}” -F “_api_key=${PgyerApiKey}” -F “buildUpdateDescription=${varBuildUpdateDescription}” https://www.pgyer.com/apiv2/app/upload)
echo $RESULT

if [ $? = 0 ]
then
echo “\n”
echo “~~~~~~~~~~~~~~~~上传蒲公英成功~~~~~~~~~~~~~~~~~~~”
else
echo “\n”
echo “~~~~~~~~~~~~~~~~上传蒲公英失败~~~~~~~~~~~~~~~~~~~”
fi

fi

 

解决 为什么会出现 “Safari浏览器打不开该网页,因为地址无效“ 的提示

背景来源场景:
H5拉起APP ,使用的方式是 URL Scheme
调用代码是

location.href = “xixi:// ”

会出现

%title插图%num
当你点击了取消之后会出现 “Safari浏览器打不开该网页,因为地址无效” 提示语

%title插图%num
解决
debug 调试了一下发现
1、多次调用 location.href = “xixi:// ” 点击取消是会出现
2、如果调用了location.href = “xixi:// ” 跟着也会调用 打开App Store ,点击取消也是会出现上面的提示语

iOS UIButton 渐变色、边框渐变色、字体渐变色

需求:
1、UIButton 的背景需要渐变色
2、UIButton 的边框需要渐变色,背景是白色,字体也需要渐变色

%title插图%num

%title插图%num

需求一 : UIButton 的背景需要渐变色:
思路:
我们可以利用 CAGradientLayer 来做渐变色
然而我不是直接套在UIButton 的layer 上面进行操作。
我是
1、 首先创建一个临时的 UIView
2、 然后利用 CAGradientLayer 在 UIView 上面进行渐变绘制
3、将UIView 进行截图返回 UIImage
4、将返回的 UIImage 设置到 UIButton 的 setBackgroundImage

这样就可以完成了一个UIButton 的渐变色 绘制,并且可以根据不用的颜色来设置Button UIControlStateNormal | UIControlStateHighlighted | UIControlStateDisabled 来进行设置效果。

需求二 :UIButton 的边框需要渐变色,背景是白色,字体也需要渐变色
其实 边框渐变色我们可以套用 上面的做法,只不过我们需要在已经绘制好有渐变色的UIView 上面盖多一个白色的 UIView 比 上面那个UIView 小一个像素 即可,
然后 字体的颜色 我使用了 + (UIColor *)colorWithPatternImage:(UIImage *)image 这个方法来来处理。然而传入的图片就是 上面得到的渐变色(或许根据UI 的色值来处理)

 

iOS App审核遇到的问题(持续更新)

Guideline 1.1 – Safety – Objectionable Content
解决:根据政策,我们是不符合,不能带有疫情这些字眼,只能把广告给去了

我们发现您的 app 包含不适合 App Store 的内容或概念。

具体而言,您应用的元数据或二进制文件包含对 COVID-19 大流行的不当引用。用户依靠 App Store 查找提供基本医疗服务和安全信息的应用程序。为了帮助用户轻松定位此内容,只有来自提供基本服务的公认机构的应用程序才应在其元数据和二进制文件中引用大流行病。

下一步

虽然您的 app 当前的内容或概念不适合 App Store,但我们欢迎您根据我们的 App Store 审核指南发布与 COVID-19 大流行无关或不相关的新 app。

资源

有关 Apple 应对 COVID-19 大流行的更多信息,请参阅 Apple 开发者网站上的“确保健康与安全信息的可信度”更新。

详情请参阅附件截图。

2020-08-13
Guideline 5.2.1 – Legal – Intellectual Property
解决:把资质的文件上传上去即可

您的应用促进、启用或鼓励实时视频聊天或表演(网络直播/表演/秀场),但您尚未为应用中的服务提供相应的文档。

下一步

要解决此问题,请完成以下操作:

— Provide both a copy and the direct link to the government website that displays your Internet Content Provider License (电信与信息服务业务经营许可证).
— Provide a copy of your filing record with the China Public Security Bureau (公安机关互联网备案信息).

资源

提供文件:

登录 App Store Connect
点击“我的应用”
选择您的应用
点击屏幕左侧的应用版本
向下滚动到“应用审核信息”
Attach the scanned copy of your Internet Cultural Business License (网络文化经营许可证) in the “Attachment” section
点击“保存”
获得此信息后,请在调解中心回复此消息,我们可以继续进行审核。

Guideline 2.1 – Information Needed
解决:

我们已开始审核您的应用程序,但无法继续,因为我们需要访问一个视频,该视频演示您在物理 iOS 设备上使用的应用程序的当前版本。

请仅在演示视频中包含在物理 iOS 设备上运行的应用程序的镜头,而不是在模拟器上。可以使用屏幕录像机来捕获正在使用的应用程序的镜头。确保演示视频中清楚记录了所有相关的应用功能、服务和权限。

具体来说,请提供一个演示视频来展示背景音频的使用。

下一步

为帮助我们继续审核您的应用,请在 App Store Connect 的“应用审核信息”部分向我们提供演示视频的链接,并在解决中心回复此消息。

要提供演示视频的链接:

登录 App Store Connect
点击“我的应用”
选择您的应用
点击屏幕左侧的应用版本
向下滚动到“应用审核信息”
在“备注”部分提供演示视频访问详细信息
完成所有更改后,单击“版本信息”页面顶部的“保存”按钮。
请注意,如果您的应用只能通过演示视频进行审核,则每次重新提交时,您都需要提供更新的演示视频。

由于您的 App Store Connect 状态是元数据被拒*,我们不需要新的二进制文件。要修改元数据,请访问 App Store Connect 以选择您的应用程序并修改所需的元数据值。完成所有更改后,请在调解中心回复此消息,我们将继续审核。

2020-07-11
Guideline 2.3.7 – Performance – Accurate Metadata
解决:*快的解决方法就是 在APP里面里面截几张图片就可以了, 不要包含其它一些误会的信息

您将在 App Store 上显示的 App 屏幕截图包含对您的 App 或它提供的服务的价格的引用,这不被视为这些元数据项的一部分。

下一步

要解决此问题,请从您的应用屏幕截图中删除任何对定价的引用,包括对您的应用或服务是免费或打折的任何引用。如果您想宣传应用价格的变化,请考虑在应用说明中包含此信息。可以在 App Store Connect 的定价和可用性部分更改应用程序的价格。

资源

有关如何修改应用名称的信息,请查看重命名项目或应用。

有关元数据*佳实践的资源,您可能需要查看 Apple Developer 网站上提供的 App Store 产品页面信息。

有关安排价格等级更改的信息,请查看 App Store Connect 开发人员帮助的安排价格更改部分。

有关详细信息,请参阅随附的屏幕截图。

Guideline 2.1 – Information Needed
解决:按照问题 一个一个进行回复就行,不用额外提交审核(不用额外提交审核,不用额外提交审核) 回复了问题审核人员发现没问题就会自动 审核通过。

我们已开始审核您的应用,但无法继续,因为我们需要有关您的应用的更多信息。

下一步

为帮助我们继续审核您的应用,请提供以下问题的详细信息。您可以预先提供的信息越多,我们就能越快完成您的审核。

用户是否必须付费或购买才能成为会员?
用户是否必须付费或购买才能升级会员结构?
用户能否从低级别会员的会员费或交易中获利?
用户为什么样的服务或产品付费?
一旦您在调解中心回复此消息并提供所需信息,我们就可以继续您的审核。

由于您的 App Store Connect 状态是元数据被拒*,我们不需要新的二进制文件。要修改元数据,请访问 App Store Connect 以选择您的应用程序并修改所需的元数据值。完成所有更改后,请在调解中心回复此消息,我们将继续审核。

2020-04-28
问题:
WARNING ITMS-90076: “Potential Loss of Keychain Access. The previous version of software has an application-identifier value of [‘YAAAAAAA.xixi.xi’] and the new version of software being submitted has an application-identifier of [‘YAAAAAAA.xixi.xi’]. This will result in a loss of keychain access.”
解决:因为APP从另外一个账号迁移过来了,只是一个警告,不影响提交审核。

2020-01-16 更新
Guideline 5.0 – Legal
解决:将一些什么等级歧视在审核的时候规避一下,不然让审核人员看到。

您的应用包含的内容 – 或促进、启用和鼓励某项活动 – 在该应用的所有可用位置均不合法。具体来说,您的应用程序包含多级营销功能。

下一步

要解决此问题,请删除您的应用程序所在位置的所有非法内容和功能。请注意,App Store 不允许使用被视为非法的应用程序概念。

有关详细信息,请参阅随附的屏幕截图。

2019-05-28 更新
Guideline 2.1 – Performance – App Completeness
解决:因为商品里面的价格为0.01 ,认为有问题,被认为这个不是*终的上线数据。
将产品价格改为正常即可。

您的应用或其元数据似乎不包含*终内容。具体来说,您的应用程序包含占位符内容,例如产品价格 0.01。

在您将 app 提交到 App Store 之前,其所有内容和元数据都必须是*终的。您的应用不得包含占位符或不完整的信息。例如,在应用描述字段中包含“lorem ipsum”文本的应用将被拒*。同样,带有占位符屏幕截图的应用程序,例如“屏幕截图即将推出”,将被拒*。相反,您应该只提交包含完整信息和内容的应用程序。

下一步

要解决此问题,请检查您的应用和元数据以确保其所有内容都是*终的。

有关详细信息,请参阅随附的屏幕截图。

Guideline 1.2 – Safety – User Generated Content
问题:一个评论的内容是 “摸摸” , 这被认为是 可能令人反感的内容,如裸露、色情和亵渎内容。
解决:将评论删除 并且回复说 这个内容被删除,后续会跟进相关的评论审核。

您的应用可以显示用户生成的内容,但没有采取适当的预防措施。

下一步

要解决此问题,请修改您的应用以实施以下所有预防措施:

要求用户同意条款 (EULA) 并且这些条款必须明确表示不容忍令人反感的内容或滥用用户
一种过滤不良内容的方法
用户标记令人反感的内容的机制
用户阻止滥用用户的机制
开发者必须在 24 小时内对令人反感的内容报告采取行动,删除内容并驱逐提供违规内容的用户
详情请参阅附件截图。

2019-01-24 更新

您的二进制文件未针对 iPhone 5 进行优化 – 提交的新 iPhone 应用程序和应用程序更新必须支持 iPhone 5 上的 4 英寸显示屏,并且必须包含在 UILaunchImages 下的 Info.plist 中引用的启动图像,并将 UILaunchImageSize 值设置为 {320, 568 }. 启动图像必须是 PNG 文件并位于包的顶层,或者如果您本地化启动图像,则在每个 .lproj 文件夹中提供。通过查看 https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen 上的“iOS 人机界面指南”,了解有关 iPhone 5 支持和应用程序启动图像的更多信息。

解决:很明显,就是在LaunchImage 提供 iPhone 5的尺寸 即可

Guideline 2.3.3 – Performance – Accurate Metadata
–解决 :刚好我们的UI 用的截图是iPhone X 刘海,所以被拒*了,换成一个iPhone 标准即可。

我们注意到您的屏幕截图并未充分反映您正在使用的应用。

具体而言,您的 5.5 英寸 iPhone 屏幕截图未在正确的设备框架中显示该应用程序。

下一步

要解决此问题,请修改您的屏幕截图,以确保它们准确反映在受支持设备上使用的应用程序。iPhone 需要一套 5.5 英寸的屏幕截图,iPad 则需要一套 12.9 英寸的屏幕截图。在每个地区的 App Store 上查看时,此集合将被适当缩小到其他设备尺寸。

请注意,iPhone XS Max 的 6.5 英寸显示资产是可选的,可以缩小到 iPhone XR、iPhone XS 和 iPhone X。包含圆角或传感器外壳等功能的屏幕截图只能用于 6.5 英寸或 5.8 – 英寸显示器。

资源

有关为 App Store 创建精彩屏幕截图的资源,您可能需要查看 Apple 开发者门户上提供的 App Store 产品页面信息。

请确保您已使用媒体管理器进行了任何屏幕截图修改。您应该确认您的应用在所有语言和所有支持的设备上的外观和行为都相同。在 App Store Connect 帮助中了解有关上传 app 预览和屏幕截图的更多信息。

Guideline 2.3.10 – Performance – Accurate Metadata
– 解决:一开始以为是代码有问题,然而并不是,而是更新内容里面含有 安卓 两个字。 删除掉即可。

我们注意到您的应用或其元数据包含不相关的第三方平台信息。

具体来说,您的应用在应用说明中包含 Android 参考。

除非有特定的交互功能,否则 App Store 不允许在您的应用中引用第三方平台或其元数据。

下一步

要解决此问题,请从您的应用及其元数据中删除此信息的所有实例,包括应用说明、促销文字、*新消息、预览和屏幕截图。

Guideline 2.5.1 – Performance – Software Requirements
–解决:在描述里面说明下 为什么要使用HealthKit, 使用了什么功能,这个功能是用来干嘛的即可。

您的应用程序使用 HealthKit 或 CareKit API,但未在您的应用程序说明中指明与 Health 应用程序的集成。

下一步

要解决此问题,请修改您的应用说明以指定您的应用与健康应用集成。

详情请参阅附件截图。

—————————————-我是分割线———————————————–
Guideline 2.2 – Performance – Beta Testing
–不能出现 test,demo,beta 这些字眼

您的应用包含对测试、试用、演示、测试版、预发布或其他不完整内容的引用。

有关详细信息,请参阅随附的屏幕截图。

下一步

要解决此问题,请删除应用说明、应用图标、屏幕截图、预览、发行说明和二进制文件中对“演示”、“试用”、“测试版”或“测试”的所有引用。如果您想为您的应用程序进行 Beta 试用,您可能希望查看 TestFlight Beta 测试指南。

Guideline 2.3.10 – Performance – Accurate Metadata
– 关于我们那个我们的界面 出现了 内测的字眼

我们还注意到您的应用或其元数据包含不相关的第三方平台信息。具体来说,关于我们中提到了Android平台。

除非有特定的交互功能,否则 App Store 不允许在您的应用中引用第三方平台或其元数据。

详情请见附件截图。

下一步

要解决此问题,请从您的应用及其元数据中删除此信息的所有实例,包括应用说明、新增功能信息、预览和屏幕截图。

由于您的 iTunes Connect 状态为拒*,因此将需要一个新的二进制文件。上传新二进制文件时进行所需的元数据更改。

Guideline 2.5.2 – Performance – Software Requirements
-由于之前一直用企业账号,在一个下载界面 导致可以安装和下载

此外,在审核期间,您的应用安装或启动了 App Store 不允许的可执行代码。具体来说,您的应用程序使用 itms-services URL 方案来安装应用程序。

重要信息

由于违反此准则,您的应用程序的审核已被延迟。此应用程序以及与您的 Apple Developer 帐户相关联的其他应用程序的未来提交也将经历延迟审核。故意无视 App Store 审核指南并试图欺骗用户或破坏审核流程是不可接受的,并且是直接违反 Apple 开发者计划许可协议第 3.2(f) 条的行为。继续违反 Apple Developer Program 的条款和条件将导致您的帐户以及任何相关或链接的帐户被终止,并从 App Store 中删除您的所有相关应用程序。

我们希望为用户提供安全的应用获取体验,并为所有开发者提供一个获得成功的公平环境。如果您认为我们误解或曲解了您的应用程序的意图,您可以通过在 iTunes Connect 的调解中心直接回复此消息来提交申诉以供考虑或提供额外说明。

Guideline 4.0 – Design
-点击了版本更新 弹出不是*新版,并且可以更新

您的应用包含更新按钮或提醒用户更新应用。为避免用户混淆,应用版本更新必须利用 iOS 内置更新机制。

有关详细信息,请参阅随附的屏幕截图。

下一步

要解决此问题,请从您的应用中删除更新功能。要分发您的应用程序的新版本,请将新的应用程序二进制版本上传到您为该应用程序的先前版本创建的同一 iTunes Connect 记录中。更新版本保留与原始版本相同的 Apple ID、iTunes Connect ID (SKU) 和捆绑 ID,并且对购买先前版本的客户免费提供。

资源

要创建应用程序的新版本,请查看 iTunes Connect 开发人员帮助中的创建新版本部分。

Guideline 5.1.2 – Legal – Privacy – Data Use and Sharing
-需要获取通讯录权限,那么在提交的时候需要提供一个 隐私政策的url ,并且在app内可以看到

此外,您的应用程序从设备访问用户数据,但没有采取必要的预防措施。

下一步

要使用您的应用程序收集个人数据,您必须向用户明确他们的个人数据将上传到您的服务器,并且您必须在上传数据之前获得用户的同意。您还必须拥有隐私政策 URL,并确保您提供的 URL 将用户引导至您的隐私政策。

从 iOS 6 开始,有一些键可以指定应用程序访问用户受保护数据的原因。当显示访问提示时,这些键中指定的用途将显示在该对话框中。如果您的应用将传输受保护的用户数据,则访问请求中的使用字符串应明确告知用户,如果他们同意,他们的数据将上传到您的服务器。
准则 1.2 – 安全 – 用户生成的内容

解决:在用户详情界面提供一个举报功能
Your app enables the display of user-generated content but does not have the proper precautions in place.
下一步

要解决此问题,请修改您的应用以实施以下所有预防措施:

要求用户同意条款 (EULA) 并且这些条款必须明确表示不容忍令人反感的内容或滥用用户
一种过滤不良内容的方法
用户标记令人反感的内容的机制
用户阻止滥用用户的机制
开发者必须在 24 小时内对令人反感的内容报告采取行动,删除内容并驱逐提供违规内容的用户
从 App Review 请求电话

根据您的要求,我们可以安排 Apple 代表在接下来的三个工作日内给您打电话,讨论您的 App Review 问题。

要请求致电并确保我们拥有准确的联系信息,请直接回复此消息并提供联系人姓名和直接联系您的电话号码。

准则 4.3 – 设计

告诉苹果说我们的应用*近才完成,不存在山寨版
此应用程序复制了您或其他开发者向 App Store 提交的其他应用程序的内容和功能,这被视为一种垃圾邮件形式。

简单地复制内容或功能的应用程序会造成混乱,降低*终用户的整体体验,并降低开发人员推销其应用程序的能力。

下次提交此应用程序可能需要更长的审核时间。

下一步

查看 App Store 审核指南的设计部分。
确保您的应用符合 App Store 审核指南的所有部分以及 Apple Developer Program 的条款和条件。
一旦您的应用完全合规,请重新提交您的应用以供审核。
提交旨在误导或伤害客户或逃避审核流程的应用程序可能会导致您的 Apple Developer Program 帐户被终止。查看 Apple Developer Program 的条款和条件,了解有关终止政策的更多信息。

如果您已查看 App Store 审核指南并认为我们在您的应用审核中存在错误,您可以直接回复此消息来提交申诉或提供有关您的应用的其他详细信息。

有关应用程序设计信息,请查看以下视频:Apple Developer 网站上提供的“出色 iOS UI 设计的*佳实践”和“设计直观的用户体验”。

您可能还需要查看 iOS 人机界面指南,以获取有关如何在您的应用中创建出色用户体验的更多信息。

如果您不能——或选择不——修改您的应用程序以符合 App Store 审核指南,您可能希望构建一个 HTML5 网络应用程序。您可以直接在您的网站上分发网络应用程序;App Store 不接受或分发网络应用程序。

有关创建 Web 应用程序的更多信息,请参阅 Safari Web 内容指南的配置 Web 应用程序部分。

有关可以在 iPhone 上的 Safari 中使用的 HTML 元素和属性的描述,请查看 Safari HTML 参考:简介。

2018-01-17
又一个app 上线继续遇到坑

准则 2.1 – 性能 – 应用完整性

-查看了下 是一个crash日志 是一个 关于facebook 的一个bug,但我只在app 里面初始化而已,并没有使用。
解决: 然后直接申诉婉转说 自己的服务出了点问题,工程师已经修复,让重新审核
We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue.

下一步

要解决此问题,请修改您的应用并在设备上对其进行测试,以确保其启动时不会崩溃。

资源

有关如何符号化和读取崩溃日志的信息,请查看技术说明 TN2151 理解和分析应用程序崩溃报告。

准则 5.1.1 – 法律 – 隐私 – 数据收集和存储

-大概意思是说我们的app 可以不需要经过注册 也能进去
因为每个审核人员的 看法不一样
解决: 1、 说你们的app 有些功能需要 根据用户喜好去推荐
2、跟着他们的方法去解决,去掉登录
3、增加游客模式

我们注意到您的应用需要用户注册个人信息才能访问非基于帐户的功能。在允许访问与用户没有特别关联的应用程序内容和功能之前,应用程序不能要求用户注册。

有关详细信息,请参阅随附的屏幕截图。

下一步

需要共享个人信息的用户注册必须是可选的或绑定到特定于帐户的功能。此外,请求的信息必须与特征相关。

iOS加载WebP

遇到场景:首先直播需要展示 *物(会动的*物)

解决:按之前的考虑是 加载 gif , 但是gif 会产生锯齿导致*物不好看,*后我们想到了webp , 我们将 UI 设计好的 png 几个帧数 合成了webp 格式。

加载webp 我使用的是 YYWebImage
首先加载执行

pod ‘YYWebImage’, ‘~> 1.0.5’

跟着执行

pod ‘YYImage/WebP’

先执行*步不然第二个 webp 加载不出来。
*后我们打开项目查下 是否有WebP.framwork 这个

%title插图%num
其实WebP 有两种,一种是静态,一种是动态(类似gif 很多张合成一个会动的图)

这个是静态的webp
YYAnimatedImageView *imgView = [[YYAnimatedImageView alloc] init];
imgView.frame = CGRectMake(10.f, 80.f, width, width);
imgView.backgroundColor = [UIColor purpleColor];
[self.view addSubview:imgView];

NSURL *url = [NSURL URLWithString:@”http://xx/app/test.webp”];
[imgView yy_setImageWithURL:url placeholder:nil];

这加载 动态的webp
YYAnimatedImageView *imgView2 = [[YYAnimatedImageView alloc] init];
imgView2.frame = CGRectMake(CGRectGetMaxX(imgView.frame) + 10.f, CGRectGetMinY(imgView.frame), width, width);
imgView2.backgroundColor = [UIColor purpleColor];
[self.view addSubview:imgView2];

NSURL *url2 = [NSURL URLWithString:@”http://pia2njyxv.bkt.clouddn.com/out.webp”];
[imgView2 yy_setImageWithURL:url2 placeholder:nil];

这个是加载gif (为了对比记载一个gif 看看)
YYAnimatedImageView *imgView3 = [[YYAnimatedImageView alloc] init];
imgView3.frame = CGRectMake(10.f, CGRectGetMaxY(imgView.frame) + 20.f, width, width);
imgView3.backgroundColor = [UIColor purpleColor];
[self.view addSubview:imgView3];

NSURL *url3 = [NSURL URLWithString:@”http://xx/pre/gifts/gift_send_5_1541749467.gif”];
[imgView3 yy_setImageWithURL:url3 placeholder:nil];

 

*后看看 效果图

%title插图%num
后面会继续写 怎样将png合成一个webp (假设的前提是你们的UI 不会,如果会就忽略过就好)
下午继续写

DDoS攻击方式的学习与了解

之前并未接触过DDoS,也不是很了解这种攻击方式到底分了多少种,近日分析一个样本,发现是DDoS攻击工具,于是要求我去分析下使用的是什么攻击方式,我也很疑惑,他们讲的一些攻击方式我也没有听说过,也不了解,于是就赶紧趁机会百度,谷歌学习了一下,*后在知乎上找到了一些比较详细的说明吧,是知道创宇的官方公众号写的,我觉得他解释和说明的都很不错,于是就打算拿来学习一下,下次就不用找相关的资料那么麻烦了。

作者:知道创宇 云安全
链接:https://www.zhihu.com/question/22259175/answer/378530276
来源:知乎

DDoS攻击有哪些?

ICMP Flood

ICMP(Internet控制报文协议)用于在IP主机、路由器之间传递控制消息,控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息,虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。通过对目标系统发送海量数据包,就可以令目标主机瘫痪,如果大量发送就成了洪水攻击。

UDP Flood

UDP协议是一种无连接的服务,在UDP Flood 中,攻击者通常发送大量伪造源IP地址的小UDP包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。100k bps的UDP Flood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。

上述传统的流量型攻击方式技术含量较低,伤人一千自损八百,攻击效果通常依赖受控主机本身的网络性能,而且容易被查到攻击源头,单独使用的情况已不常见。于是,具有四两拔千斤效果的反射型放大攻击就出现了。

NTP Flood

NTP是标准的基于UDP协议传输的网络时间同步协议,由于UDP协议的无连接性,方便伪造源地址。攻击者使用特殊的数据包,也就是IP地址指向作为反射器的服务器,源IP地址被伪造成攻击目标的IP,反射器接收到数据包时就被骗了,会将响应数据发送给被攻击目标,耗尽目标网络的带宽资源。一般的NTP服务器都有很大的带宽,攻击者可能只需要1Mbps的上传带宽欺骗NTP服务器,就可给目标服务器带来几百上千Mbps的攻击流量。

因此,“问-答”方式的协议都可以被反射型攻击利用,将质询数据包的地址伪造为攻击目标地址,应答的数据包就会都被发送至目标,一旦协议具有递归效果,流量就被显著放大了,堪称一种“借刀杀人”的流量型攻击。

SYN Flood

这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。建立TCP连接,需要三次握手——客户端发送SYN报文,服务端收到请求并返回报文表示接受,客户端也返回确认,完成连接。

SYN Flood 就是用户向服务器发送报文后突然死机或掉线,那么服务器在发出应答报文后就无法收到客户端的确认报文(第三次握手无法完成),这时服务器端一般会重试并等待一段时间后再丢弃这个未完成的连接。一个用户出现异常导致服务器的一个线程等待一会儿并不是大问题,但恶意攻击者大量模拟这种情况,服务器端为了维护数以万计的半连接而消耗非常多的资源,结果往往是无暇理睬客户的正常请求,甚至崩溃。从正常客户的角度看来,网站失去了响应,无法访问。

CC 攻击

CC攻击是目前应用层攻击的主要手段之一,借助代理服务器生成指向目标系统的合法请求,实现伪装和DDoS。我们都有这样的体验,访问一个静态页面,即使人多也不需要太长时间,但如果在高峰期访问论坛、贴吧等,那就很慢了,因为服务器系统需要到数据库中判断访问者否有读帖、发言等权限。访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也就相当可观。

CC攻击就充分利用了这个特点,模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的请求,网络拥塞,正常访问被中止。这种攻击技术性含量高,见不到真实源IP,见不到特别大的异常流量,但服务器就是无法进行正常连接。

之所以选择代理服务器是因为代理可以有效地隐藏自己的身份,也可以绕开防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。当然也可以使用肉鸡来发动CC攻击,攻击者使用CC攻击软件控制大量肉鸡发动攻击,肉鸡可以模拟正常用户访问网站的请求伪造成合法数据包,相比前者来说更难防御。

CC攻击是针对Web服务在第七层协议发起的攻击,在越上层协议上发动DDoS攻击越难以防御,上层协议与业务关联愈加紧密,防御系统面临的情况也会更复杂。比如CC攻击中*重要的方式之一HTTP Flood,不仅会直接导致被攻击的Web前端响应缓慢,对承载的业务造成致命的影响,还可能会引起连锁反应,间接攻击到后端的Java等业务层逻辑以及更后端的数据库服务。

由于CC攻击成本低、威力大,知道创宇安全专家组发现80%的DDoS攻击都是CC攻击。带宽资源严重被消耗,网站瘫痪;CPU、内存利用率飙升,主机瘫痪;瞬间快速打击,无法快速响应。

DNS Query Flood

DNS作为互联网的核心服务之一,自然也是DDoS攻击的一大主要目标。DNS Query Flood采用的方法是操纵大量傀儡机器,向目标服务器发送大量的域名解析请求。服务器在接收到域名解析请求时,首先会在服务器上查找是否有对应的缓存,若查找不到且该域名无法直接解析时,便向其上层DNS服务器递归查询域名信息。

通常,攻击者请求解析的域名是随机生成或者是网络上根本不存在的域名,由于在本地无法查到对应的结果,服务器必须使用递归查询向上层域名服务器提交解析请求,引起连锁反应。解析过程给服务器带来很大的负载,每秒钟域名解析请求超过一定的数量就会造成DNS服务器解析域名超时。

根据微软的统计数据,一台DNS服务器所能承受的动态域名查询的上限是每秒钟9000个请求。而一台P3的PC机上可以轻易地构造出每秒钟几万个域名解析请求,足以使一台硬件配置*高的DNS服务器瘫痪,由此可见DNS服务器的脆弱性。

混合攻击

在实际情况中,攻击者只求达到打垮对方的目的,发展到现在,高级攻击者已经不倾向使用单一的攻击手段作战了,而是根据目标系统的具体环境灵动组合,发动多种攻击手段,既具备了海量的流量,又利用了协议、系统的缺陷,尽其所能地展开攻势。

对于被攻击目标来说,需要面对不同协议、不同资源的分布式的攻击,分析、响应和处理的成本就会大大增加。

还有一位知乎网友举例子比较形象,可以让我们更加容易理解

作者:刘哲
链接:https://www.zhihu.com/question/22259175/answer/37315615
来源:知乎
  • 某饭店可以容纳100人同时就餐,某日有个商家恶意竞争,雇佣了200人来这个饭店坐着不吃不喝,导致饭店满满当当无法正常营业。(DDOS攻击成功)
  • 老板当即大怒,派人把不吃不喝影响正常营业的人全都轰了出去,且不再让他们进来捣乱,饭店恢复了正常营业。(添加规则和黑名单进行DDOS防御,防御成功)
  • 主动攻击的商家心存不满,这次请了五千人逐批次来捣乱,导致该饭店再次无法正常营业。(增加DDOS流量,改变攻击方式)
  • 饭店把那些捣乱的人轰出去只后,另一批接踵而来。此时老板将饭店营业规模扩大,该饭店可同时容纳1万人就餐,5000人同时来捣乱饭店营业也不会受到影响。(增加硬防与其抗衡)

DDOS是Distributed Denial of Service的缩写,翻译成中文是“分布式拒*服务“攻击,网络中的DDOS攻击与防御与上面例子所述差不多,DDOS只不过是一个概称,其下有各种攻击方式,比如“CC攻击、SYN攻击、NTP攻击、TCP攻击、DNS攻击等等”,现在DDOS发展变得越来越可怕,NTP攻击渐渐成为主流了,这意味着可以将每秒的攻击流量放大几百倍,比如每秒1G的SYN碎片攻击换成NTP放大攻击,就成为了200G或者更多。

作者:欧阳闲的
链接:https://www.zhihu.com/question/22259175/answer/363980556
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

ddos简单的说就是让流量瞬间把服务器带宽耗尽!cpu耗尽!是一种网络暴力手段!今年3月份的时候我们遇到一个做ddos的高手和我们合作 做的是手游棋牌 瞬间就把我们的对手给打崩溃了!后来他们的玩家都跑来我们的平台玩了!攻防无*对,技术无黑白!实力证明一切 王者*非偶然!

1:DDOS攻击的全称叫作 distribution deny of service(分布式拒*服务攻击)。顾名思义,这种攻击的方式是控制分布在全世界各个地方的服务器,发出指令,让这些服务器同时攻击一个目标,使得被攻击的计算机信息系统耗尽网络带宽资源、性能资源,无法正常运行或提供服务

2:攻击流程分为2个阶段:搜集肉鸡和发动攻击。
● 搜集肉鸡
 攻击者可以通过各种手段搜集肉鸡,包括购买他人非法入侵获得的肉鸡、自己实施入侵并传播木马、租赁服务器和带宽等。
在此过程中,攻击者必然会在肉鸡上种植木马,以便统一集中控制和发动攻击指令。

● 发动攻击 攻击者发出指令,让肉鸡同时发起攻击,发送大量攻击的网络数据包,耗尽目标网络带宽或者其他资源,导致被攻击目标无法提供正常服务。

● 攻击后果 攻击者可以通过多台肉鸡同时发送大量垃圾数据,造成大流量的数据包,导致服务器带宽耗尽,正常玩家无法发送网络数据包,服务器无法及时反馈数据,游戏运营被迫中断。

总结一句话来说 现在的ddos行业就是一个互相烧钱 让对方流失客源的一种暴力行为!希望大家能借鉴!! 

微信网页端部分华为手机不能正常显示网页的问题

之前写了个网页,JSP 写的,是在微信上预约登记用,打开网页后调用 api 登录,并存储预约和 openid 信息

一开始都是正常的,上线后,甲方反馈网页有时候打开是异常的,并截图给我看了

截图很明显的可以看出来是 JS 、图片等静态资源没有加载出来

经过多次反馈,总结了一下问题出现的情况:

1 、只有华为手机会出现,而且应该是部分高端一点的华为手机才会出现
2 、网页用域名访问才会出现,换成 ip + 端口 访问就不会出现

因为是网页,加上只有在部分手机上才能复现,所以没办法调试和查找问题(我是菜鸡),所以来大佬云集的 V2 问问各位大佬,你们遇到过这种情况吗?怎么解决呢?

或者请教一种能在微信网页里查找问题的方法,谢谢大家
网页 华为 微信 菜鸡11 条回复 • 2021-06-28 13:20:21 +08:00
vk42 1
vk42 2 小时 33 分钟前
以前华为自己 fork 了一个早期版本的 WebKit 做了个 Huawei Webview,而且一直没有跟进 upstream,导致会有各种兼容性问题。现在不清楚什么情况了,也不知道 lz 问题和这个关系不……
seamonster 2
seamonster 2 小时 29 分钟前
@vk42 #1 不知道诶,现在就解决不了,很烦
GOKOG 3
GOKOG 2 小时 25 分钟前
不知道 jsp 是否能引入 vConsole,可以 debug 一下
seamonster 4
seamonster 2 小时 23 分钟前
@GOKOG #3 我试过了,但是 vConsole 再页面加载完了才开始启用,检测不到前面的请求…
GOKOG 5
GOKOG 2 小时 20 分钟前
@seamonster 第三方浏览器有这个问题吗
adminharlem 6
adminharlem 2 小时 20 分钟前
Huawei Webview 的问题
seamonster 7
seamonster 2 小时 14 分钟前
@GOKOG #5 其他的正常,就在微信里不行,而且微信里用 IP 访问正常,域名不行
youbaoer 8
youbaoer 1 小时 57 分钟前
鸿蒙,EDGE 浏览器,BTSOW, 选择磁力链接后弹出来菜单是空白的。但点下左边空白处还能复制。
youbaoer 9
youbaoer 1 小时 55 分钟前
@youbaoer 重新试了下 Inprivate 模式下的问题
faqqcn 10
faqqcn 11 分钟前
微信内打开 http://debugx5.qq.com/ ,然后打开 「打开 TBS 内核 inspector 」,在 PC 上用 Chrome 连接手机进行检查。

至于你说的这个情况,更像是 DNS 的问题

faqqcn 11
faqqcn 10 分钟前
补充,如果不是 x5 内核的话,就要找对应 webview 的调试方式,没有 HUAWEI 设备,没法测试

有人复制了我的 MIT 开源项目并删除了所有与我相关的信息,支支招

起源于我开发的开源项目 element-pro-components

今天发现一个项目 Element Enahcne 与我的项目高度重复,查看他的代码。完全是复制我项目的代码,删除 git 信息,修改前缀,而且删除了我的 LICENSE 。

而我去他项目提 issues,直接被他删除,却跑到我的项目发 issues,一点也不尊重人。

@Jmysy 过来恶心人,并且请停止抄袭我的项目。

项目 开源 支支 issues89 条回复 • 2021-06-28 13:21:23 +08:00
ufan0 1
ufan0 15 小时 52 分钟前
首先站内 @Livid,
然后代码平台发邮件。
yitingbai 2
yitingbai 15 小时 43 分钟前
这种人除了道德谴责也没别的办法了, 开源嘛, 想开点
tolking 3
tolking 15 小时 35 分钟前
@ufan0 感谢
Kilerd 4
Kilerd 15 小时 11 分钟前 ❤️ 3
不是,你都 MIT 了,不是默许别人这么做了的吗?

难不成你选的 license 就是随口一说? 别人拿你的东西挣了钱,挣了声望,你就眼红了?就嫉妒了?
learningman 5
learningman 15 小时 9 分钟前 via Android ❤️ 24
@Kilerd 谁默许了??? MIT 要求必须包括著作权声明和 MIT 证书本身好吧
Kilerd 6
Kilerd 15 小时 8 分钟前
看了一下,他无非就是删除了你的 LICENSE 这么一件事违反了 MIT 协议,其他的都是在 MIT 里面默许的操作。
neteroster 7
neteroster 15 小时 8 分钟前 via Android ❤️ 9
@Kilerd MIT 协议不允许删原作者的 LICENSE 。
tolking 8
tolking 15 小时 2 分钟前
@Kilerd 关键是他删除了我的 LICENSE 。已经在 gitee 上举报了,github 上还没有找到地方举报
ysc3839 9
ysc3839 14 小时 53 分钟前 via Android ❤️ 6
@Kilerd MIT 协议写得很清楚
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
也就是说如果你不保留 license 的话,那前文所述的授权就不会生效,不存在“默许”一说。
FindHao 10
FindHao 14 小时 50 分钟前 via Android
https://docs.github.com/en/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam

IgniteWhite 11
IgniteWhite 14 小时 45 分钟前 ❤️ 46
楼上有几个说的是什么话,违反了 MIT 就是违反了,没有什么“违反一点点”,没有什么“不值得维权”。当然要维护作者的权利啊!还有人说“开源想开点”,真的是醉了
hazy 12
hazy 14 小时 40 分钟前 ❤️ 3
支持举报,很多人都以为 MIT 就可以为所欲为了,结果连协议内容都没认真看过
konnnnn 13
konnnnn 14 小时 37 分钟前
可耻,他居然还发过几个贴宣传
tolking 14
tolking 14 小时 13 分钟前
@FindHao 感谢,已经申请了 DMCA
zvl0reqglvd 15
zvl0reqglvd 13 小时 49 分钟前 ❤️ 1
一直觉得程序员这个职业有个问题,无偿分享自己的技术,还弄个 GitHub 生怕别人不知道,老话说的好,教会徒弟,饿死师傅。然后资本家可以根据你的文档和分享找个更年轻的替代你。自己给自己挖坑埋自己。蜜汁操作。

为啥要开放全部源代码呢?做成动态链接库,加些限制在里面我感觉比较好些。
Smash 16
Smash 13 小时 37 分钟前
怼到底,这种事儿没有商量的余地,你可以用我的代码,但是你得守规矩。
cmdOptionKana 17
cmdOptionKana 13 小时 37 分钟前 ❤️ 1
@zvl0reqglvd 开源有利于宣传,多数普通个人开发者搞开源的目的是攒点小名气、攒点赞让简历好看等等。

如果拥有能拿来赚钱的闭源技术,且开源会直接影响自己赚钱,这种情况下当然不会傻傻地开源(就算开源也是思考过,开源一部分,或拿到了投资开始开发高级版等等)。
stimw 18
stimw 13 小时 30 分钟前 via Android ❤️ 9
4 楼三连问把我看傻了,怕不是也干过这事
binux 19
binux 13 小时 28 分钟前 via Android ❤️ 4
@zvl0reqglvd 我靠开源工资已经一路涨了 20 倍了,就算不开源,那些东西能给我赚个零头?
stimw 20
stimw 13 小时 22 分钟前 via Android
看了下他的发帖,这人的项目不会全是抄的吧?
IgniteWhite 21
IgniteWhite 13 小时 13 分钟前
@binux 活捉大神
h404bi 22
h404bi 12 小时 51 分钟前
佩服 4 楼,MIT 许可协议具体规则不搞清楚就来个“拷问”三连,写的项目还用着 MIT 。
learningman 23
learningman 12 小时 41 分钟前 via Android
@zvl0reqglvd 那你有没有想过,gcc 如果也要授权,会是怎么样呢?
Python 执行器先交 100 刀,一个包再 20 刀。C++用 std 编译一次 5 美元
twl007 24
twl007 11 小时 36 分钟前 via iPhone
@Kilerd 就算你 fork 一份在公司内网 你也要保留人家的 license 好吧 这种行为很恶劣好吧 跟偷窃有什么区别?
jupiter157 25
jupiter157 10 小时 54 分钟前 via iPhone ❤️ 7
强奸犯也只是开始违反了一点点意愿,后面的和谈恋爱流程一样的
Yvette 26
Yvette 8 小时 30 分钟前
@jupiter157 ???
leokino 27
leokino 7 小时 20 分钟前
@Kilerd 这话说的真是搞笑,那不如以后说“无非是没有付钱”这一件事情没有遵照协议执行,其他都是允许的操作。更何况 MIT 协议约定的使用者义务非常少,不遵守=无授权。
2G 28
2G 7 小时 5 分钟前
支持维权!
JaguarJack 29
JaguarJack 6 小时 52 分钟前 via iPhone
@tolking 可以发邮件的,会很快有回复和处理
hw2ex 30
hw2ex 6 小时 20 分钟前 via Android
MIT 协议基本没什么限制,这是其中一方面,另一方面是国内很多大公司都有把别人开源改的,也是实情,建议楼主既然都 MIT 开源了,各取所需就是了
who1996 31
who1996 6 小时 15 分钟前
没有啥特别涉及利益的别大动肝火,没必要。

很多人不会跟你讲仁义道德的,比如我前段时间遇到一个人,求你的时候说话很正常,当没事求你的时候开始在那里放洋炮。
panda1337 32
panda1337 5 小时 27 分钟前
www.pearadmin.com 是他的网站,已安排 ddos
way2explore2 33
way2explore2 5 小时 13 分钟前 via Android
看来好多人误解了,以为只是用你代码而已
snw 34
snw 5 小时 6 分钟前 via Android ❤️ 2
楼上某些人真是令人无语。

署名权是知识创作者的*基本权利,这就是为什么几乎所有自由协议(不只是软件类,还有其他知识产权例如 CC )都有署名这条要求。另外像专利权,即使可以让渡几乎所有权利,作者一般依然可以保留署名。

要是真的作者不在乎署名,那么直接释放到公有领域 public domain (或者 CC0,WTFPL 之类等价许可)就行了。既然作者用了 MIT 许可,就说明作者是希望保留署名权的。
rioshikelong121 35
rioshikelong121 4 小时 58 分钟前
ddos 安排起来。 楼上有的人真的是给我整笑了,偷了就是偷了。
tairan2006 36
tairan2006 4 小时 49 分钟前
回帖丰富了 block 名单……

DCMA 走起来
crystone 37
crystone 4 小时 48 分钟前
@rioshikelong121 小学生长大了
TsubasaHanekaw 38
TsubasaHanekaw 4 小时 45 分钟前
楼上已经安排 ddos 的 真是已经在触犯刑法了
jorneyr 39
jorneyr 4 小时 27 分钟前
教教怎么搞 DDOS 吧,实用。
Rheinmetal 40
Rheinmetal 4 小时 19 分钟前 ❤️ 3
@zvl0reqglvd
和早期大佬的想法和整个产业的性质有关系。
你想想如果封闭的话会变成什么样。
Gcc 的 license5 万美元一个。人不值钱
保护来保护去都是大公司的利益,程序员汤都没有。
msaionyc 41
msaionyc 4 小时 16 分钟前 via iPhone
@Kilerd 无非?
hijoker 42
hijoker 4 小时 14 分钟前
太 jier 不要脸了吧,人肉丫的
Rheinmetal 43
Rheinmetal 4 小时 12 分钟前
@rioshikelong121 声称安排是否足够定罪呢?
weak 44
weak 4 小时 6 分钟前 via iPhone
4 楼莫非是敌军派来了的
wellsc 45
wellsc 4 小时 4 分钟前
@ufan0 站内 livid 有用?那站长管的还挺多
no1xsyzy 46
no1xsyzy 4 小时 1 分钟前 ❤️ 1
@zvl0reqglvd 这你要问 ESR

@Kilerd 你是不是对法律有什么误解?
除了执行器目前不是机器而是人以外,法律文本和程序代码没有区别,只有自身明确允许(声明类型)和上位法明确允许(引入类型)和隐式允许(推导类型),从来没有「默许」一说(默许只会是执行策略的一部分)。值得注意的是:『如果 MIT 是「默许」,则大量的授权代码将无法被使用』,因为专利不可默许(实际上 MIT 的文本中隐式允许了专利使用权)。

就是你写出的 `if (false) { print(“Hello world”) }` 还在问为什么没打印?
xuanbg 47
xuanbg 4 小时 0 分钟前
这种事我都是眼不见心不烦。看见也当没看见
Spoience 48
Spoience 3 小时 58 分钟前 via Android
点进去看他的那个帖子:开发文档|更新日志|常见问题|发布需求 几个链接都 404/403 了?应该是心虚删库或者 make private 了吧?
coolair 49
coolair 3 小时 56 分钟前
学习心得:
1 )了解受众。
2 )必须有图。
3 )常更新。
ziskyex 50
ziskyex 3 小时 53 分钟前 via Android
支持维权
creanme 51
creanme 3 小时 52 分钟前 via Android
萌新不太懂,想请教一下你的 LICENSE 是指啥,我翻了一下你的项目,只看到一个 MIT LICENSE 。
ohwind 52
ohwind 3 小时 52 分钟前
@Kilerd MIT 不是 WTFPL,如果不带 MIT 证书,MIT 许可不会生效,这算侵权
ohwind 53
ohwind 3 小时 49 分钟前
@zvl0reqglvd 开源不是无偿,free 不是 free
ohwind 54
ohwind 3 小时 47 分钟前
@creanme 只有 MIT 说明 LICENSE 就是 MIT 啊,难道你觉得 MIT 不算吗……
37Y37 55
37Y37 3 小时 37 分钟前
楼上的回答把我看笑了,无非就是 xxx
dfkjgklfdjg 56
dfkjgklfdjg 3 小时 36 分钟前
关键是还去仓库提了 Issue…..这操作…emmmmmmm
Cy1 57
Cy1 3 小时 34 分钟前
@Kilerd 就问一句,他违反 MIT 了没有?
如果违反了,那正常维权为什么要被你说成眼红和嫉妒?这是什么逻辑?
abersheeran 58
abersheeran 3 小时 28 分钟前 ❤️ 1
所有程序员应该都是享受过开源世界带来的好处的。端起碗叫爹,放下碗骂娘的行为不可取。

我还记得 SSR 作者当年因为违反开源协议被人骂了一路……给彼时还比较呆的我留下了深刻的印象。
cstj0505 59
cstj0505 3 小时 25 分钟前
@Kilerd 开源项目删除 license 这是也能无非?
blindpirate 60
blindpirate 3 小时 25 分钟前
@Jmysy
Jmysy committed 1 hour ago
Showing with 0 additions and 22,835 deletions.

开始删代码了: https://github.com/Jmysy/element-enhance/commit/f2d1bc507f834511a79ce8202250cafcdc5f2353
MoeMoesakura 61
MoeMoesakura 3 小时 24 分钟前
@zvl0reqglvd 不是我说,深度就有这种破事(
blindpirate 62
blindpirate 3 小时 22 分钟前
*搞笑的是盗窃者开始还开了个 issue 问问题: https://github.com/tolking/element-pro-components/issues/56

作者耐心回复完了盗窃者发现不错直接偷过来用了
tankren 63
tankren 3 小时 14 分钟前
@Kilerd 小号给自己开脱?
Maiiiiii 64
Maiiiiii 3 小时 11 分钟前
资瓷维权
nian8 65
nian8 3 小时 9 分钟前
ddos 感觉好友效果
SelFree 66
SelFree 3 小时 0 分钟前
大佬们可以查查他另一个项目了
xwayway 67
xwayway 2 小时 51 分钟前
项目都已经删了,或者说 private 了?
liuidetmks 68
liuidetmks 2 小时 50 分钟前
@panda1337 人家偷一个饼子,你拿一包炸药去炸老家?

正确的做法是,让他壮大,
*后诉诸法律,拿到巨额赔偿
我建议的时机是他公司 ipo 前
tolking 69
tolking 2 小时 38 分钟前
@panda1337
@hijoker
@nian8
不必,我需要的是维权
guanyin8cnq12 70
guanyin8cnq12 2 小时 24 分钟前
@tolking 违法协议,请求 github 删除他的代码
chenquincy 71
chenquincy 2 小时 11 分钟前
@blindpirate 大概率是惯犯,怕被扒个底朝天,很少在 V 站留言,真的被恶心到了
shayu*0001 72
shayu*0001 2 小时 6 分钟前
@Kilerd 先把几个开源的 License 以及他们的区别弄清楚再说吧。
HankAviator 73
HankAviator 2 小时 3 分钟前 via Android
无论什么情况都不要用另一个错误去报复已有的错误,尤其是事外人看起来会加重群体刻板印象的-比如滥发 issue 表示愤怒。v2ers 不要这样做。
ddos 私心是支持的☺️
zictos 74
zictos 1 小时 54 分钟前
如果赚钱了是否可以算侵犯著作权罪?毕竟违反了一部分规定就相当于没得到授权
opentrade 75
opentrade 1 小时 50 分钟前
@HankAviator 对的
Junzhou 76
Junzhou 1 小时 46 分钟前
@Kilerd “看了一下,他无非就是删除了你的 LICENSE 这么一件事违反了 MIT 协议,其他的都是在 MIT 里面默许的操作。”

这句话可真让人看了来气啊,“无非就是删除了你的 LICENSE 这么一件事违反了 MIT 协议,其他的都是在 MIT 里面默许的操作。” 看完这句话我傻了。。。
Jmysy 77
Jmysy 1 小时 37 分钟前 ❤️ 1
原 Forked 是拿来做 样式修订 与 组件扩展,考虑发版自由等,为后续的项目填充第三方库,但未保留原协议 而 违反 MIT 协议的部分内容,本人表示抱歉,无意引战,已删除相关仓库
raiz 78
raiz 1 小时 34 分钟前
大公司开源操作系统带的好头,风气越来越差 /狗头
beimenjun 79
beimenjun 1 小时 33 分钟前
@Kilerd 2014 年的 id 发出这种暴论,你这职业生涯究竟在搞什么东西啊。
extra888 80
extra888 1 小时 29 分钟前
支持维权
xd314697475 81
xd314697475 1 小时 28 分钟前
@ohwind open source 不等于 free

开源( open source )只是开放源码,具体的权益由所有人决定
自由( free )是完全开放的,任何人可以复制,分发,修改,不受任何限制
VZXXBACQ 82
VZXXBACQ 1 小时 26 分钟前
DCMA 提交 Github 干他啊,遇事 DDOS 的哥们真冲啊,法外狂徒。
unco020511 83
unco020511 1 小时 20 分钟前
@raiz 哈哈,又莫名被戳一下脊梁骨
raiz 84
raiz 1 小时 13 分钟前
@unco020511 我不是故意的,但我忍不住,限制整个网络都是关于整个主题的消息,b 乎,B 站,连同花顺都不放过。
fengfisher3 85
fengfisher3 1 小时 8 分钟前
支持维权。
zxcslove 86
zxcslove 25 分钟前
支持维权,法盲真多
wxw752 87
wxw752 24 分钟前
笑死我了,六楼老哥这个 [无非] 用的妙啊。侵权还能洗?
vexplain 88
vexplain 23 分钟前
支持维权。
arphone 89
arphone 7 分钟前
支持维权。。。

记一次服务器被爆破 防护历程

在腾讯云搞了一个云主机, 安装了宝塔的服务, 第三天登陆 后台发现有两个ip在爆破root 密码, 虽然对自己的密码强度比较自信, 但是被人惦记也是很难受。决定做点什么 。。。。
直接进入正题:
1. *基本的建议就是:平时登陆和工作的时候都使用普通用户进行操作 直接禁用root 登陆ssh, 有很多hk都在恶意爆破 root shh 直接k掉。
在sshd_config中修改如下就可以了:

PermitRootLogin no

附: 添加普通用户

adduser user

gpasswd -a user sudo
// 添加用户,并且加入sudo组

2.直接了当的方法, ssh秘钥, 具体操作方法 直接上大佬的 博客
自己写的也不清楚, 参照一下大佬。

3.DenyHosts : 个人认为是比较高效的,针对密码爆破的防护工具 具体安装 不再多写。
4.推荐一些关于ssh 的 东西吧
http://www.ibm.com/developerworks/cn/aix/library/au-sshsecurity/ IBM的各种介绍
http://erik-2-blog.logdown.com/posts/74081-ssh-principle SSH原理
http://skypegnu1.blog.51cto.com/8991766/1641064 SSH原理和基本使用
http://zhezhang.co/2015/01/deploy-ghost-on-digitalocean/ 部署ghost
http://blog.csdn.net/oncoding/article/details/4365062 SSH连接过程
https://blog.urfix.com/25-ssh-commands-tricks/ SSH小技巧
http://spenserj.com/blog/2013/07/15/securing-a-linux-server/ Securing a Linux Server 对服务器整体的安全提供方案。
http://www.lovelucy.info/vps-anti-ssh-login-attempts-attack.html 防爆破
https://mos.meituan.com/library/?tag=Ubuntu 美团云知识库
http://wiki.ubuntu.org.cn/OpenSSH%E9%AB%98%E7%BA%A7%E6%95%99%E7%A8%8B openssh 高级设置
https://www.linux.com/learn/advanced-ssh-security-tips-and-tricks linux.com文章
http://tool.oschina.net/commons?type=7 TCP/UDP常见端口
http://tool.chinaz.com/port/ 通过扫描工具查看自己的服务器端口开放状态

防止云服务器被爆破的一些措施

防止云服务器被爆破的措施
修改SSH登录端口
禁用root用户
友情提示
结语
*近频繁接收到云服务器告警信息,提示被暴力破解登录,由于本人懒惰,没有搭理,第二日IP被冻结!!!尴尬!!!为了防止再次被破解,加了一层简单的防护措施!

修改SSH登录端口
# 将#Port 22去掉#,修改为10000后的端口号,保存并退出
vi /etc/ssh/sshd_conf
:wq
# 重启SSH服务
systemctl restart sshd.service

禁用root用户
当然,修改端口有一定的作用,可以躲过一些广撒网式攻击,但由于有扫描端口的工具存在,ssh服务的端口经过扫描就会被发现,所以还需要进一步加强安全 —— 禁用root用户。

# 禁用root用户前当然还需要新建一个用户
adduser 用户名
# 修改用户密码(别太弱哦!!!)
password 用户名
# 修改新建用户的权限,先把权限文件的权限变成可编辑
chmod -v u+w /etc/sudoers
# 修改权限文件
vim /etc/sudoers
# 在文件*下方添加如下内容,为新账号添加权限后,保存并退出
用户名 ALL = (ALL) ALL
:wq
# *后为了安全,把权限配置文件的可编辑权限取消
chmod -v u-w /etc/sudoers
# 开始禁用root账号,在SSH服务的配置文件中,把root的远程登录权限禁止
# 将#PermitRootLogin yes去掉#,并将yes改为no,保存并退出
vi /etc/ssh/sshd_conf
:wq

友情提示
我的云服务之所以被爆破成功,客服的答复是某些数据库设置了弱密码,所以注意这些安全措施。
大家也可以不时使用lastb命令,看看电脑是否被人尝试远程登录。
lastb:显示远程登录失败的记录
用w命令看看当前是否其他人远程登录到服务器
%title插图%num

果然,我的云服务器仍然有人在使用root用户进行爆破,直接在云控制台将这些IP添加黑名单

结语
把root账号禁用了,使用自己创建的账号,基本就可以排除服务器被暴力破解的可能性了,但仍要注意不要在服务器中打开可疑的程序,或者安装来源不安全的软件,版本比较旧的软件也不要使用(有些旧版本软件有网上流传的安全漏洞),不同服务器间也*好使用规律不同的账号密码,某些数据库的密码不要太弱等;不然再万全的措施也会被攻破。