Trong trường hợp của tôi, nội dung trong hồ sơ cấp phép của tôi:
security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision
...
<key>application-identifier</key>
<string>P5GM95Q9VV.com.dca.spolsky</string>
<key>aps-environment</key>
<string>development</string>
Khác với những thứ trong ứng dụng đã thực sự được xây dựng (bạn có thể tìm hiểu nơi nó được xây dựng bằng cách xem tab Nhật ký của Xcode)
codesign -d --entitlements - '/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app'
<dict>
<key>application-identifier</key>
<string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
</array>
</dict>
Điều này đúng mặc dù văn bản gợi ý "Hiện phù hợp" trong Nhận dạng ký mã cho biết cấu hình cấp phép chính xác - thật kỳ lạ, phải không? Để tạo ra một câu chuyện kỳ lạ khác, cấu hình cấp phép chính xác đã được cài đặt trên thiết bị khi tôi chạy, (Cài đặt-> Chung-> Hồ sơ) khiến tôi tin rằng hồ sơ cấp phép là đúng - nhưng nó đã trở lại ID ký tự đại diện khi ứng dụng thực sự được khởi chạy .
Manh mối là sự khác biệt trong đầu ra của hai lệnh này:
Y2X6Z7Z2GR .com.dca. spolsky-ios và P5GM95Q9VV .com.dca. khờ khạo
Khi tôi thực hiện khớp phần in đậm, phần in nghiêng sẽ tự động thay đổi để khớp. Ngoài ra, đầu ra của bảo mật và thiết kế mã đã được thống nhất và không còn lỗi quyền aps nữa.
Tôi đoán ở đây là XCode đang sử dụng đối sánh kiểu ký tự đại diện trên ID không phải ký tự đại diện của tôi. ("spolsky", xét cho cùng, khá gần giống "spolsky-ios") và điều này giải thích kết quả "Hiện tại phù hợp". Nhưng một cái gì đó trong chuỗi xây dựng nghiêm ngặt hơn về điều này, vì vậy nó rơi trở lại ID ký tự đại diện thực tế trong quá trình xây dựng.