• Size limit

    • iOS 16부터 App Clip 용량 제한이 10MB → 15MB로 완화(최소 버전 16)
    • 앱클립 실행 후 추가 리소스를 받는 것은 괜찮다. → 하지만 속도가 생명인 앱클립에서는 여전히 저 용량 제한은 중요하다.
  • Diagnostics

    • 개발자 모드에서 앱 클립 혹 유니버셜 링크가 제대로 세팅됐는지 확인할 수 있는 툴 추가
  • CloudKit

    • 앱 클립도 CloudKit public database에 접근 가능하게 됨

    • 대신 그 외 다른 기능(쓰기 기능, document 접근 및 key-value store 접근 등)은 다 막혀 있음 → 앱클립을 지웠을때 모든 데이터를 깔끔하게 지우기 위함

      // Read your CloudKit public database from your App Clip
      
      let container = CKContainer.default()
      let publicDatabase = container.publicCloudDatabase
      let record = try await publicDatabase.record(for:
          CKRecord.ID(recordName: "A928D582-9BB6-E9C5-7881-E4EAF615E0CD"))
      
      if let title = record["Title"] as? String,
          let description = record["Description"] as? String {
              print(“Fetched a food item from CloudKit: \\(title) \\(description)")
      }
      
  • keychain migration

    • 기존에는 민감 정보를 앱클립에서 실제 앱으로 옮기려면, 공유 컨테이너를 쓴 뒤, 실제 앱이 이를 키체인에 저장해야 했다.
    • 이제는 앱클립에서 바로 키체인에 저장하고, 실제 앱으로 전환될 때 이것이 자동으로 옮겨진다.
    • 로컬 키체인만 지원하고, 키체인 그룹, iCloud 키체인은 미지원 → CloudKit과 마찬가지 이유
    // Write authentication token to App Clip keychain
    // 코드 자체는 앱과 앱클립이 동일하다.
    let addSecretsQuery: [String: Any] = [
        kSecClass as String: kSecClassGenericPassword,
        kSecValueData as String: "smoothie-secret".data(using: .utf8),
        kSecAttrLabel as String: "foodsample-appclip"
    ]
    SecItemAdd(addSecretsQuery as CFDictionary, nil)
    
    // Read authentication token from app or App Clip
    
    var readSecretsQuery: [String: Any] = [
        kSecClass as String: kSecClassGenericPassword,
        kSecReturnAttributes as String: true,
        kSecAttrLabel as String: "foodsample-appclip",
        kSecReturnData as String: true
    ]
    var secretsCopy: AnyObject?
    SecItemCopyMatching(readSecretsQuery as CFDictionary, &secretsCopy)
    
  • AppClip experience API

    • 장소나 추가적인 정보들을 제공해서 앱클립 경험을 고도화할 수 있다.
    • 이번에 관련 AppStore Connect Web API추가