Tôi đang phát triển 2 ứng dụng khác nhau chia sẻ 95% cùng mã và lượt xem. Cách tốt nhất để sử dụng Xcode là gì?Cách tạo nhiều ứng dụng từ cùng một mã được chia sẻ trong Xcode?
17
A
Trả lời
35
Sử dụng mục tiêu. Đó chính là điều họ đang làm.
Learn more about the concept of targets here.
Thông thường, phần lớn các dự án có một Mục tiêu duy nhất, tương ứng với một sản phẩm/ứng dụng. Nếu bạn xác định nhiều mục tiêu, bạn có thể:
- bao gồm một số các tập tin mã nguồn của bạn (hoặc có lẽ tất cả) trong cả hai mục tiêu, một số trong một mục tiêu và một số trong khác
- bạn có thể chơi với Cài đặt xây dựng để biên dịch hai mục tiêu bằng cách sử dụng các cài đặt khác nhau.
Ví dụ, bạn có thể xác định precompiler Macros cho một mục tiêu và macro khác cho người khác (giả sử OTHER_C_FLAGS = -DPREMIUM
trong mục tiêu "PremiumVersion" và OTHER_C_FLAGS = -DLITE
để xác định LITE
vĩ mô trong mục tiêu "LiteVersion") và sau đó bao gồm mã tương tự trong nguồn của bạn:
-(IBAction)commonCodeToBothTargetsHere
{
...
}
-(void)doStuffOnlyAvailableForPremiumVersion
{
#if PREMIUM
// This code will only be compiled if the PREMIUM macro is defined
// namely only when you compile the "PremiumVersion" target
.... // do real stuff
#else
// This code will only be compiled if the PREMIUM macro is NOT defined
// namely when you compile the "LiteVersion" target
[[[[UIAlertView alloc] initWithTitle:@"Only for premium"
message:@"Sorry, this feature is reserved for premium users. Go buy the premium version on the AppStore!"
delegate:self
cancelButtonTitle:@"Doh!"
otherButtonTitles:@"Go buy it!",nil]
autorelease] show];
#endif
}
-(void)otherCommonCodeToBothTargetsHere
{
...
}
Các vấn đề liên quan
- 1. Nhiều ứng dụng có mã chia sẻ
- 2. Cách chia sẻ logic nghiệp vụ giữa nhiều ứng dụng
- 3. Hibernate Distributed Cache - có thể nhiều ứng dụng chia sẻ cùng một bộ nhớ cache?
- 4. CodeIgniter: Nhiều ứng dụng, cách chia sẻ tài nguyên?
- 5. Mã được chia sẻ lại qua nhiều giải pháp
- 6. Các thư viện được chia sẻ có sử dụng cùng một vùng với ứng dụng không?
- 7. Xcode - Ứng dụng chia sẻ - PackageApplication không thành công với mã thoát 1
- 8. Cách ngăn chặn nhiều cửa sổ trình duyệt chia sẻ cùng một phiên trong asp.net
- 9. java log4j.xml nhiều ứng dụng chia sẻ bố cục
- 10. Cách chia sẻ video ứng dụng iPhone trên You Tube?
- 11. Chia sẻ URL trong ứng dụng web
- 12. Tạo hai ứng dụng iOS trong Xcode
- 13. Ứng dụng Chia sẻ/SMB mạng
- 14. một XCode Project nhiều ứng dụng iPhone
- 15. XCode 4: Nhiều mục tiêu, nhiều tài nguyên Thư mục với hình ảnh cùng tên để sử dụng với một Xib chia sẻ?
- 16. Bộ nhớ tệp được chia sẻ cho Ứng dụng Rails
- 17. Tạo dịch vụ web và ứng dụng khách với các loại được chia sẻ
- 18. Cách chia sẻ cùng một biến giữa các mô-đun?
- 19. Cách tạo mã phía máy khách cho nhiều dịch vụ WCF với các kiểu chia sẻ
- 20. Cách chia sẻ phiên trong ứng dụng được hiển thị được gắn
- 21. Hai ứng dụng có UserID được chia sẻ
- 22. Các ứng dụng có sử dụng nhiều quy trình chia sẻ một cá thể Dalvik không?
- 23. Chia sẻ một HttpModule giữa nhiều ứng dụng con mà không có GAC
- 24. Làm thế nào để chia sẻ các biến toàn cầu trong một thư viện được chia sẻ (.so) trong các trường hợp của cùng một quá trình sử dụng thư viện được chia sẻ trong Linux?
- 25. Cách triển khai tính năng "Chia sẻ tệp" được tích hợp sẵn trong ứng dụng iTunes
- 26. Trình khởi tạo Mục tiêu-C có được phép chia sẻ cùng một tên không?
- 27. Cách chia sẻ đối tượng giữa các ứng dụng java?
- 28. Chia sẻ hồ bơi ứng dụng .NET
- 29. Cách sử dụng GIT khi tôi có nhiều tệp được chia sẻ giữa nhiều dự án
- 30. ràng buộc khi tự động tải một đối tượng được chia sẻ từ một đối tượng được chia sẻ khác?
Nếu bạn đã quen với nó, hãy nghĩ đến các mục tiêu như các tệp hình ảnh khác nhau. Họ có cùng vai trò. – Cyrille
Điều này là rất lớn, cảm ơn bạn. Để có được điều này thực sự làm việc phù hợp với tôi, tôi cần phải làm một mục tiêu sao chép sau đó cập nhật các thiết lập mục tiêu để sử dụng một Info.plist khác cho tên gói của tôi ... – Slee
Lưu ý rằng nếu bạn thêm tệp vào dự án của mình, hãy cẩn thận để thêm tệp vào cả hai mục tiêu và không chỉ tệp đang hoạt động: khi thêm tệp, trong hộp thoại xuất hiện hỏi xem bạn có muốn sao chép tệp hay không, bạn có danh sách mục tiêu và hộp kiểm ở trước mỗi tệp . (Trạng thái hộp kiểm được lưu để bạn có thể chỉ cần kiểm tra điều này một lần) – AliSoftware