APP 送審自動化 - PC Lin 林培鈞
投影片
YouTube
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
送審大量 iOS App 面對的難題
- Code signing 相關問題要如何處理?
- 如何使用有效率產出 IPA ?
- 如何有效率的送審 App ?
* Apple 到底埋了多少坑等著開發者們去踩?
處理單一 App 注意事項
- Apple Developer Portal
- xcodebuild
- IPA upload
- App Store Connect
Code Signing
- Private Key
- Certificate Signing Requests
- Distribution Certificate
- Provisioning Profile
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Validation Chain
- Signed App installed on the device
- Signed App trusted by the developer
- The developer is trusted by Apple
- The device trust Apple
Build Validation
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
App Launch Validation
note: picture miss match
App ID
- Bundle Identifier
- Capabilities
Distribution Certificate
- Created with CSR
- Paired with Private Key
- Expire in 1 year
Provisioning Profile
- Bind with Bundle Identifier
- Expire in 1 year
- Copy to
~/Library/MobileDevice/Provisioning\ Profiles/
- Include Information
- App ID
- Capabilities
- Team ID
- Profile Name
APN Service
- Push Notification
- Push Key
xcodebuild
- Xcode Toolchain
- Command line tool
- Build iOS App Store Package (IPA) process
- xcodebuild ~archive
- xcodebuild ~exportArchive
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
⛔ Build Fail!
- Expired Certification/Provisioning Profiles
- Certification does not pair woth Private Key
- The Certificate in Provisioning Profile does not exist
- Multi-certificate from same developer team installed in Keychain Access
- Enabled Capabilities in Provisioning Profile and Entitlements not match
IPA Upload
- Appplication Loader
- macOS only GUI tool
- Deprecated in Xcode 11
- altool
- macOS only command tool
- xcrun altool
- iTMSTransporter
- Suppoerts: macOS, Windows, and Linux
- Java gased command line tool
- Upload digital contents to iTunes Sotre, Apple Books and App Store
⛔ Upload Fail !!
- Apple account and Apple ID not match
- Build version is equal to or less than live version
- Same build version and build number
- Processing fail
- Bundle Identifier collision
- Incorrect IPA content
Upload to Testflight
- App processing time: at least 20-30 mins
- Build version & build number
- Expires in 90 days
- Export compliance information
處理大量 App 注意事項
- Build time optimization
- Two-Factor Authentication
- App Rejected
- Review Guildline
- License Agreement
Build time optimization
- Reduce total compile time
- Re-sign IPA
Two-Factor Authentication
- Must be enabled by "Account Holder"
- Automation tools will be interrupted
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Review Guideline
- Metadata Reject
- Binary Reject
- Commercial Template
- Latest Apple
Renew License Agreement
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Process Analysis
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Jenkins
- Spaceship
- App Store Connect API
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Containerize Services
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Automate Flow
- Code signing
- App build process
- IPA upload
- App submit
- App status