Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

非公開 API が含まれていた場合エラーにする #224

Merged
merged 6 commits into from
Jan 24, 2025

Conversation

torikizi
Copy link
Contributor

CI 実行時に依存パッケージに非公開 API が含まれていた場合エラーにするようにしました。
非公開 API が含まれていると Apple の審査が通らないため、事前に確認することを目的としています。

今回追加したのは _kVTVideoEncoderSpecification_RequiredLowLatency をチェックするようにしています。


This pull request includes an important change to the jobs: section in the .github/workflows/build.yml file. The change introduces a check for non-public APIs in the WebRTC framework during the build process.

Build process improvement:

  • .github/workflows/build.yml: Added a check to detect the presence of the _kVTVideoEncoderSpecification_RequiredLowLatency symbol in the WebRTC framework. If detected, the build process will output an error message, remove the Pods/, Podfile.lock, and Sora.xcworkspace/ directories, and exit with an error status.

Copy link
Contributor

@miosakuma miosakuma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

既知の問題が発生した時に検知できるようになったと思います、対応ありがとうございました。

@@ -35,6 +35,11 @@ jobs:
rm Podfile && mv Podfile.dev Podfile
pod repo update
pod install
if nm ./Pods/WebRTC/WebRTC.xcframework/ios-arm64/WebRTC.framework/WebRTC | grep _kVTVideoEncoderSpecification_RequiredLowLatency >/dev/null 2>&1; then
echo 'Error: Non-public API detected in WebRTC framework.'
rm -rf Pods/ Podfile.lock Sora.xcworkspace/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ここなんで rm してるんですっけ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

失敗だった場合 pod install を削除してクリアな状態に戻したいという意図です。
キャッシュを使っているようでしたので残さない方が良い判断です。

https://github.com/shiguredo/sora-ios-sdk/blob/feature/reject-non-public-api-binary/.github/workflows/build.yml#L27

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます。
キャッシュ削除ということで納得です。

Copy link
Contributor

@zztkm zztkm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM です。

1点だけ追加コメントです
Sora.xcworkspace/ については削除する必要がないように見えました(CI のステップ的に問題にはならなさそうですが)

@torikizi
Copy link
Contributor Author

pod install の時に生成されるので Sora.xcworkspace/ の削除は不要ですね。この削除部分を修正して、マージします。

@zztkm
Copy link
Contributor

zztkm commented Jan 24, 2025

ありがとうございます!

@torikizi
Copy link
Contributor Author

4823237 で削除しました。CI が通り次第マージします。

@torikizi
Copy link
Contributor Author

キャッシュはジョブが正常に行われた時に実行されるため、rm は不要でした。削除します。

@torikizi torikizi merged commit 20117c2 into develop Jan 24, 2025
4 checks passed
@torikizi torikizi deleted the feature/reject-non-public-api-binary branch January 24, 2025 02:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants